2021-11-28 00:54:33 +00:00
|
|
|
# Python imports
|
|
|
|
|
|
|
|
# Gtk imports
|
|
|
|
import gi
|
|
|
|
gi.require_version('Gtk', '3.0')
|
2021-12-02 06:03:11 +00:00
|
|
|
gi.require_version('Gdk', '3.0')
|
|
|
|
from gi.repository import Gtk, Gdk, Gio
|
2021-11-28 00:54:33 +00:00
|
|
|
|
|
|
|
# Application imports
|
|
|
|
|
|
|
|
|
|
|
|
class ShowHideMixin:
|
2021-11-28 06:40:47 +00:00
|
|
|
def show_messages_popup(self, type, text, seconds=None):
|
|
|
|
self.message_widget.popup()
|
|
|
|
|
2021-12-07 07:48:52 +00:00
|
|
|
def stop_file_searching(self, widget=None, eve=None):
|
|
|
|
self.is_searching = False
|
|
|
|
|
2021-11-29 22:49:56 +00:00
|
|
|
|
|
|
|
def show_exists_page(self, widget=None, eve=None):
|
2021-12-06 03:18:39 +00:00
|
|
|
response = self.file_exists_dialog.run()
|
|
|
|
self.file_exists_dialog.hide()
|
2021-11-29 22:49:56 +00:00
|
|
|
|
2021-12-06 03:18:39 +00:00
|
|
|
if response == Gtk.ResponseType.OK:
|
|
|
|
return "rename"
|
|
|
|
if response == Gtk.ResponseType.ACCEPT:
|
|
|
|
return "rename_auto"
|
|
|
|
if response == Gtk.ResponseType.CLOSE:
|
|
|
|
return "rename_auto_all"
|
|
|
|
if response == Gtk.ResponseType.YES:
|
|
|
|
return "overwrite"
|
|
|
|
if response == Gtk.ResponseType.APPLY:
|
|
|
|
return "overwrite_all"
|
|
|
|
if response == Gtk.ResponseType.NO:
|
|
|
|
return "skip"
|
|
|
|
if response == Gtk.ResponseType.REJECT:
|
|
|
|
return "skip_all"
|
|
|
|
|
|
|
|
def hide_exists_page_rename(self, widget=None, eve=None):
|
|
|
|
self.file_exists_dialog.response(Gtk.ResponseType.OK)
|
|
|
|
|
|
|
|
def hide_exists_page_auto_rename(self, widget=None, eve=None):
|
|
|
|
self.file_exists_dialog.response(Gtk.ResponseType.ACCEPT)
|
|
|
|
|
|
|
|
def hide_exists_page_auto_rename_all(self, widget=None, eve=None):
|
|
|
|
self.file_exists_dialog.response(Gtk.ResponseType.CLOSE)
|
2021-11-29 22:49:56 +00:00
|
|
|
|
|
|
|
|
2021-11-28 06:40:47 +00:00
|
|
|
def show_about_page(self, widget=None, eve=None):
|
2021-11-28 00:54:33 +00:00
|
|
|
about_page = self.builder.get_object("about_page")
|
|
|
|
response = about_page.run()
|
2021-11-29 02:27:49 +00:00
|
|
|
if (response == Gtk.ResponseType.CANCEL) or (response == Gtk.ResponseType.DELETE_EVENT):
|
2021-11-28 00:54:33 +00:00
|
|
|
self.hide_about_page()
|
|
|
|
|
|
|
|
def hide_about_page(self, widget=None, eve=None):
|
2021-11-29 08:01:51 +00:00
|
|
|
self.builder.get_object("about_page").hide()
|
|
|
|
|
2021-12-06 03:18:39 +00:00
|
|
|
|
2021-11-29 08:01:51 +00:00
|
|
|
def show_archiver_dialogue(self, widget=None, eve=None):
|
2021-11-29 23:11:37 +00:00
|
|
|
wid, tid = self.window_controller.get_active_data()
|
|
|
|
view = self.get_fm_window(wid).get_view_by_id(tid)
|
2021-11-29 08:01:51 +00:00
|
|
|
archiver_dialogue = self.builder.get_object("archiver_dialogue")
|
|
|
|
archiver_dialogue.set_action(Gtk.FileChooserAction.SAVE)
|
2021-11-29 23:11:37 +00:00
|
|
|
archiver_dialogue.set_current_folder(view.get_current_directory())
|
2021-11-29 08:01:51 +00:00
|
|
|
archiver_dialogue.set_current_name("arc.7z")
|
|
|
|
|
|
|
|
response = archiver_dialogue.run()
|
|
|
|
if response == Gtk.ResponseType.OK:
|
|
|
|
self.archive_files(archiver_dialogue)
|
|
|
|
if (response == Gtk.ResponseType.CANCEL) or (response == Gtk.ResponseType.DELETE_EVENT):
|
|
|
|
pass
|
|
|
|
|
|
|
|
archiver_dialogue.hide()
|
|
|
|
|
|
|
|
def hide_archiver_dialogue(self, widget=None, eve=None):
|
|
|
|
self.builder.get_object("archiver_dialogue").hide()
|
2021-11-28 00:54:33 +00:00
|
|
|
|
2021-12-06 03:18:39 +00:00
|
|
|
|
2021-11-28 00:54:33 +00:00
|
|
|
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")
|
2021-11-29 08:01:51 +00:00
|
|
|
response = appchooser_menu.run()
|
2021-11-28 00:54:33 +00:00
|
|
|
|
2021-11-29 08:01:51 +00:00
|
|
|
if response == Gtk.ResponseType.CANCEL:
|
2021-11-28 00:54:33 +00:00
|
|
|
self.hide_appchooser_menu()
|
2021-11-29 08:01:51 +00:00
|
|
|
if response == Gtk.ResponseType.OK:
|
2021-11-28 00:54:33 +00:00
|
|
|
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):
|
2021-12-02 06:03:11 +00:00
|
|
|
dialog = widget.get_parent().get_parent()
|
|
|
|
dialog.response(Gtk.ResponseType.OK)
|
2021-11-28 00:54:33 +00:00
|
|
|
|
2021-12-06 03:18:39 +00:00
|
|
|
|
2021-11-28 00:54:33 +00:00
|
|
|
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()
|
|
|
|
|
2021-12-06 03:18:39 +00:00
|
|
|
|
2021-11-28 00:54:33 +00:00
|
|
|
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()
|
|
|
|
|
2021-12-06 03:18:39 +00:00
|
|
|
|
2021-11-28 00:54:33 +00:00
|
|
|
def show_edit_file_menu(self, widget=None, eve=None):
|
2021-12-06 03:18:39 +00:00
|
|
|
response = self.edit_file_menu.run()
|
|
|
|
if response == Gtk.ResponseType.CLOSE:
|
|
|
|
self.skip_edit = True
|
|
|
|
if response == Gtk.ResponseType.CANCEL:
|
|
|
|
self.cancel_edit = True
|
2021-11-28 00:54:33 +00:00
|
|
|
|
|
|
|
def hide_edit_file_menu(self, widget=None, eve=None):
|
2021-12-06 03:18:39 +00:00
|
|
|
self.builder.get_object("edit_file_menu").hide()
|
2021-12-02 06:03:11 +00:00
|
|
|
|
2021-12-06 03:18:39 +00:00
|
|
|
def hide_edit_file_menu_enter_key(self, widget=None, eve=None):
|
|
|
|
keyname = Gdk.keyval_name(eve.keyval).lower()
|
|
|
|
if "return" in keyname or "enter" in keyname:
|
|
|
|
self.builder.get_object("edit_file_menu").hide()
|
2021-11-28 00:54:33 +00:00
|
|
|
|
|
|
|
def hide_edit_file_menu_skip(self, widget=None, eve=None):
|
2021-12-06 03:18:39 +00:00
|
|
|
self.edit_file_menu.response(Gtk.ResponseType.CLOSE)
|
2021-11-28 00:54:33 +00:00
|
|
|
|
|
|
|
def hide_edit_file_menu_cancel(self, widget=None, eve=None):
|
2021-12-06 03:18:39 +00:00
|
|
|
self.edit_file_menu.response(Gtk.ResponseType.CANCEL)
|