SolarFM/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/mixins/show_hide_mixin.py

127 lines
4.3 KiB
Python

# Python imports
# Gtk imports
import gi
gi.require_version('Gtk', '3.0')
gi.require_version('Gdk', '3.0')
from gi.repository import Gtk
from gi.repository import Gdk
# Application imports
class ShowHideMixin:
def show_messages_popup(self, type, text, seconds=None):
self.message_popup_widget.popup()
def stop_file_searching(self, widget=None, eve=None):
self.is_searching = False
def show_exists_page(self, widget=None, eve=None):
response = self.file_exists_dialog.run()
self.file_exists_dialog.hide()
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)
def show_about_page(self, widget=None, eve=None):
about_page = self.builder.get_object("about_page")
response = about_page.run()
if response in [Gtk.ResponseType.CANCEL, Gtk.ResponseType.DELETE_EVENT]:
self.hide_about_page()
def hide_about_page(self, widget=None, eve=None):
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")
response = appchooser_menu.run()
if response == Gtk.ResponseType.OK:
self.open_with_files(appchooser_widget)
self.hide_appchooser_menu()
if response == Gtk.ResponseType.CANCEL:
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):
dialog = widget.get_parent().get_parent()
dialog.response(Gtk.ResponseType.OK)
def show_plugins_popup(self, widget=None, eve=None):
self.builder.get_object("plugin_controls").popup()
def hide_plugins_popup(self, widget=None, eve=None):
self.builder.get_object("plugin_controls").hide()
def show_context_menu(self, widget=None, eve=None):
self.builder.get_object("context_menu").popup_at_pointer(None)
def hide_context_menu(self, widget=None, eve=None):
self.builder.get_object("context_menu").popdown()
def show_new_file_menu(self, widget=None, eve=None):
if widget:
widget.set_text("")
widget.grab_focus()
response = self.new_file_menu.run()
if response == Gtk.ResponseType.CANCEL:
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()
response = self.edit_file_menu.run()
if response == Gtk.ResponseType.CLOSE:
self.skip_edit = True
if response == Gtk.ResponseType.CANCEL:
self.cancel_edit = True
def show_io_popup(self, widget=None, eve=None):
self.builder.get_object("io_popup").popup()
def hide_edit_file_menu_skip(self, widget=None, eve=None):
self.edit_file_menu.response(Gtk.ResponseType.CLOSE)
def hide_edit_file_menu_cancel(self, widget=None, eve=None):
self.edit_file_menu.response(Gtk.ResponseType.CANCEL)