Skip to content

Commit

Permalink
frontend: Deprecate multi-install for dependencies
Browse files Browse the repository at this point in the history
fix #2112
  • Loading branch information
mirkobrombin committed Sep 27, 2022
1 parent 4417ca7 commit fd355fb
Show file tree
Hide file tree
Showing 3 changed files with 3 additions and 69 deletions.
13 changes: 0 additions & 13 deletions bottles/frontend/ui/details-dependencies.blp
Original file line number Diff line number Diff line change
Expand Up @@ -64,19 +64,6 @@ Popover pop_context {
Box actions {
spacing: 6;

Button btn_install {
visible: false;
label: _("Install Selected");
tooltip-text: _("We strongly advise against installing multiple dependencies at once.");
hexpand: true;
}

ToggleButton btn_toggle_selection {
visible: true;
tooltip-text: _("Select Dependencies");
icon-name: "selection-mode-symbolic";
}

ToggleButton btn_search {
active: bind search_bar.search-mode-enabled no-sync-create bidirectional;
tooltip-text: _("Search");
Expand Down
53 changes: 2 additions & 51 deletions bottles/frontend/views/bottle_dependencies.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,6 @@ class DependenciesView(Adw.Bin):
list_dependencies = Gtk.Template.Child()
btn_report = Gtk.Template.Child()
btn_help = Gtk.Template.Child()
btn_install = Gtk.Template.Child()
btn_toggle_selection = Gtk.Template.Child()
entry_search = Gtk.Template.Child()
actions = Gtk.Template.Child()
search_bar = Gtk.Template.Child()
Expand All @@ -51,7 +49,6 @@ def __init__(self, details, config, **kwargs):
self.manager = details.window.manager
self.config = config
self.queue = details.queue
self.selected_dependencies = []

self.ev_controller.connect("key-released", self.__search_dependencies)

Expand All @@ -60,31 +57,6 @@ def __init__(self, details, config, **kwargs):

self.btn_report.connect("clicked", open_doc_url, "contribute/missing-dependencies")
self.btn_help.connect("clicked", open_doc_url, "bottles/dependencies")
self.btn_toggle_selection.connect('toggled', self.__toggle_selection)
self.btn_install.connect('clicked', self.__install_dependencies)
self.list_dependencies.connect('row-selected', self.__select_dependency)

def __select_dependency(self, widget, row, data=None):
if row is not None:
self.selected_dependencies.append(row.dependency)

def __install_dependencies(self, widget):
def callback(result, error=False):
nonlocal self
self.selected_dependencies = []
self.update(config=self.config)
self.queue.end_task()

def process_queue():
nonlocal self
for d in self.selected_dependencies:
self.manager.dependency_manager.install(self.config, d)

self.queue.add_task()
self.btn_toggle_selection.set_active(False)
self.list_dependencies.set_sensitive(False)

RunAsync(process_queue, callback=callback)

def __search_dependencies(self, *_args):
"""
Expand All @@ -94,26 +66,6 @@ def __search_dependencies(self, *_args):
terms = self.entry_search.get_text()
self.list_dependencies.set_filter_func(self.__filter_dependencies, terms)

def __toggle_selection(self, widget):
"""
This function toggle the selection of the dependencies
in the list.
"""
widgets = [self.btn_help, self.btn_report, self.btn_install]
list_statues = {
True: Gtk.SelectionMode.MULTIPLE,
False: Gtk.SelectionMode.NONE
}
status = widget.get_active()
self.update(config=self.config, selection=status)
self.window.toggle_selection_mode(status)

for w in widgets:
_status = w.get_visible()
w.set_visible(not _status)

self.list_dependencies.set_selection_mode(list_statues[status])

@staticmethod
def __filter_dependencies(row, terms=None):
text = row.get_title().lower() + row.get_subtitle().lower()
Expand All @@ -127,7 +79,7 @@ def empty_list(self):
r.get_parent().remove(r)
self.__registry = []

def update(self, widget=False, config=None, selection=False):
def update(self, widget=False, config=None):
"""
This function update the dependencies list with the
supported by the manager.
Expand All @@ -144,7 +96,6 @@ def new_dependency(dependency, plain=False):
window=self.window,
config=self.config,
dependency=dependency,
selection=selection,
plain=plain
)
self.__registry.append(entry)
Expand All @@ -168,7 +119,7 @@ def process_dependencies():

GLib.idle_add(new_dependency, dep)

if not selection and len(self.config.get("Installed_Dependencies")) > 0:
if len(self.config.get("Installed_Dependencies")) > 0:
for dep in self.config.get("Installed_Dependencies"):
if dep in dependencies:
dep = (dep, dependencies[dep])
Expand Down
6 changes: 1 addition & 5 deletions bottles/frontend/widgets/dependency.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ class DependencyEntry(Adw.ActionRow):

# endregion

def __init__(self, window, config, dependency, plain=False, selection=False, **kwargs):
def __init__(self, window, config, dependency, plain=False, **kwargs):
super().__init__(**kwargs)

# common variables and references
Expand Down Expand Up @@ -75,10 +75,6 @@ def __init__(self, window, config, dependency, plain=False, selection=False, **k
self.btn_manifest.connect("clicked", self.open_manifest)
self.btn_license.connect("clicked", self.open_license)

# hide action widgets on selection
if selection:
self.box_actions.set_visible(False)

if dependency[0] in self.config.get("Installed_Dependencies"):
'''
If the dependency is installed, hide the btn_install
Expand Down

0 comments on commit fd355fb

Please sign in to comment.