diff --git a/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/controller.py b/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/controller.py
index 661f72e..c8d817e 100644
--- a/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/controller.py
+++ b/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/controller.py
@@ -7,12 +7,12 @@ gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, GLib
# Application imports
+from widgets.context_menu_widget import ContextMenuWidget
from .mixins.exception_hook_mixin import ExceptionHookMixin
from .mixins.ui_mixin import UIMixin
from .signals.ipc_signals_mixin import IPCSignalsMixin
from .signals.keyboard_signals_mixin import KeyboardSignalsMixin
from .controller_data import Controller_Data
-from .context_menu import ContextMenu
@@ -23,7 +23,7 @@ class Controller(UIMixin, KeyboardSignalsMixin, IPCSignalsMixin, ExceptionHookMi
self.setup_controller_data()
self.generate_windows(self.fm_controller_data)
- cm = ContextMenu()
+ cm = ContextMenuWidget()
cm.build_context_menu()
if args.no_plugins == "false":
diff --git a/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/mixins/ui/grid_mixin.py b/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/mixins/ui/grid_mixin.py
index 486b579..57513cb 100644
--- a/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/mixins/ui/grid_mixin.py
+++ b/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/mixins/ui/grid_mixin.py
@@ -9,8 +9,9 @@ gi.require_version('Gdk', '3.0')
from gi.repository import Gtk, Gdk, GLib, Gio, GdkPixbuf
# Application imports
-
-
+from widgets.tab_header import TabHeader
+from widgets.icon_grid_widget import IconGridWidget
+from widgets.icon_tree_widget import IconTreeWidget
# NOTE: Consider trying to use Gtk.TreeView with css that turns it into a grid...
@@ -47,7 +48,7 @@ class Icon(Gtk.HBox):
class GridMixin:
- """docstring for WidgetMixin"""
+ """docstring for GridMixin"""
def load_store(self, tab, store, save_state=False):
store.clear()
@@ -95,127 +96,50 @@ class GridMixin:
def create_tab_widget(self, tab):
- tab_widget = Gtk.ButtonBox()
- label = Gtk.Label()
- tid = Gtk.Label()
- close = Gtk.Button()
- icon = Gtk.Image(stock=Gtk.STOCK_CLOSE)
-
- label.set_label(f"{tab.get_end_of_path()}")
- label.set_width_chars(len(tab.get_end_of_path()))
- label.set_xalign(0.0)
- tid.set_label(f"{tab.get_id()}")
-
- close.add(icon)
- tab_widget.add(label)
- tab_widget.add(close)
- tab_widget.add(tid)
-
- close.connect("released", self.close_tab)
- tab_widget.show_all()
- tid.hide()
- return tab_widget
+ return TabHeader(tab, self.close_tab)
def create_scroll_and_store(self, tab, wid, use_tree_view=False):
+ scroll = Gtk.ScrolledWindow()
+
if not use_tree_view:
- scroll, store = self.create_icon_grid_widget(tab, wid)
+ grid = self.create_icon_grid_widget()
else:
# TODO: Fix global logic to make the below work too
- scroll, store = self.create_icon_tree_widget(tab, wid)
+ grid = self.create_icon_tree_widget()
- return scroll, store
-
- def create_icon_grid_widget(self, tab, wid):
- scroll = Gtk.ScrolledWindow()
- grid = Gtk.IconView()
- store = Gtk.ListStore(GdkPixbuf.Pixbuf or GdkPixbuf.PixbufAnimation or None, str or None)
-
- grid.set_model(store)
- grid.set_pixbuf_column(0)
- grid.set_text_column(1)
-
- grid.set_item_orientation(1)
- grid.set_selection_mode(3)
- grid.set_item_width(96)
- grid.set_item_padding(8)
- grid.set_margin(12)
- grid.set_row_spacing(18)
- grid.set_columns(-1)
- grid.set_spacing(12)
- grid.set_column_spacing(18)
-
- grid.connect("button_release_event", self.grid_icon_single_click)
- grid.connect("item-activated", self.grid_icon_double_click)
- grid.connect("selection-changed", self.grid_set_selected_items)
- grid.connect("drag-data-get", self.grid_on_drag_set)
- grid.connect("drag-data-received", self.grid_on_drag_data_received)
- grid.connect("drag-motion", self.grid_on_drag_motion)
-
- URI_TARGET_TYPE = 80
- uri_target = Gtk.TargetEntry.new('text/uri-list', Gtk.TargetFlags(0), URI_TARGET_TYPE)
- targets = [ uri_target ]
- action = Gdk.DragAction.COPY
- grid.enable_model_drag_dest(targets, action)
- grid.enable_model_drag_source(0, targets, action)
-
- grid.show_all()
scroll.add(grid)
- grid.set_name(f"{wid}|{tab.get_id()}")
scroll.set_name(f"{wid}|{tab.get_id()}")
+ grid.set_name(f"{wid}|{tab.get_id()}")
self.builder.expose_object(f"{wid}|{tab.get_id()}|icon_grid", grid)
self.builder.expose_object(f"{wid}|{tab.get_id()}", scroll)
- return scroll, store
- def create_icon_tree_widget(self, tab, wid):
- scroll = Gtk.ScrolledWindow()
- grid = Gtk.TreeView()
- store = Gtk.TreeStore(GdkPixbuf.Pixbuf or GdkPixbuf.PixbufAnimation or None, str or None)
- column = Gtk.TreeViewColumn("Icons")
- icon = Gtk.CellRendererPixbuf()
- name = Gtk.CellRendererText()
- selec = grid.get_selection()
+ return scroll, grid.get_store()
- grid.set_model(store)
- selec.set_mode(3)
- column.pack_start(icon, False)
- column.pack_start(name, True)
- column.add_attribute(icon, "pixbuf", 0)
- column.add_attribute(name, "text", 1)
- column.set_expand(False)
- column.set_sizing(2)
- column.set_min_width(120)
- column.set_max_width(74)
+ def create_icon_grid_widget(self):
+ grid = IconGridWidget()
+ grid._setup_additional_signals(
+ self.grid_icon_single_click,
+ self.grid_icon_double_click,
+ self.grid_set_selected_items,
+ self.grid_on_drag_set,
+ self.grid_on_drag_data_received,
+ self.grid_on_drag_motion
+ )
- grid.append_column(column)
- grid.set_search_column(1)
- grid.set_rubber_banding(True)
- grid.set_headers_visible(False)
- grid.set_enable_tree_lines(False)
+ return grid
- grid.connect("button_release_event", self.grid_icon_single_click)
- grid.connect("row-activated", self.grid_icon_double_click)
- grid.connect("drag-data-get", self.grid_on_drag_set)
- grid.connect("drag-data-received", self.grid_on_drag_data_received)
- grid.connect("drag-motion", self.grid_on_drag_motion)
+ def create_icon_tree_widget(self):
+ grid = IconTreeWidget()
+ grid._setup_additional_signals(
+ self.grid_icon_single_click,
+ self.grid_icon_double_click,
+ self.grid_on_drag_set,
+ self.grid_on_drag_data_received,
+ self.grid_on_drag_motion
+ )
- URI_TARGET_TYPE = 80
- uri_target = Gtk.TargetEntry.new('text/uri-list', Gtk.TargetFlags(0), URI_TARGET_TYPE)
- targets = [ uri_target ]
- action = Gdk.DragAction.COPY
- grid.enable_model_drag_dest(targets, action)
- grid.enable_model_drag_source(0, targets, action)
-
- grid.show_all()
- scroll.add(grid)
- grid.set_name(f"{wid}|{tab.get_id()}")
- scroll.set_name(f"{wid}|{tab.get_id()}")
- self.builder.expose_object(f"{wid}|{tab.get_id()}|icon_grid", grid)
- self.builder.expose_object(f"{wid}|{tab.get_id()}", scroll)
grid.columns_autosize()
-
- self.builder.expose_object(f"{wid}|{tab.get_id()}", scroll)
- return scroll, store
-
+ return grid
def get_store_and_label_from_notebook(self, notebook, _name):
icon_grid = None
diff --git a/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/mixins/ui/widget_file_action_mixin.py b/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/mixins/ui/widget_file_action_mixin.py
index 735ef2e..62109b8 100644
--- a/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/mixins/ui/widget_file_action_mixin.py
+++ b/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/mixins/ui/widget_file_action_mixin.py
@@ -7,6 +7,7 @@ gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, GObject, GLib, Gio
# Application imports
+from widgets.io_widget import IOWidget
@@ -203,7 +204,7 @@ class WidgetFileActionMixin:
self.show_new_file_menu(fname_field)
if self.cancel_creation:
- self.cancel_creation = False
+ self.cancel_creation = False
return
file_name = fname_field.get_text().strip()
@@ -306,7 +307,6 @@ class WidgetFileActionMixin:
file.make_directory(cancellable=None)
continue
-
type = file.query_file_type(flags=Gio.FileQueryInfoFlags.NONE)
if type == Gio.FileType.DIRECTORY:
wid, tid = self.fm_controller.get_active_wid_and_tid()
@@ -320,79 +320,33 @@ class WidgetFileActionMixin:
if action == "move" or action == "rename":
tab.move_file(fPath, tPath)
else:
- if action == "copy":
- container, cancle_eve, update_progress, finish_callback = self.create_io_widget(action, file)
- file.copy_async(destination=target, flags=Gio.FileCopyFlags.BACKUP,
- io_priority=98, cancellable=cancle_eve,
- progress_callback=update_progress, callback=finish_callback)
- self.builder.get_object("io_list").add(container)
- if action == "move" or action == "rename":
- container, cancle_eve, update_progress, finish_callback = self.create_io_widget(action, file)
- file.move_async(destination=target, flags=Gio.FileCopyFlags.BACKUP,
- io_priority=98, cancellable=cancle_eve,
- progress_callback=None, callback=finish_callback) # NOTE: progress_callback causes seg fault when set
- self.builder.get_object("io_list").add(container)
+ io_widget = IOWidget(action, file)
+ if action == "copy":
+ file.copy_async(destination=target,
+ flags=Gio.FileCopyFlags.BACKUP,
+ io_priority=98,
+ cancellable=io_widget.cancle_eve,
+ progress_callback=io_widget.update_progress,
+ callback=io_widget.finish_callback)
+
+ self.builder.get_object("io_list").add(io_widget)
+ if action == "move" or action == "rename":
+ file.move_async(destination=target,
+ flags=Gio.FileCopyFlags.BACKUP,
+ io_priority=98,
+ cancellable=io_widget.cancle_eve,
+ progress_callback=None,
+ # NOTE: progress_callback here causes seg fault when set
+ callback=io_widget.finish_callback)
+
+ self.builder.get_object("io_list").add(io_widget)
except GObject.GError as e:
raise OSError(e)
self.exists_file_rename_bttn.set_sensitive(False)
- def create_io_widget(self, action, file):
- cancle_eve = Gio.Cancellable.new()
- container = Gtk.Box()
- stats = Gtk.Box()
- label = Gtk.Label()
- progress = Gtk.ProgressBar()
- cncl_button = Gtk.Button(label="Cancel")
- del_button = Gtk.Button(label="Clear")
- io_list = self.builder.get_object("io_list")
- label.set_label(file.get_basename())
-
- progress.set_show_text(True)
- progress.set_text(f"{action.upper()}ING")
-
-
- def do_cancel(widget, container, eve):
- print(f"Canceling: [{action}] of {file.get_basename()} ...")
- eve.cancel()
-
- def update_progress(current, total, eve=None):
- progress.set_fraction(current/total)
-
- def finish_callback(file, task=None, eve=None):
- if action == "move":
- status = file.move_finish(task)
- if action == "copy":
- status = file.copy_finish(task)
-
- if status:
- self.builder.get_object("io_list").remove(container)
- else:
- print(f"{action} of {file.get_basename()} failed...")
-
- def delete_container(widget, eve):
- io_list.remove(container)
-
-
- stats.pack_end(del_button, False, False, 5)
- del_button.connect("clicked", delete_container, ())
-
- if not action in ("create", "rename"):
- stats.pack_end(cncl_button, False, False, 5)
- cncl_button.connect("clicked", do_cancel, *(container, cancle_eve))
-
- container.set_orientation(1)
- stats.set_orientation(0)
- stats.add(progress)
-
- container.add(label)
- container.add(stats)
- container.show_all()
-
- return container, cancle_eve, update_progress, finish_callback
-
def setup_exists_data(self, from_file, to_file):
from_info = from_file.query_info("standard::*,time::modified", 0, cancellable=None)
diff --git a/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/__init__.py b/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/__init__.py
new file mode 100644
index 0000000..1678cd7
--- /dev/null
+++ b/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/__init__.py
@@ -0,0 +1,3 @@
+"""
+ Widgets module
+"""
diff --git a/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/context_menu.py b/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/context_menu_widget.py
similarity index 94%
rename from src/versions/solarfm-0.0.1/SolarFM/solarfm/core/context_menu.py
rename to src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/context_menu_widget.py
index f6f6cec..875dbfc 100644
--- a/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/context_menu.py
+++ b/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/context_menu_widget.py
@@ -9,9 +9,11 @@ from gi.repository import GLib
# Application imports
-class ContextMenu(Gtk.Menu):
+class ContextMenuWidget(Gtk.Menu):
+ """docstring for ContextMenuWidget"""
+
def __init__(self):
- super(ContextMenu, self).__init__()
+ super(ContextMenuWidget, self).__init__()
self._builder = settings.get_builder()
self._context_menu_data = settings.get_context_menu_data()
self._window = settings.get_main_window()
diff --git a/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/icon_grid_widget.py b/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/icon_grid_widget.py
new file mode 100644
index 0000000..47056ad
--- /dev/null
+++ b/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/icon_grid_widget.py
@@ -0,0 +1,72 @@
+# Python imports
+
+# Lib imports
+import gi
+gi.require_version('Gtk', '3.0')
+gi.require_version('Gdk', '3.0')
+from gi.repository import Gtk, Gdk, GdkPixbuf
+
+
+# Application imports
+
+
+class IconGridWidget(Gtk.IconView):
+ """docstring for IconGridWidget"""
+
+ def __init__(self):
+ super(IconGridWidget, self).__init__()
+
+ self._store = None
+
+ self._setup_styling()
+ self._setup_signals()
+ self._set_up_dnd()
+ self._load_widgets()
+
+ self.show_all()
+
+ def get_store(self):
+ return self._store
+
+ def _setup_styling(self):
+ self.set_pixbuf_column(0)
+ self.set_text_column(1)
+
+ self.set_item_orientation(1)
+ self.set_selection_mode(3)
+ self.set_item_width(96)
+ self.set_item_padding(8)
+ self.set_margin(12)
+ self.set_row_spacing(18)
+ self.set_columns(-1)
+ self.set_spacing(12)
+ self.set_column_spacing(18)
+
+ def _setup_signals(self):
+ ...
+
+ def _setup_additional_signals(self, grid_icon_single_click,
+ grid_icon_double_click,
+ grid_set_selected_items,
+ grid_on_drag_set,
+ grid_on_drag_data_received,
+ grid_on_drag_motion):
+
+ self.connect("button_release_event", grid_icon_single_click)
+ self.connect("item-activated", grid_icon_double_click)
+ self.connect("selection-changed", grid_set_selected_items)
+ self.connect("drag-data-get", grid_on_drag_set)
+ self.connect("drag-data-received", grid_on_drag_data_received)
+ self.connect("drag-motion", grid_on_drag_motion)
+
+ def _load_widgets(self):
+ self._store = Gtk.ListStore(GdkPixbuf.Pixbuf or GdkPixbuf.PixbufAnimation or None, str or None)
+ self.set_model(self._store)
+
+ def _set_up_dnd(self):
+ URI_TARGET_TYPE = 80
+ uri_target = Gtk.TargetEntry.new('text/uri-list', Gtk.TargetFlags(0), URI_TARGET_TYPE)
+ targets = [ uri_target ]
+ action = Gdk.DragAction.COPY
+ self.enable_model_drag_dest(targets, action)
+ self.enable_model_drag_source(0, targets, action)
diff --git a/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/icon_tree_widget.py b/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/icon_tree_widget.py
new file mode 100644
index 0000000..597dcd6
--- /dev/null
+++ b/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/icon_tree_widget.py
@@ -0,0 +1,79 @@
+# Python imports
+
+# Lib imports
+import gi
+gi.require_version('Gtk', '3.0')
+gi.require_version('Gdk', '3.0')
+from gi.repository import Gtk, Gdk, GdkPixbuf
+
+# Application imports
+
+
+class IconTreeWidget(Gtk.TreeView):
+ """docstring for IconTreeWidget"""
+
+ def __init__(self):
+ super(IconTreeWidget, self).__init__()
+
+ self._store = None
+
+ self._setup_styling()
+ self._setup_signals()
+ self._set_up_dnd()
+ self._load_widgets()
+
+ self.show_all()
+
+ def get_store(self):
+ return self._store
+
+ def _setup_styling(self):
+ self.set_search_column(1)
+ self.set_rubber_banding(True)
+ self.set_headers_visible(False)
+ self.set_enable_tree_lines(False)
+
+ def _setup_signals(self):
+ ...
+
+ def _setup_additional_signals(self, grid_icon_single_click,
+ grid_icon_double_click,
+ grid_on_drag_set,
+ grid_on_drag_data_received,
+ grid_on_drag_motion):
+
+ self.connect("button_release_event", self.grid_icon_single_click)
+ self.connect("row-activated", self.grid_icon_double_click)
+ self.connect("drag-data-get", self.grid_on_drag_set)
+ self.connect("drag-data-received", self.grid_on_drag_data_received)
+ self.connect("drag-motion", self.grid_on_drag_motion)
+
+ def _load_widgets(self):
+ self._store = Gtk.TreeStore(GdkPixbuf.Pixbuf or GdkPixbuf.PixbufAnimation or None, str or None)
+ column = Gtk.TreeViewColumn("Icons")
+ icon = Gtk.CellRendererPixbuf()
+ name = Gtk.CellRendererText()
+ selec = self.get_selection()
+
+ self.set_model(store)
+ selec.set_mode(3)
+
+ column.pack_start(icon, False)
+ column.pack_start(name, True)
+ column.add_attribute(icon, "pixbuf", 0)
+ column.add_attribute(name, "text", 1)
+ column.set_expand(False)
+ column.set_sizing(2)
+ column.set_min_width(120)
+ column.set_max_width(74)
+
+ self.append_column(column)
+
+
+ def _set_up_dnd(self):
+ URI_TARGET_TYPE = 80
+ uri_target = Gtk.TargetEntry.new('text/uri-list', Gtk.TargetFlags(0), URI_TARGET_TYPE)
+ targets = [ uri_target ]
+ action = Gdk.DragAction.COPY
+ self.enable_model_drag_dest(targets, action)
+ self.enable_model_drag_source(0, targets, action)
diff --git a/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/io_widget.py b/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/io_widget.py
new file mode 100644
index 0000000..08b320d
--- /dev/null
+++ b/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/io_widget.py
@@ -0,0 +1,78 @@
+# Python imports
+
+# Lib imports
+import gi
+gi.require_version('Gtk', '3.0')
+from gi.repository import Gtk, Gio
+
+# Application imports
+
+
+class IOWidget(Gtk.Box):
+ """docstring for IOWidget"""
+
+ def __init__(self, action, file):
+ super(IOWidget, self).__init__()
+ self._action = action
+ self._file = file
+ self._basename = self._file.get_basename()
+
+ self.cancle_eve = Gio.Cancellable.new()
+ self.progress = None
+
+ self._setup_styling()
+ self._setup_signals()
+ self._load_widgets()
+
+ self.show_all()
+
+
+ def _setup_styling(self):
+ self.set_orientation(1)
+
+ def _setup_signals(self):
+ ...
+
+ def _load_widgets(self):
+ stats = Gtk.Box()
+ label = Gtk.Label()
+ cncl_button = Gtk.Button(label="Cancel")
+ del_button = Gtk.Button(label="Clear")
+ self.progress = Gtk.ProgressBar()
+
+ label.set_label(self._basename)
+ self.progress.set_show_text(True)
+ self.progress.set_text(f"{self._action.upper()}ING")
+ stats.set_orientation(0)
+
+ stats.pack_end(del_button, False, False, 5)
+ del_button.connect("clicked", self.delete_self, ())
+
+ if not self._action in ("create", "rename"):
+ stats.pack_end(cncl_button, False, False, 5)
+ cncl_button.connect("clicked", self.do_cancel, *(self, self.cancle_eve))
+
+ stats.add(self.progress)
+ self.add(label)
+ self.add(stats)
+
+ def do_cancel(self, widget, container, eve):
+ print(f"Canceling: [{self._action}] of {self._basename} ...")
+ eve.cancel()
+
+ def update_progress(self, current, total, eve=None):
+ self.progress.set_fraction(current/total)
+
+ def finish_callback(self, file, task=None, eve=None):
+ if self._action == "move" and self._action == "rename":
+ status = self._file.move_finish(task)
+ if self._action == "copy":
+ status = self._file.copy_finish(task)
+
+ if status:
+ self.delete_self()
+ else:
+ print(f"{self._action} of {self._basename} failed...")
+
+ def delete_self(self, widget=None, eve=None):
+ self.get_parent().remove(self)
diff --git a/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/tab_header.py b/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/tab_header.py
new file mode 100644
index 0000000..2e1cbe0
--- /dev/null
+++ b/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/tab_header.py
@@ -0,0 +1,48 @@
+# Python imports
+
+# Lib imports
+import gi
+gi.require_version('Gtk', '3.0')
+from gi.repository import Gtk, Gio
+
+# Application imports
+
+
+class TabHeader(Gtk.ButtonBox):
+ """docstring for TabHeader"""
+
+ def __init__(self, tab, close_tab):
+ super(TabHeader, self).__init__()
+ self._tab = tab
+ self._close_tab = close_tab # NOTE: Close method in tab_mixin
+
+ self._setup_styling()
+ self._setup_signals()
+ self._load_widgets()
+
+ def _setup_styling(self):
+ self.set_orientation(0)
+
+ def _setup_signals(self):
+ ...
+
+ def _load_widgets(self):
+ label = Gtk.Label()
+ tid = Gtk.Label()
+ close = Gtk.Button()
+ icon = Gtk.Image(stock=Gtk.STOCK_CLOSE)
+
+ label.set_label(f"{self._tab.get_end_of_path()}")
+ label.set_width_chars(len(self._tab.get_end_of_path()))
+ label.set_xalign(0.0)
+ tid.set_label(f"{self._tab.get_id()}")
+
+ close.connect("released", self._close_tab)
+
+ close.add(icon)
+ self.add(label)
+ self.add(close)
+ self.add(tid)
+
+ self.show_all()
+ tid.hide()
diff --git a/user_config/usr/share/solarfm/Main_Window.glade b/user_config/usr/share/solarfm/Main_Window.glade
index 3910294..80b33a2 100644
--- a/user_config/usr/share/solarfm/Main_Window.glade
+++ b/user_config/usr/share/solarfm/Main_Window.glade
@@ -828,22 +828,6 @@ SolarFM is developed on Atom, git, and using Python 3+ with Gtk GObject introspe
False
5
start
-
-
-
- True
- True
- 0
-
-
@@ -871,7 +855,7 @@ SolarFM is developed on Atom, git, and using Python 3+ with Gtk GObject introspe
True
True
- 2
+ 1
@@ -887,7 +871,7 @@ SolarFM is developed on Atom, git, and using Python 3+ with Gtk GObject introspe
True
True
- 3
+ 2
@@ -903,7 +887,7 @@ SolarFM is developed on Atom, git, and using Python 3+ with Gtk GObject introspe
True
True
- 4
+ 3
@@ -916,6 +900,22 @@ SolarFM is developed on Atom, git, and using Python 3+ with Gtk GObject introspe
True
+
+ True
+ True
+ 4
+
+
+
+
True
True