[ui][settings] gem selector moved to settings

This commit is contained in:
Vinícius Moreira
2020-01-28 13:13:37 -03:00
parent e3bfa097fe
commit 5a6575d8d0
16 changed files with 138 additions and 95 deletions

View File

@@ -84,14 +84,17 @@ class SingleSelectComponent(InputViewComponent):
class MultipleSelectComponent(InputViewComponent): class MultipleSelectComponent(InputViewComponent):
def __init__(self, label: str, options: List[InputOption], default_options: Set[InputOption] = None, max_per_line: int = 1, id_: str = None): def __init__(self, label: str, options: List[InputOption], default_options: Set[InputOption] = None,
max_per_line: int = 1, tooltip: str = None, spaces: bool = True, id_: str = None):
super(MultipleSelectComponent, self).__init__(id_=id_) super(MultipleSelectComponent, self).__init__(id_=id_)
if not options: if not options:
raise Exception("'options' cannot be None or empty") raise Exception("'options' cannot be None or empty")
self.options = options self.options = options
self.spaces= spaces
self.label = label self.label = label
self.tooltip = tooltip
self.values = default_options if default_options else set() self.values = default_options if default_options else set()
self.max_per_line = max_per_line self.max_per_line = max_per_line
@@ -144,9 +147,10 @@ class TextInputComponent(ViewComponent):
class FormComponent(ViewComponent): class FormComponent(ViewComponent):
def __init__(self, components: List[ViewComponent], label: str = None, id_: str = None): def __init__(self, components: List[ViewComponent], label: str = None, spaces: bool = True, id_: str = None):
super(FormComponent, self).__init__(id_=id_) super(FormComponent, self).__init__(id_=id_)
self.label = label self.label = label
self.spaces = spaces
self.components = components self.components = components
self.component_map = {c.id: c for c in components if c.id} if components else None self.component_map = {c.id: c for c in components if c.id} if components else None
@@ -167,12 +171,11 @@ class FileChooserComponent(ViewComponent):
class TabComponent(ViewComponent): class TabComponent(ViewComponent):
def __init__(self, label: str, content: ViewComponent, icon_path: str = None, tooltip: str = None, id_: str = None): def __init__(self, label: str, content: ViewComponent, icon_path: str = None, id_: str = None):
super(TabComponent, self).__init__(id_=id_) super(TabComponent, self).__init__(id_=id_)
self.label = label self.label = label
self.content = content self.content = content
self.icon_path = icon_path self.icon_path = icon_path
self.tooltip = tooltip
class TabGroupComponent(ViewComponent): class TabGroupComponent(ViewComponent):

View File

@@ -1,4 +1,4 @@
gem.flatpak.info=Aplicacions disponibles als dipòsits configurats en el vostre sistema gem.flatpak.info=Aplicacions disponibles a Flathub i altres repositoris configurats al vostre sistema
flatpak.info.arch=arquitectura flatpak.info.arch=arquitectura
flatpak.info.branch=branca flatpak.info.branch=branca
flatpak.info.collection=col·lecció flatpak.info.collection=col·lecció

View File

@@ -1,4 +1,4 @@
gem.flatpak.info=Applications available in the repositories configured on your system gem.flatpak.info=Applications available on Flathub and other repositories configured on your system
flatpak.notification.no_remotes=No Flatpak remotes set. It will not be possible to search for Flatpak apps. flatpak.notification.no_remotes=No Flatpak remotes set. It will not be possible to search for Flatpak apps.
flatpak.notification.disable=If you do not want to use Flatpak applications, uncheck {} in {} flatpak.notification.disable=If you do not want to use Flatpak applications, uncheck {} in {}
flatpak.downgrade.impossible.title=Error flatpak.downgrade.impossible.title=Error

View File

@@ -1,4 +1,4 @@
gem.flatpak.info=Aplicativos disponibles en los repositorios configurados en su sistema gem.flatpak.info=Aplicativos disponibles en Flathub y otros repositorios configurados en su sistema
flatpak.info.arch=arquitectura flatpak.info.arch=arquitectura
flatpak.info.branch=rama flatpak.info.branch=rama
flatpak.info.collection=colección flatpak.info.collection=colección

View File

