fixup! Port UI to GTK 4
This commit is contained in:
parent
f67da0a4a0
commit
7e21110f0a
|
@ -150,10 +150,6 @@
|
||||||
<property name="search-mode-enabled" bind-source="toolbar_search_bar" bind-property="active" bind-flags="sync-create"/>
|
<property name="search-mode-enabled" bind-source="toolbar_search_bar" bind-property="active" bind-flags="sync-create"/>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkSearchEntry" id="filter_entry">
|
<object class="GtkSearchEntry" id="filter_entry">
|
||||||
<!--
|
|
||||||
<property name="primary-icon-activatable">False</property>
|
|
||||||
<property name="primary-icon-sensitive">False</property>
|
|
||||||
-->
|
|
||||||
<property name="placeholder-text" translatable="yes">search library</property>
|
<property name="placeholder-text" translatable="yes">search library</property>
|
||||||
<signal name="search-changed" handler="on_filter_entry_changed" swapped="no"/>
|
<signal name="search-changed" handler="on_filter_entry_changed" swapped="no"/>
|
||||||
</object>
|
</object>
|
||||||
|
|
|
@ -85,13 +85,13 @@ class LibraryPanel(Adw.Bin):
|
||||||
self._sort_order = SortOrder.YEAR
|
self._sort_order = SortOrder.YEAR
|
||||||
self._sort_type = Gtk.SortType.DESCENDING
|
self._sort_type = Gtk.SortType.DESCENDING
|
||||||
self._grid_pixbufs = {}
|
self._grid_pixbufs = {}
|
||||||
|
self._grid_width = 0
|
||||||
self._old_ranges = {}
|
self._old_ranges = {}
|
||||||
self._library_lock = threading.Lock()
|
self._library_lock = threading.Lock()
|
||||||
self._library_stop = threading.Event()
|
self._library_stop = threading.Event()
|
||||||
self._icon_theme = Gtk.IconTheme.get_for_display(Gdk.Display.get_default())
|
self._icon_theme = Gtk.IconTheme.get_for_display(Gdk.Display.get_default())
|
||||||
self._standalone_pixbuf = None
|
self._standalone_pixbuf = None
|
||||||
self._selected_albums = []
|
self._selected_albums = []
|
||||||
self._grid_width = 0
|
|
||||||
self._is_selected = False
|
self._is_selected = False
|
||||||
|
|
||||||
# Widgets
|
# Widgets
|
||||||
|
@ -190,28 +190,8 @@ class LibraryPanel(Adw.Bin):
|
||||||
|
|
||||||
|
|
||||||
def set_size(self, width, height):
|
def set_size(self, width, height):
|
||||||
width = self.scroll.get_width()
|
self._set_marks()
|
||||||
if width == self._grid_width:
|
self._resize_standalone_image()
|
||||||
return
|
|
||||||
self._grid_width = width
|
|
||||||
self.grid_scale.clear_marks()
|
|
||||||
|
|
||||||
lower = int(self.grid_scale.get_adjustment().get_lower())
|
|
||||||
upper = int(self.grid_scale.get_adjustment().get_upper())
|
|
||||||
countMin = max(int(width / upper), 1)
|
|
||||||
countMax = max(int(width / lower), 1)
|
|
||||||
for index in range(countMin, countMax):
|
|
||||||
pixel = int(width / index)
|
|
||||||
pixel = pixel - (2 * int(pixel / 100))
|
|
||||||
self.grid_scale.add_mark(
|
|
||||||
pixel,
|
|
||||||
Gtk.PositionType.BOTTOM,
|
|
||||||
None
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def on_toolbar_update(self, widget):
|
|
||||||
self.emit('update')
|
|
||||||
|
|
||||||
|
|
||||||
@Gtk.Template.Callback()
|
@Gtk.Template.Callback()
|
||||||
|
@ -341,7 +321,7 @@ class LibraryPanel(Adw.Bin):
|
||||||
|
|
||||||
|
|
||||||
def _sort_grid_model(self):
|
def _sort_grid_model(self):
|
||||||
self._library_grid_model.sort(self._grid_model_compare_func, self._sort_order, self._sort_type)
|
GObject.idle_add(self._library_grid_model.sort, self._grid_model_compare_func, self._sort_order, self._sort_type)
|
||||||
|
|
||||||
|
|
||||||
def _grid_model_compare_func(self, item1, item2, criterion, order):
|
def _grid_model_compare_func(self, item1, item2, criterion, order):
|
||||||
|
@ -403,7 +383,7 @@ class LibraryPanel(Adw.Bin):
|
||||||
GObject.idle_add(self.progress_bar.set_text, locale.gettext("Loading images"))
|
GObject.idle_add(self.progress_bar.set_text, locale.gettext("Loading images"))
|
||||||
|
|
||||||
self._library_lock.release()
|
self._library_lock.release()
|
||||||
self.stack.set_visible_child(self.scroll)
|
GObject.idle_add(self.stack.set_visible_child, self.scroll)
|
||||||
self._sort_grid_model()
|
self._sort_grid_model()
|
||||||
|
|
||||||
|
|
||||||
|
@ -454,6 +434,27 @@ class LibraryPanel(Adw.Bin):
|
||||||
self.set_albums(self._host, self._albums)
|
self.set_albums(self._host, self._albums)
|
||||||
|
|
||||||
|
|
||||||
|
def _set_marks(self):
|
||||||
|
width = self.scroll.get_width()
|
||||||
|
if width == self._grid_width:
|
||||||
|
return
|
||||||
|
self._grid_width = width
|
||||||
|
self.grid_scale.clear_marks()
|
||||||
|
|
||||||
|
lower = int(self.grid_scale.get_adjustment().get_lower())
|
||||||
|
upper = int(self.grid_scale.get_adjustment().get_upper())
|
||||||
|
countMin = max(int(width / upper), 1)
|
||||||
|
countMax = max(int(width / lower), 1)
|
||||||
|
for index in range(countMin, countMax):
|
||||||
|
pixel = int(width / index)
|
||||||
|
pixel = pixel - (2 * int(pixel / 100))
|
||||||
|
self.grid_scale.add_mark(
|
||||||
|
pixel,
|
||||||
|
Gtk.PositionType.BOTTOM,
|
||||||
|
None
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def _open_standalone(self):
|
def _open_standalone(self):
|
||||||
self.library_stack.set_visible_child(self.panel_standalone)
|
self.library_stack.set_visible_child(self.panel_standalone)
|
||||||
self.emit('open-standalone')
|
self.emit('open-standalone')
|
||||||
|
@ -468,15 +469,19 @@ class LibraryPanel(Adw.Bin):
|
||||||
"""Diese Methode skaliert das geladene Bild aus dem Pixelpuffer
|
"""Diese Methode skaliert das geladene Bild aus dem Pixelpuffer
|
||||||
auf die Größe des Fensters unter Beibehalt der Seitenverhältnisse
|
auf die Größe des Fensters unter Beibehalt der Seitenverhältnisse
|
||||||
"""
|
"""
|
||||||
|
# Get size
|
||||||
|
size_width = self.standalone_stack.get_width()
|
||||||
|
size_height = self.standalone_stack.get_height()
|
||||||
|
|
||||||
|
# Get pixelbuffer
|
||||||
pixbuf = self._standalone_pixbuf
|
pixbuf = self._standalone_pixbuf
|
||||||
size = self.standalone_scroll.get_allocation()
|
|
||||||
# Check pixelbuffer
|
# Check pixelbuffer
|
||||||
if pixbuf is None:
|
if pixbuf is None:
|
||||||
return
|
return
|
||||||
|
|
||||||
# Skalierungswert für Breite und Höhe ermitteln
|
# Skalierungswert für Breite und Höhe ermitteln
|
||||||
ratioW = float(size.width) / float(pixbuf.get_width())
|
ratioW = float(size_width) / float(pixbuf.get_width())
|
||||||
ratioH = float(size.height) / float(pixbuf.get_height())
|
ratioH = float(size_height) / float(pixbuf.get_height())
|
||||||
# Kleineren beider Skalierungswerte nehmen, nicht Hochskalieren
|
# Kleineren beider Skalierungswerte nehmen, nicht Hochskalieren
|
||||||
ratio = min(ratioW, ratioH)
|
ratio = min(ratioW, ratioH)
|
||||||
ratio = min(ratio, 1)
|
ratio = min(ratio, 1)
|
||||||
|
|
|
@ -159,6 +159,10 @@ class PlaylistPanel(Adw.Bin):
|
||||||
self._close_standalone()
|
self._close_standalone()
|
||||||
|
|
||||||
|
|
||||||
|
def set_size(self, width, height):
|
||||||
|
self._resize_standalone_image()
|
||||||
|
|
||||||
|
|
||||||
def set_item_size(self, item_size):
|
def set_item_size(self, item_size):
|
||||||
if self._item_size != item_size:
|
if self._item_size != item_size:
|
||||||
self._item_size = item_size
|
self._item_size = item_size
|
||||||
|
@ -268,15 +272,19 @@ class PlaylistPanel(Adw.Bin):
|
||||||
"""Diese Methode skaliert das geladene Bild aus dem Pixelpuffer
|
"""Diese Methode skaliert das geladene Bild aus dem Pixelpuffer
|
||||||
auf die Größe des Fensters unter Beibehalt der Seitenverhältnisse
|
auf die Größe des Fensters unter Beibehalt der Seitenverhältnisse
|
||||||
"""
|
"""
|
||||||
|
# Get size
|
||||||
|
size_width = self.standalone_stack.get_width()
|
||||||
|
size_height = self.standalone_stack.get_height()
|
||||||
|
|
||||||
|
# Get pixelbuffer
|
||||||
pixbuf = self._standalone_pixbuf
|
pixbuf = self._standalone_pixbuf
|
||||||
size = self.standalone_scroll.get_allocation()
|
|
||||||
# Check pixelbuffer
|
# Check pixelbuffer
|
||||||
if pixbuf is None:
|
if pixbuf is None:
|
||||||
return
|
return
|
||||||
|
|
||||||
# Skalierungswert für Breite und Höhe ermitteln
|
# Skalierungswert für Breite und Höhe ermitteln
|
||||||
ratioW = float(size.width) / float(pixbuf.get_width())
|
ratioW = float(size_width) / float(pixbuf.get_width())
|
||||||
ratioH = float(size.height) / float(pixbuf.get_height())
|
ratioH = float(size_height) / float(pixbuf.get_height())
|
||||||
# Kleineren beider Skalierungswerte nehmen, nicht Hochskalieren
|
# Kleineren beider Skalierungswerte nehmen, nicht Hochskalieren
|
||||||
ratio = min(ratioW, ratioH)
|
ratio = min(ratioW, ratioH)
|
||||||
ratio = min(ratio, 1)
|
ratio = min(ratio, 1)
|
||||||
|
|
|
@ -254,6 +254,7 @@ class Window(Adw.ApplicationWindow):
|
||||||
if not self._state.get_property(WindowState.IS_MAXIMIZED):
|
if not self._state.get_property(WindowState.IS_MAXIMIZED):
|
||||||
self._state.set_property(WindowState.WIDTH, width)
|
self._state.set_property(WindowState.WIDTH, width)
|
||||||
self._state.set_property(WindowState.HEIGHT, height)
|
self._state.set_property(WindowState.HEIGHT, height)
|
||||||
|
GObject.idle_add(self._playlist_panel.set_size, width, height)
|
||||||
GObject.idle_add(self._library_panel.set_size, width, height)
|
GObject.idle_add(self._library_panel.set_size, width, height)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue