Renamed Signals to Controller; Moved show/hides to mixin file
This commit is contained in:
parent
a25b500773
commit
489288204c
@ -5,7 +5,7 @@ import os, inspect, time
|
|||||||
|
|
||||||
# Application imports
|
# Application imports
|
||||||
from utils import Settings
|
from utils import Settings
|
||||||
from signal_classes import Signals
|
from signal_classes import Controller
|
||||||
from __builtins__ import Builtins
|
from __builtins__ import Builtins
|
||||||
|
|
||||||
|
|
||||||
@ -30,13 +30,13 @@ class Main(Builtins):
|
|||||||
settings = Settings()
|
settings = Settings()
|
||||||
settings.createWindow()
|
settings.createWindow()
|
||||||
|
|
||||||
signals = Signals(args, unknownargs, settings)
|
controller = Controller(args, unknownargs, settings)
|
||||||
if not signals:
|
if not controller:
|
||||||
raise Exception("Signals exited...")
|
raise Exception("Controller exited and doesn't exist...")
|
||||||
|
|
||||||
# Gets the methods from the classes and sets to handler.
|
# Gets the methods from the classes and sets to handler.
|
||||||
# Then, builder connects to any signals it needs.
|
# Then, builder connects to any signals it needs.
|
||||||
classes = [signals]
|
classes = [controller]
|
||||||
handlers = {}
|
handlers = {}
|
||||||
for c in classes:
|
for c in classes:
|
||||||
methods = None
|
methods = None
|
||||||
|
@ -388,6 +388,7 @@ PyFM is developed on Atom, git, and using Python 3+ with Gtk GObject introspecti
|
|||||||
<property name="window-position">mouse</property>
|
<property name="window-position">mouse</property>
|
||||||
<property name="type-hint">splashscreen</property>
|
<property name="type-hint">splashscreen</property>
|
||||||
<property name="gravity">south</property>
|
<property name="gravity">south</property>
|
||||||
|
<signal name="focus-out-event" handler="hide_appchooser_menu" swapped="no"/>
|
||||||
<child internal-child="vbox">
|
<child internal-child="vbox">
|
||||||
<object class="GtkBox">
|
<object class="GtkBox">
|
||||||
<property name="can-focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
|
@ -4,15 +4,13 @@ import threading, subprocess, signal, inspect, os, time
|
|||||||
# Gtk imports
|
# Gtk imports
|
||||||
import gi
|
import gi
|
||||||
gi.require_version('Gtk', '3.0')
|
gi.require_version('Gtk', '3.0')
|
||||||
gi.require_version('Gdk', '3.0')
|
|
||||||
from gi.repository import Gtk
|
from gi.repository import Gtk
|
||||||
from gi.repository import Gdk
|
|
||||||
from gi.repository import GLib
|
from gi.repository import GLib
|
||||||
|
|
||||||
# Application imports
|
# Application imports
|
||||||
from .mixins import *
|
from .mixins import *
|
||||||
from shellfm import WindowController
|
from shellfm import WindowController
|
||||||
from . import KeyboardSignalsMixin
|
from . import ShowHideMixin, KeyboardSignalsMixin
|
||||||
|
|
||||||
|
|
||||||
def threaded(fn):
|
def threaded(fn):
|
||||||
@ -21,7 +19,7 @@ def threaded(fn):
|
|||||||
return wrapper
|
return wrapper
|
||||||
|
|
||||||
|
|
||||||
class Signals(KeyboardSignalsMixin, WidgetFileActionMixin, PaneMixin, WindowMixin):
|
class Controller(ShowHideMixin, KeyboardSignalsMixin, WidgetFileActionMixin, PaneMixin, WindowMixin):
|
||||||
def __init__(self, args, unknownargs, settings):
|
def __init__(self, args, unknownargs, settings):
|
||||||
self.settings = settings
|
self.settings = settings
|
||||||
self.builder = self.settings.builder
|
self.builder = self.settings.builder
|
||||||
@ -95,15 +93,7 @@ class Signals(KeyboardSignalsMixin, WidgetFileActionMixin, PaneMixin, WindowMixi
|
|||||||
return callable(getattr(o, name, None))
|
return callable(getattr(o, name, None))
|
||||||
|
|
||||||
|
|
||||||
def refresh_tab(data=None):
|
|
||||||
self, ids = data
|
|
||||||
wid, tid = ids.split("|")
|
|
||||||
notebook = self.builder.get_object(f"window_{wid}")
|
|
||||||
store, tab_label = self.get_store_and_label_from_notebook(notebook, f"{wid}|{tid}")
|
|
||||||
view = self.get_fm_window(wid).get_view_by_id(tid)
|
|
||||||
|
|
||||||
view.load_directory()
|
|
||||||
self.load_store(view, store)
|
|
||||||
|
|
||||||
def do_edit_files(self, widget=None, eve=None):
|
def do_edit_files(self, widget=None, eve=None):
|
||||||
self.to_rename_files = self.selected_files
|
self.to_rename_files = self.selected_files
|
||||||
@ -147,57 +137,6 @@ class Signals(KeyboardSignalsMixin, WidgetFileActionMixin, PaneMixin, WindowMixi
|
|||||||
self.ctrlDown = False
|
self.ctrlDown = False
|
||||||
|
|
||||||
|
|
||||||
def show_about_page(self, widget, eve):
|
|
||||||
about_page = self.builder.get_object("about_page")
|
|
||||||
response = about_page.run()
|
|
||||||
if response == -4:
|
|
||||||
self.hide_about_page()
|
|
||||||
|
|
||||||
def hide_about_page(self, widget=None, eve=None):
|
|
||||||
about_page = self.builder.get_object("about_page").hide()
|
|
||||||
|
|
||||||
def show_appchooser_menu(self, widget=None, eve=None):
|
|
||||||
appchooser_menu = self.builder.get_object("appchooser_menu")
|
|
||||||
appchooser_widget = self.builder.get_object("appchooser_widget")
|
|
||||||
|
|
||||||
resp = appchooser_menu.run()
|
|
||||||
if resp == Gtk.ResponseType.CANCEL:
|
|
||||||
self.hide_appchooser_menu()
|
|
||||||
if resp == Gtk.ResponseType.OK:
|
|
||||||
self.open_with_files(appchooser_widget)
|
|
||||||
self.hide_appchooser_menu()
|
|
||||||
|
|
||||||
def hide_appchooser_menu(self, widget=None, eve=None):
|
|
||||||
self.builder.get_object("appchooser_menu").hide()
|
|
||||||
|
|
||||||
def run_appchooser_launch(self, widget=None, eve=None):
|
|
||||||
self.builder.get_object("appchooser_select_btn").pressed()
|
|
||||||
|
|
||||||
def show_context_menu(self, widget=None, eve=None):
|
|
||||||
self.builder.get_object("context_menu").run()
|
|
||||||
|
|
||||||
def hide_context_menu(self, widget=None, eve=None):
|
|
||||||
self.builder.get_object("context_menu").hide()
|
|
||||||
|
|
||||||
def show_new_file_menu(self, widget=None, eve=None):
|
|
||||||
self.builder.get_object("new_file_menu").run()
|
|
||||||
|
|
||||||
def hide_new_file_menu(self, widget=None, eve=None):
|
|
||||||
self.builder.get_object("new_file_menu").hide()
|
|
||||||
|
|
||||||
def show_edit_file_menu(self, widget=None, eve=None):
|
|
||||||
self.builder.get_object("edit_file_menu").run()
|
|
||||||
|
|
||||||
def hide_edit_file_menu(self, widget=None, eve=None):
|
|
||||||
self.builder.get_object("edit_file_menu").hide()
|
|
||||||
|
|
||||||
def hide_edit_file_menu_skip(self, widget=None, eve=None):
|
|
||||||
self.skip_edit = True
|
|
||||||
self.builder.get_object("edit_file_menu").hide()
|
|
||||||
|
|
||||||
def hide_edit_file_menu_cancel(self, widget=None, eve=None):
|
|
||||||
self.cancel_edit = True
|
|
||||||
self.builder.get_object("edit_file_menu").hide()
|
|
||||||
|
|
||||||
|
|
||||||
def generate_windows(self, data = None):
|
def generate_windows(self, data = None):
|
@ -0,0 +1,62 @@
|
|||||||
|
# Python imports
|
||||||
|
|
||||||
|
# Gtk imports
|
||||||
|
import gi
|
||||||
|
gi.require_version('Gtk', '3.0')
|
||||||
|
from gi.repository import Gtk
|
||||||
|
|
||||||
|
# Application imports
|
||||||
|
|
||||||
|
|
||||||
|
class ShowHideMixin:
|
||||||
|
def show_about_page(self, widget, eve):
|
||||||
|
about_page = self.builder.get_object("about_page")
|
||||||
|
response = about_page.run()
|
||||||
|
if response == -4:
|
||||||
|
self.hide_about_page()
|
||||||
|
|
||||||
|
def hide_about_page(self, widget=None, eve=None):
|
||||||
|
about_page = self.builder.get_object("about_page").hide()
|
||||||
|
|
||||||
|
def show_appchooser_menu(self, widget=None, eve=None):
|
||||||
|
appchooser_menu = self.builder.get_object("appchooser_menu")
|
||||||
|
appchooser_widget = self.builder.get_object("appchooser_widget")
|
||||||
|
|
||||||
|
resp = appchooser_menu.run()
|
||||||
|
if resp == Gtk.ResponseType.CANCEL:
|
||||||
|
self.hide_appchooser_menu()
|
||||||
|
if resp == Gtk.ResponseType.OK:
|
||||||
|
self.open_with_files(appchooser_widget)
|
||||||
|
self.hide_appchooser_menu()
|
||||||
|
|
||||||
|
def hide_appchooser_menu(self, widget=None, eve=None):
|
||||||
|
self.builder.get_object("appchooser_menu").hide()
|
||||||
|
|
||||||
|
def run_appchooser_launch(self, widget=None, eve=None):
|
||||||
|
self.builder.get_object("appchooser_select_btn").pressed()
|
||||||
|
|
||||||
|
def show_context_menu(self, widget=None, eve=None):
|
||||||
|
self.builder.get_object("context_menu").run()
|
||||||
|
|
||||||
|
def hide_context_menu(self, widget=None, eve=None):
|
||||||
|
self.builder.get_object("context_menu").hide()
|
||||||
|
|
||||||
|
def show_new_file_menu(self, widget=None, eve=None):
|
||||||
|
self.builder.get_object("new_file_menu").run()
|
||||||
|
|
||||||
|
def hide_new_file_menu(self, widget=None, eve=None):
|
||||||
|
self.builder.get_object("new_file_menu").hide()
|
||||||
|
|
||||||
|
def show_edit_file_menu(self, widget=None, eve=None):
|
||||||
|
self.builder.get_object("edit_file_menu").run()
|
||||||
|
|
||||||
|
def hide_edit_file_menu(self, widget=None, eve=None):
|
||||||
|
self.builder.get_object("edit_file_menu").hide()
|
||||||
|
|
||||||
|
def hide_edit_file_menu_skip(self, widget=None, eve=None):
|
||||||
|
self.skip_edit = True
|
||||||
|
self.builder.get_object("edit_file_menu").hide()
|
||||||
|
|
||||||
|
def hide_edit_file_menu_cancel(self, widget=None, eve=None):
|
||||||
|
self.cancel_edit = True
|
||||||
|
self.builder.get_object("edit_file_menu").hide()
|
@ -4,4 +4,5 @@
|
|||||||
from .mixins import *
|
from .mixins import *
|
||||||
from .DBusControllerMixin import DBusControllerMixin
|
from .DBusControllerMixin import DBusControllerMixin
|
||||||
from .KeyboardSignalsMixin import KeyboardSignalsMixin
|
from .KeyboardSignalsMixin import KeyboardSignalsMixin
|
||||||
from .Signals import Signals
|
from .ShowHideMixin import ShowHideMixin
|
||||||
|
from .Controller import Controller
|
||||||
|
@ -105,6 +105,15 @@ class TabMixin(WidgetMixin):
|
|||||||
def get_tab_iconview_from_notebook(self, notebook):
|
def get_tab_iconview_from_notebook(self, notebook):
|
||||||
return notebook.get_children()[1].get_children()[0]
|
return notebook.get_children()[1].get_children()[0]
|
||||||
|
|
||||||
|
def refresh_tab(data=None):
|
||||||
|
self, ids = data
|
||||||
|
wid, tid = ids.split("|")
|
||||||
|
notebook = self.builder.get_object(f"window_{wid}")
|
||||||
|
store, tab_label = self.get_store_and_label_from_notebook(notebook, f"{wid}|{tid}")
|
||||||
|
view = self.get_fm_window(wid).get_view_by_id(tid)
|
||||||
|
|
||||||
|
view.load_directory()
|
||||||
|
self.load_store(view, store)
|
||||||
|
|
||||||
def do_action_from_bar_controls(self, widget, eve=None):
|
def do_action_from_bar_controls(self, widget, eve=None):
|
||||||
action = widget.get_name()
|
action = widget.get_name()
|
||||||
|
Loading…
Reference in New Issue
Block a user