diff --git a/src/versions/solarfm-0.0.1/SolarFM/solarfm/__main__.py b/src/versions/solarfm-0.0.1/SolarFM/solarfm/__main__.py index 22b79dd..2dfcfe2 100644 --- a/src/versions/solarfm-0.0.1/SolarFM/solarfm/__main__.py +++ b/src/versions/solarfm-0.0.1/SolarFM/solarfm/__main__.py @@ -22,16 +22,13 @@ if __name__ == "__main__": """ Set process title, get arguments, and create GTK main thread. """ try: - # import web_pdb - # web_pdb.set_trace() - setproctitle('SolarFM') faulthandler.enable() # For better debug info + parser = argparse.ArgumentParser() # Add long and short arguments parser.add_argument("--new-tab", "-t", default="", help="Open a file into new tab.") parser.add_argument("--new-window", "-w", default="", help="Open a file into a new window.") - # Read arguments (If any...) args, unknownargs = parser.parse_known_args() 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 d476cbf..e844325 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 @@ -155,7 +155,7 @@ class Controller(UIMixin, KeyboardSignalsMixin, IPCSignalsMixin, ExceptionHookMi if action == "empty_trash": self.empty_trash() if action == "create": - self.show_new_file_menu() + self.create_files() if action in ["save_session", "save_session_as", "load_session"]: self.save_load_session(action) diff --git a/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/controller_data.py b/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/controller_data.py index 4a5e5f8..6b1a578 100644 --- a/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/controller_data.py +++ b/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/controller_data.py @@ -52,6 +52,7 @@ class Controller_Data: self.exists_file_rename_bttn = self.builder.get_object("exists_file_rename_bttn") self.warning_alert = self.builder.get_object("warning_alert") + self.new_file_menu = self.builder.get_object("new_file_menu") self.edit_file_menu = self.builder.get_object("edit_file_menu") self.file_exists_dialog = self.builder.get_object("file_exists_dialog") self.exists_file_label = self.builder.get_object("exists_file_label") @@ -110,6 +111,7 @@ class Controller_Data: self.search_icon_grid = None self.search_tab = None + self.cancel_creation = False self.skip_edit = False self.cancel_edit = False self.ctrl_down = False diff --git a/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/mixins/show_hide_mixin.py b/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/mixins/show_hide_mixin.py index cf77ba0..331c6ef 100644 --- a/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/mixins/show_hide_mixin.py +++ b/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/mixins/show_hide_mixin.py @@ -108,22 +108,23 @@ class ShowHideMixin: def hide_context_menu(self, widget=None, eve=None): self.builder.get_object("context_menu_popup").hide() - def show_new_file_menu(self, widget=None, eve=None): - context_menu_fname = self.builder.get_object("context_menu_fname") - context_menu_fname.set_text("") - context_menu_fname.grab_focus() + if widget: + widget.set_text("") + widget.grab_focus() - new_file_menu = self.builder.get_object("new_file_menu") - response = new_file_menu.run() - if response == Gtk.ResponseType.APPLY: - self.create_files() + response = self.new_file_menu.run() if response == Gtk.ResponseType.CANCEL: - self.hide_new_file_menu() + self.cancel_creation = True def hide_new_file_menu(self, widget=None, eve=None): self.builder.get_object("new_file_menu").hide() + def hide_new_file_menu_enter_key(self, widget=None, eve=None): + keyname = Gdk.keyval_name(eve.keyval).lower() + if keyname in ["return", "enter"]: + self.builder.get_object("new_file_menu").hide() + def show_edit_file_menu(self, widget=None, eve=None): if widget: widget.grab_focus() 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 71a3cc3..9072990 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 @@ -248,7 +248,13 @@ class WidgetFileActionMixin: def create_files(self): - fname_field = self.builder.get_object("context_menu_fname") + fname_field = self.builder.get_object("new_fname_field") + self.show_new_file_menu(fname_field) + + if self.cancel_creation: + self.cancel_creation = False + return + file_name = fname_field.get_text().strip() type = self.builder.get_object("context_menu_type_toggle").get_state() @@ -264,11 +270,14 @@ class WidgetFileActionMixin: else: # Create Folder self.handle_files([path], "create_dir") + self.cancel_creation = False self.hide_new_file_menu() + def move_files(self, files, target): self.handle_files(files, "move", target) + # NOTE: Gtk recommends using fail flow than pre check which is more # race condition proof. They're right; but, they can't even delete # directories properly. So... f**k them. I'll do it my way.