@@ -1,4 +1,4 @@
gem.flatpak.info=Applicazioni disponibili nei repository configurati sul sistema gem.flatpak.info=Applicazioni disponibili su Flathub e altri repository configurati sul tuo sistema
flatpak.notification.no_remotes=Nessun set remoti Flatpak. Non sarà possibile cercare app Flatpak. flatpak.notification.no_remotes=Nessun set remoti Flatpak. Non sarà possibile cercare app Flatpak.
flatpak.notification.disable=Ise non si desidera utilizzare le applicazioni Flatpak, deselezionare {} in {} flatpak.notification.disable=Ise non si desidera utilizzare le applicazioni Flatpak, deselezionare {} in {}
flatpak.downgrade.impossible.title=Errore flatpak.downgrade.impossible.title=Errore

View File

@@ -1,4 +1,4 @@
gem.flatpak.info=Aplicativos disponíveis nos repositórios configurados do seu sistema gem.flatpak.info=Aplicativos disponíveis no Flathub e outros repositórios configurados no seu sistema
flatpak.info.arch=arquitetura flatpak.info.arch=arquitetura
flatpak.info.branch=ramo flatpak.info.branch=ramo
flatpak.info.collection=coleção flatpak.info.collection=coleção

View File

@@ -12,9 +12,11 @@ from bauh.api.abstract.disk import DiskCacheLoader
from bauh.api.abstract.handler import ProcessWatcher from bauh.api.abstract.handler import ProcessWatcher
from bauh.api.abstract.model import SoftwarePackage, PackageUpdate, PackageHistory, PackageSuggestion, PackageAction from bauh.api.abstract.model import SoftwarePackage, PackageUpdate, PackageHistory, PackageSuggestion, PackageAction
from bauh.api.abstract.view import FormComponent, ViewComponent, TabGroupComponent, TabComponent, SingleSelectComponent, \ from bauh.api.abstract.view import FormComponent, ViewComponent, TabGroupComponent, TabComponent, SingleSelectComponent, \
InputOption, PanelComponent, SelectViewType, TextInputComponent, FileChooserComponent, MultipleSelectComponent InputOption, PanelComponent, SelectViewType, TextInputComponent, FileChooserComponent, MultipleSelectComponent, \
TextComponent
from bauh.api.exception import NoInternetException from bauh.api.exception import NoInternetException
from bauh.commons import internet from bauh.commons import internet
from bauh.commons.html import bold
from bauh.view.core import config from bauh.view.core import config
from bauh.view.core.config import read_config from bauh.view.core.config import read_config
from bauh.view.util import translation from bauh.view.util import translation
@@ -443,7 +445,7 @@ class GenericSoftwareManager(SoftwareManager):
only_int=True, only_int=True,
id_="sugs_by_type") id_="sugs_by_type")
sub_comps = [FormComponent([select_locale, select_sysnotify, select_sugs, inp_sugs])] sub_comps = [FormComponent([select_locale, select_sysnotify, select_sugs, inp_sugs], spaces=False)]
return TabComponent(self.i18n['core.config.tab.general'].capitalize(), PanelComponent(sub_comps), None, 'core.gen') return TabComponent(self.i18n['core.config.tab.general'].capitalize(), PanelComponent(sub_comps), None, 'core.gen')
def _gen_adv_settings(self, core_config: dict) -> TabComponent: def _gen_adv_settings(self, core_config: dict) -> TabComponent:
@@ -476,7 +478,7 @@ class GenericSoftwareManager(SoftwareManager):
id_="down_mthread", id_="down_mthread",
value=core_config['download']['multithreaded']) value=core_config['download']['multithreaded'])
sub_comps = [FormComponent([select_dcache, select_dmthread, select_dep_check, input_data_exp, input_icon_exp])] sub_comps = [FormComponent([select_dcache, select_dmthread, select_dep_check, input_data_exp, input_icon_exp], spaces=False)]
return TabComponent(self.i18n['core.config.tab.advanced'].capitalize(), PanelComponent(sub_comps), None, 'core.adv') return TabComponent(self.i18n['core.config.tab.advanced'].capitalize(), PanelComponent(sub_comps), None, 'core.adv')
def _gen_tray_settings(self, core_config: dict) -> TabComponent: def _gen_tray_settings(self, core_config: dict) -> TabComponent:
@@ -499,7 +501,7 @@ class GenericSoftwareManager(SoftwareManager):
file_path=str(core_config['ui']['tray']['updates_icon']) if core_config['ui']['tray']['updates_icon'] else None, file_path=str(core_config['ui']['tray']['updates_icon']) if core_config['ui']['tray']['updates_icon'] else None,
allowed_extensions=allowed_exts) allowed_extensions=allowed_exts)
sub_comps = [FormComponent([input_update_interval, select_def_icon, select_up_icon])] sub_comps = [FormComponent([input_update_interval, select_def_icon, select_up_icon], spaces=False)]
return TabComponent(self.i18n['core.config.tab.tray'].capitalize(), PanelComponent(sub_comps), None, 'core.tray') return TabComponent(self.i18n['core.config.tab.tray'].capitalize(), PanelComponent(sub_comps), None, 'core.tray')
def _gen_ui_settings(self, core_config: dict) -> TabComponent: def _gen_ui_settings(self, core_config: dict) -> TabComponent:
@@ -528,10 +530,14 @@ class GenericSoftwareManager(SoftwareManager):
id_="down_icons", id_="down_icons",
value=core_config['download']['icons']) value=core_config['download']['icons'])
sub_comps = [FormComponent([select_hdpi, select_dicons, select_style, input_maxd])] sub_comps = [FormComponent([select_hdpi, select_dicons, select_style, input_maxd], spaces=False)]
return TabComponent(self.i18n['core.config.tab.ui'].capitalize(), PanelComponent(sub_comps), None, 'core.ui') return TabComponent(self.i18n['core.config.tab.ui'].capitalize(), PanelComponent(sub_comps), None, 'core.ui')
def _save_settings(self, general: PanelComponent, advanced: PanelComponent, ui: PanelComponent, tray: PanelComponent) -> Tuple[bool, List[str]]: def _save_settings(self, general: PanelComponent,
advanced: PanelComponent,
ui: PanelComponent,
tray: PanelComponent,
gems_panel: PanelComponent) -> Tuple[bool, List[str]]:
core_config = config.read_config() core_config = config.read_config()
# general # general
@@ -587,6 +593,16 @@ class GenericSoftwareManager(SoftwareManager):
if style != cur_style: if style != cur_style:
core_config['ui']['style'] = style core_config['ui']['style'] = style
# gems
checked_gems = gems_panel.get_component('gems').get_selected_values()
for man in self.managers:
modname = man.__module__.split('.')[-2]
enabled = modname in checked_gems
man.set_enabled(enabled)
core_config['gems'] = None if core_config['gems'] is None and len(checked_gems) == len(self.managers) else checked_gems
try: try:
config.save(core_config) config.save(core_config)
return True, None return True, None
@@ -596,12 +612,6 @@ class GenericSoftwareManager(SoftwareManager):
def get_settings(self) -> ViewComponent: def get_settings(self) -> ViewComponent:
tabs = list() tabs = list()
core_config = read_config()
tabs.append(self._gen_general_settings(core_config))
tabs.append(self._gen_ui_settings(core_config))
tabs.append(self._gen_tray_settings(core_config))
tabs.append(self._gen_adv_settings(core_config))
gem_opts, def_gem_opts, gem_tabs = [], set(), [] gem_opts, def_gem_opts, gem_tabs = [], set(), []
for man in self.managers: for man in self.managers:
@@ -611,7 +621,7 @@ class GenericSoftwareManager(SoftwareManager):
icon_path = "{r}/gems/{n}/resources/img/{n}.svg".format(r=ROOT_DIR, n=modname) icon_path = "{r}/gems/{n}/resources/img/{n}.svg".format(r=ROOT_DIR, n=modname)
if man_comp: if man_comp:
gem_tabs.append(TabComponent(label=None, content=man_comp, icon_path=icon_path, tooltip=modname.capitalize(), id_=modname)) gem_tabs.append(TabComponent(label=modname.capitalize(), content=man_comp, icon_path=icon_path, id_=modname))
opt = InputOption(label=self.i18n.get('gem.{}.label'.format(modname), modname.capitalize()), opt = InputOption(label=self.i18n.get('gem.{}.label'.format(modname), modname.capitalize()),
tooltip=self.i18n.get('gem.{}.info'.format(modname)), tooltip=self.i18n.get('gem.{}.info'.format(modname)),
@@ -622,9 +632,23 @@ class GenericSoftwareManager(SoftwareManager):
if man.is_enabled() and man in self.working_managers: if man.is_enabled() and man in self.working_managers:
def_gem_opts.add(opt) def_gem_opts.add(opt)
core_config = read_config()
tabs.append(self._gen_general_settings(core_config))
if gem_opts: if gem_opts:
form_types = FormComponent(components=[MultipleSelectComponent(label=None, options=gem_opts, default_options=def_gem_opts)]) type_help = TextComponent(html=self.i18n['core.config.types.tip'])
tabs.append(TabComponent(label='Types', content=PanelComponent([form_types]))) gem_selector = MultipleSelectComponent(label=None,
tooltip=None,
options=gem_opts,
default_options=def_gem_opts,
id_="gems")
tabs.append(TabComponent(label=self.i18n['core.config.tab.types'],
content=PanelComponent([type_help, gem_selector]),
id_='core.types'))
tabs.append(self._gen_ui_settings(core_config))
tabs.append(self._gen_tray_settings(core_config))
tabs.append(self._gen_adv_settings(core_config))
for tab in gem_tabs: for tab in gem_tabs:
tabs.append(tab) tabs.append(tab)
@@ -638,7 +662,8 @@ class GenericSoftwareManager(SoftwareManager):
success, errors = self._save_settings(general=component.get_tab('core.gen').content, success, errors = self._save_settings(general=component.get_tab('core.gen').content,
advanced=component.get_tab('core.adv').content, advanced=component.get_tab('core.adv').content,
tray=component.get_tab('core.tray').content, tray=component.get_tab('core.tray').content,
ui=component.get_tab('core.ui').content) ui=component.get_tab('core.ui').content,
gems_panel=component.get_tab('core.types').content)
if not success: if not success:
saved = False saved = False

View File

@@ -10,7 +10,7 @@ from PyQt5.QtWidgets import QRadioButton, QGroupBox, QCheckBox, QComboBox, QGrid
from bauh.api.abstract.view import SingleSelectComponent, InputOption, MultipleSelectComponent, SelectViewType, \ from bauh.api.abstract.view import SingleSelectComponent, InputOption, MultipleSelectComponent, SelectViewType, \
TextInputComponent, FormComponent, FileChooserComponent, ViewComponent, TabGroupComponent, PanelComponent, \ TextInputComponent, FormComponent, FileChooserComponent, ViewComponent, TabGroupComponent, PanelComponent, \
TwoStateButtonComponent TwoStateButtonComponent, TextComponent
from bauh.view.qt import css from bauh.view.qt import css
from bauh.view.util import resource from bauh.view.util import resource
from bauh.view.util.translation import I18n from bauh.view.util.translation import I18n
@@ -267,6 +267,62 @@ class MultipleSelectQt(QGroupBox):
self.layout().addWidget(QLabel(), line + 1, 1) self.layout().addWidget(QLabel(), line + 1, 1)
class FormMultipleSelectQt(QWidget):
def __init__(self, model: MultipleSelectComponent, parent: QWidget = None):
super(FormMultipleSelectQt, self).__init__(parent=parent)
self.model = model
self.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred)
self._layout = QGridLayout()
self.setLayout(self._layout)
if model.label:
line = 1
self.layout().addWidget(QLabel(), 0, 1)
else:
line = 0
col = 0
pixmap_help = QPixmap()
for op in model.options: # loads the help icon if at least one option has a tooltip
if op.tooltip:
with open(resource.get_path('img/about.svg'), 'rb') as f:
pixmap_help.loadFromData(f.read())
pixmap_help = pixmap_help.scaled(16, 16, Qt.KeepAspectRatio, Qt.SmoothTransformation)
break
for op in model.options:
comp = CheckboxQt(op, model, None)
if model.values and op in model.values:
self.value = comp
comp.setChecked(True)
widget = QWidget()
widget.setLayout(QHBoxLayout())
widget.layout().addWidget(comp)
if op.tooltip:
help_icon = QLabel()
help_icon.setPixmap(pixmap_help)
help_icon.setToolTip(op.tooltip)
widget.layout().addWidget(help_icon)
self._layout.addWidget(widget, line, col)
if col + 1 == self.model.max_per_line:
line += 1
col = 0
else:
col += 1
if model.label:
self.layout().addWidget(QLabel(), line + 1, 1)
class InputFilter(QLineEdit): class InputFilter(QLineEdit):
def __init__(self, on_key_press): def __init__(self, on_key_press):
@@ -348,6 +404,7 @@ class FormQt(QGroupBox):
self.setLayout(QFormLayout()) self.setLayout(QFormLayout())
self.setStyleSheet(css.GROUP_BOX) self.setStyleSheet(css.GROUP_BOX)
if model.spaces:
self.layout().addRow(QLabel(), QLabel()) self.layout().addRow(QLabel(), QLabel())
for c in model.components: for c in model.components:
@@ -366,9 +423,13 @@ class FormQt(QGroupBox):
elif isinstance(c, TwoStateButtonComponent): elif isinstance(c, TwoStateButtonComponent):
label = self._new_label(c) label = self._new_label(c)
self.layout().addRow(label, TwoStateButtonQt(c)) self.layout().addRow(label, TwoStateButtonQt(c))
elif isinstance(c, MultipleSelectComponent):
label = self._new_label(c)
self.layout().addRow(label, FormMultipleSelectQt(c))
else: else:
raise Exception('Unsupported component type {}'.format(c.__class__.__name__)) raise Exception('Unsupported component type {}'.format(c.__class__.__name__))
if model.spaces:
self.layout().addRow(QLabel(), QLabel()) self.layout().addRow(QLabel(), QLabel())
def _new_label(self, comp) -> QWidget: def _new_label(self, comp) -> QWidget:
@@ -517,5 +578,7 @@ def to_widget(comp: ViewComponent, i18n: I18n, parent: QWidget = None) -> QWidge
return PanelQt(comp, i18n, parent) return PanelQt(comp, i18n, parent)
elif isinstance(comp, TwoStateButtonComponent): elif isinstance(comp, TwoStateButtonComponent):
return TwoStateButtonQt(comp) return TwoStateButtonQt(comp)
elif isinstance(comp, TextComponent):
return QLabel(comp.value)
else: else:
raise Exception("Cannot render instances of " + comp.__class__.__name__) raise Exception("Cannot render instances of " + comp.__class__.__name__)

View File

@@ -1,45 +0,0 @@
from PyQt5.QtWidgets import QComboBox, QStyleFactory, QWidget, QApplication
from bauh import __app_name__
from bauh.commons.html import bold
from bauh.view.core import config
from bauh.view.util import util
from bauh.view.qt import dialog
from bauh.view.util.translation import I18n
class StylesComboBox(QComboBox):
def __init__(self, parent: QWidget, i18n: I18n, show_panel_after_restart: bool):
super(StylesComboBox, self).__init__(parent=parent)
self.app = QApplication.instance()
self.styles = []
self.i18n = i18n
self.last_index = 0
self.show_panel_after_restart = show_panel_after_restart
for idx, style in enumerate(QStyleFactory.keys()):
self.styles.append(style)
self.addItem('{}: {}'.format(i18n['style'].capitalize(), style), style)
if style.lower() == self.app.style().objectName():
self.setCurrentIndex(idx)
self.last_index = idx
self.currentIndexChanged.connect(self.change_style)
def change_style(self, idx: int):
if dialog.ask_confirmation(self.i18n['style.change.title'], self.i18n['style.change.question'].format(bold(__app_name__)), self.i18n):
self.last_index = idx
style = self.styles[idx]
user_config = config.read_config()
user_config['ui']['style'] = style
config.save(user_config)
util.restart_app(self.show_panel_after_restart)
else:
self.blockSignals(True)
self.setCurrentIndex(self.last_index)
self.blockSignals(False)

View File

@@ -16,19 +16,16 @@ from bauh.api.abstract.view import MessageType
from bauh.api.http import HttpClient from bauh.api.http import HttpClient
from bauh.commons import user from bauh.commons import user
from bauh.commons.html import bold from bauh.commons.html import bold
from bauh.view.core.controller import GenericSoftwareManager from bauh.view.qt import dialog, commons, qt_utils, root
from bauh.view.qt import dialog, commons, qt_utils, root, view_utils
from bauh.view.qt.about import AboutDialog from bauh.view.qt.about import AboutDialog
from bauh.view.qt.apps_table import AppsTable, UpdateToggleButton from bauh.view.qt.apps_table import AppsTable, UpdateToggleButton
from bauh.view.qt.components import new_spacer, InputFilter, IconButton, to_widget from bauh.view.qt.components import new_spacer, InputFilter, IconButton
from bauh.view.qt.confirmation import ConfirmationDialog from bauh.view.qt.confirmation import ConfirmationDialog
from bauh.view.qt.gem_selector import GemSelectorPanel
from bauh.view.qt.history import HistoryDialog from bauh.view.qt.history import HistoryDialog
from bauh.view.qt.info import InfoDialog from bauh.view.qt.info import InfoDialog
from bauh.view.qt.root import ask_root_password from bauh.view.qt.root import ask_root_password
from bauh.view.qt.screenshots import ScreenshotsDialog from bauh.view.qt.screenshots import ScreenshotsDialog
from bauh.view.qt.settings import SettingsWindow from bauh.view.qt.settings import SettingsWindow
from bauh.view.qt.styles import StylesComboBox
from bauh.view.qt.thread import UpdateSelectedApps, RefreshApps, UninstallApp, DowngradeApp, GetAppInfo, \ from bauh.view.qt.thread import UpdateSelectedApps, RefreshApps, UninstallApp, DowngradeApp, GetAppInfo, \
GetAppHistory, SearchPackages, InstallPackage, AnimateProgress, VerifyModels, FindSuggestions, ListWarnings, \ GetAppHistory, SearchPackages, InstallPackage, AnimateProgress, VerifyModels, FindSuggestions, ListWarnings, \
AsyncAction, LaunchApp, ApplyFilters, CustomAction, GetScreenshots AsyncAction, LaunchApp, ApplyFilters, CustomAction, GetScreenshots
@@ -1152,13 +1149,6 @@ class ManageWindow(QWidget):
else: else:
self.checkbox_console.setChecked(True) self.checkbox_console.setChecked(True)
def show_gems_selector(self):
gem_panel = GemSelectorPanel(window=self,
manager=self.manager, i18n=self.i18n,
config=self.config,
show_panel_after_restart=bool(self.tray_icon))
gem_panel.show()
def show_settings_window(self): def show_settings_window(self):
self.settings_window = SettingsWindow(self.manager, self.i18n, self.screen_size, bool(self.tray_icon)) self.settings_window = SettingsWindow(self.manager, self.i18n, self.screen_size, bool(self.tray_icon))
self.settings_window.setMinimumWidth(int(self.screen_size.width() / 4)) self.settings_window.setMinimumWidth(int(self.screen_size.width() / 4))
@@ -1170,13 +1160,6 @@ class ManageWindow(QWidget):
def _show_settings_menu(self): def _show_settings_menu(self):
menu_row = QMenu() menu_row = QMenu()
if isinstance(self.manager, GenericSoftwareManager):
action_gems = QAction(self.i18n['manage_window.settings.gems'])
action_gems.setIcon(self.icon_app)
action_gems.triggered.connect(self.show_gems_selector)
menu_row.addAction(action_gems)
action_settings = QAction(self.i18n['settings'].capitalize()) action_settings = QAction(self.i18n['settings'].capitalize())
action_settings.triggered.connect(self.show_settings_window) action_settings.triggered.connect(self.show_settings_window)
action_settings.setIcon(QIcon(resource.get_path('img/tools.svg'))) action_settings.setIcon(QIcon(resource.get_path('img/tools.svg')))

View File

@@ -220,8 +220,10 @@ icon_button.tooltip.disabled=Aquesta acció no està disponible
user=usuari user=usuari
example.short=e.g example.short=e.g
core.config.tab.advanced=Advanced core.config.tab.advanced=Advanced
core.config.tab_label=general core.config.tab.general=General
core.config.tab.ui=Interface core.config.tab.ui=Interface
core.config.tab.tray=Tray
core.config.tab.types=Types
core.config.locale.label=language core.config.locale.label=language
core.config.disk_cache=Disk cache core.config.disk_cache=Disk cache
core.config.disk_cache.tip={app} will save some data about your installed applications into the disk to load them faster in the next initializations core.config.disk_cache.tip={app} will save some data about your installed applications into the disk to load them faster in the next initializations
@@ -249,6 +251,7 @@ core.config.system.dep_checking=Single system checking
core.config.system.dep_checking.tip=If the availability checking of your system technologies should happen only once core.config.system.dep_checking.tip=If the availability checking of your system technologies should happen only once
core.config.suggestions.by_type=Suggestions by type core.config.suggestions.by_type=Suggestions by type
core.config.suggestions.by_type.tip=Maximum number of suggestions that should be displayed by application type core.config.suggestions.by_type.tip=Maximum number of suggestions that should be displayed by application type
core.config.types.tip=Check the application types you want to manage
locale.en=anglès locale.en=anglès
locale.es=castellà locale.es=castellà
locale.pt=portuguès locale.pt=portuguès

View File

@@ -175,8 +175,10 @@ icon_button.tooltip.disabled=Diese Aktion ist nicht verfügbar
user=Benutzer user=Benutzer
example.short=e.g example.short=e.g
core.config.tab.advanced=Advanced core.config.tab.advanced=Advanced
core.config.tab_label=general core.config.tab.general=General
core.config.tab.ui=Interface core.config.tab.ui=Interface
core.config.tab.tray=Tray
core.config.tab.types=Types
core.config.locale.label=language core.config.locale.label=language
core.config.disk_cache=Disk cache core.config.disk_cache=Disk cache
core.config.disk_cache.tip={app} will save some data about your installed applications into the disk to load them faster in the next initializations core.config.disk_cache.tip={app} will save some data about your installed applications into the disk to load them faster in the next initializations
@@ -204,6 +206,7 @@ core.config.system.dep_checking=Single system checking
core.config.system.dep_checking.tip=If the availability checking of your system technologies should happen only once core.config.system.dep_checking.tip=If the availability checking of your system technologies should happen only once
core.config.suggestions.by_type=Suggestions by type core.config.suggestions.by_type=Suggestions by type
core.config.suggestions.by_type.tip=Maximum number of suggestions that should be displayed by application type core.config.suggestions.by_type.tip=Maximum number of suggestions that should be displayed by application type
core.config.types.tip=Check the application types you want to manage
locale.en=englisch locale.en=englisch
locale.es=spanisch locale.es=spanisch
locale.pt=portugiesisch locale.pt=portugiesisch

View File

@@ -182,6 +182,7 @@ core.config.tab.advanced=Advanced
core.config.tab.general=General core.config.tab.general=General
core.config.tab.ui=Interface core.config.tab.ui=Interface
core.config.tab.tray=Tray core.config.tab.tray=Tray
core.config.tab.types=Types
core.config.locale.label=language core.config.locale.label=language
core.config.disk_cache=Disk cache core.config.disk_cache=Disk cache
core.config.disk_cache.tip={app} will save some data about your installed applications into the disk to load them faster in the next initializations core.config.disk_cache.tip={app} will save some data about your installed applications into the disk to load them faster in the next initializations
@@ -212,6 +213,7 @@ core.config.system.dep_checking=Single system checking
core.config.system.dep_checking.tip=If the availability checking of your system technologies should happen only once core.config.system.dep_checking.tip=If the availability checking of your system technologies should happen only once
core.config.suggestions.by_type=Suggestions by type core.config.suggestions.by_type=Suggestions by type
core.config.suggestions.by_type.tip=Maximum number of suggestions that should be displayed by application type core.config.suggestions.by_type.tip=Maximum number of suggestions that should be displayed by application type
core.config.types.tip=Check the application types you want to manage
locale.en=english locale.en=english
locale.es=spanish locale.es=spanish
locale.pt=portuguese locale.pt=portuguese

View File

@@ -222,6 +222,7 @@ core.config.tab.advanced=Avanzadas
core.config.tab.general=Generales core.config.tab.general=Generales
core.config.tab.ui=Interfaz core.config.tab.ui=Interfaz
core.config.tab.tray=Bandeja core.config.tab.tray=Bandeja
core.config.tab.types=Tipos
core.config.locale.label=idioma core.config.locale.label=idioma
core.config.disk_cache=Cache em disco core.config.disk_cache=Cache em disco
core.config.disk_cache.tip={app} guardará algunos datos sobre sus aplicaciones instaladas en el disco para cargarlas más rápido en las próximas inicializaciones core.config.disk_cache.tip={app} guardará algunos datos sobre sus aplicaciones instaladas en el disco para cargarlas más rápido en las próximas inicializaciones
@@ -253,6 +254,7 @@ core.config.system.dep_checking=Verificación única de sistema
core.config.system.dep_checking.tip=Si la verificación de disponibilidad de las tecnologías de su sistema debe ocurrir solo una vez core.config.system.dep_checking.tip=Si la verificación de disponibilidad de las tecnologías de su sistema debe ocurrir solo una vez
core.config.suggestions.by_type=Sugerencias por tipo core.config.suggestions.by_type=Sugerencias por tipo
core.config.suggestions.by_type.tip=Número máximo de sugerencias que deberían mostrarse por tipo de aplicación core.config.suggestions.by_type.tip=Número máximo de sugerencias que deberían mostrarse por tipo de aplicación
core.config.types.tip=Marque los tipos de aplicaciones que desea administrar
locale.es=inglés locale.es=inglés
locale.es=español locale.es=español
locale.pt=portugués locale.pt=portugués

View File

@@ -178,6 +178,7 @@ example.short=e.g
core.config.tab.advanced=Advanced core.config.tab.advanced=Advanced
core.config.tab_label=general core.config.tab_label=general
core.config.tab.ui=Interface core.config.tab.ui=Interface
core.config.tab.types=Types
core.config.locale.label=language core.config.locale.label=language
core.config.disk_cache=Disk cache core.config.disk_cache=Disk cache
core.config.disk_cache.tip={app} will save some data about your installed applications into the disk to load them faster in the next initializations core.config.disk_cache.tip={app} will save some data about your installed applications into the disk to load them faster in the next initializations
@@ -205,6 +206,7 @@ core.config.system.dep_checking=Single system checking
core.config.system.dep_checking.tip=If the availability checking of your system technologies should happen only once core.config.system.dep_checking.tip=If the availability checking of your system technologies should happen only once
core.config.suggestions.by_type=Suggestions by type core.config.suggestions.by_type=Suggestions by type
core.config.suggestions.by_type.tip=Maximum number of suggestions that should be displayed by application type core.config.suggestions.by_type.tip=Maximum number of suggestions that should be displayed by application type
core.config.types.tip=Check the application types you want to manage
locale.en=inglese locale.en=inglese
locale.es=spagnolo locale.es=spagnolo
locale.pt=portoghese locale.pt=portoghese

View File

@@ -225,6 +225,7 @@ core.config.tab.advanced=Avançadas
core.config.tab.general=Gerais core.config.tab.general=Gerais
core.config.tab.ui=Interface core.config.tab.ui=Interface
core.config.tab.tray=Bandeja core.config.tab.tray=Bandeja
core.config.tab.types=Tipos
core.config.locale.label=idioma core.config.locale.label=idioma
core.config.disk_cache=Cache em disco core.config.disk_cache=Cache em disco
core.config.disk_cache.tip={app} gravará alguns dados sobre seus aplicativos instalados no disco para que eles sejam carregados rapidamente nas próximas inicializações core.config.disk_cache.tip={app} gravará alguns dados sobre seus aplicativos instalados no disco para que eles sejam carregados rapidamente nas próximas inicializações
@@ -256,6 +257,7 @@ core.config.system.dep_checking=Verificação única de sistema
core.config.system.dep_checking.tip=Se a verificação da disponibilidade das tecnologias do seu sistema devem ocorrer somente uma vez core.config.system.dep_checking.tip=Se a verificação da disponibilidade das tecnologias do seu sistema devem ocorrer somente uma vez
core.config.suggestions.by_type=Sugestões por tipo core.config.suggestions.by_type=Sugestões por tipo
core.config.suggestions.by_type.tip=Número máximo de sugestões que devem ser exibidas por tipo de aplicativo core.config.suggestions.by_type.tip=Número máximo de sugestões que devem ser exibidas por tipo de aplicativo
core.config.types.tip=Marque os tipos de aplicativo que você quer gerenciar
locale.en=inglês locale.en=inglês
locale.es=espanhol locale.es=espanhol
locale.pt=português locale.pt=português