Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

import reorganization #191

Merged
merged 10 commits into from
Jun 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
# uses: cclauss/GitHub-Action-for-pylint@8ef4d22e119fb1cdc0f58f2e95cb1f8d8b0d55e6
uses: cclauss/[email protected]
with:
args: '"pylint src/ --disable=import-error --disable=no-self-use --disable=no-else-return --disable=too-many-public-methods --disable=too-many-instance-attributes --disable=duplicate-code --disable=useless-object-inheritance --disable=too-few-public-methods"'
args: '"pylint src/ --disable=import-error --disable=no-self-use --disable=no-else-return --disable=too-many-public-methods --disable=too-many-instance-attributes --disable=duplicate-code --disable=useless-object-inheritance --disable=too-few-public-methods" --disable=missing-module-docstring'

pytest:

Expand Down
3 changes: 1 addition & 2 deletions src/gscreenshot/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,7 @@
from PIL import Image
from gscreenshot.compat import get_resource_file, get_resource_string, get_version
from gscreenshot.screenshot import ScreenshotCollection
from gscreenshot.screenshooter import Screenshooter
from gscreenshot.screenshooter.factory import ScreenshooterFactory
from gscreenshot.screenshooter import Screenshooter, ScreenshooterFactory
from gscreenshot.util import session_is_wayland

_ = gettext.gettext
Expand Down
2 changes: 1 addition & 1 deletion src/gscreenshot/frontend/gtk/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
from gscreenshot.frontend.gtk.dialogs import FileSaveDialog, FileOpenDialog
from gscreenshot.frontend.gtk.view import View
from gscreenshot.screenshooter.exceptions import NoSupportedScreenshooterError
from gscreenshot.screenshot.effects.crop import CropEffect
from gscreenshot.screenshot.effects import CropEffect

pygtkcompat.enable()
pygtkcompat.enable_gtk(version='3.0')
Expand Down
157 changes: 0 additions & 157 deletions src/gscreenshot/frontend/gtk/dialogs.py

This file was deleted.

12 changes: 12 additions & 0 deletions src/gscreenshot/frontend/gtk/dialogs/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
from .file_open_dialog import FileOpenDialog
from .file_save_dialog import FileSaveDialog
from .open_with_dialog import OpenWithDialog
from .warning_dialog import WarningDialog


__all__ = [
"FileOpenDialog",
"FileSaveDialog",
"OpenWithDialog",
"WarningDialog",
]
62 changes: 62 additions & 0 deletions src/gscreenshot/frontend/gtk/dialogs/file_open_dialog.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
#pylint: disable=wrong-import-order
#pylint: disable=wrong-import-position
#pylint: disable=ungrouped-imports
'''
Dialog boxes for the GTK frontend to gscreenshot
'''
import gettext
import pygtkcompat

pygtkcompat.enable()
pygtkcompat.enable_gtk(version='3.0')
from gi.repository import Gtk

i18n = gettext.gettext


class FileOpenDialog(object):
'''The 'open a file' dialog'''
#pylint: disable=too-many-arguments
def __init__(self, default_filename=None, default_folder=None,
parent=None, choose_directory=False, file_filter=None,
):
self.default_filename = default_filename
self.default_folder = default_folder
self.parent = parent
self._choose_directory = choose_directory
self._filter = file_filter

def run(self):
''' Run the dialog'''
filename = self.request_file()

return filename

def request_file(self):
'''Run the file selection dialog'''
action = Gtk.FILE_CHOOSER_ACTION_OPEN

chooser = Gtk.FileChooserNative(
transient_for=self.parent,
title=None,
action=action,
filter=self._filter,
)

if self.default_filename is not None:
chooser.set_current_name(self.default_filename)

if self.default_folder is not None:
chooser.set_current_folder(self.default_folder)

chooser.set_do_overwrite_confirmation(True)

response = chooser.run()

if response in [Gtk.RESPONSE_OK, Gtk.ResponseType.ACCEPT]:
return_value = chooser.get_filename()
else:
return_value = None

chooser.destroy()
return return_value
67 changes: 67 additions & 0 deletions src/gscreenshot/frontend/gtk/dialogs/file_save_dialog.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
#pylint: disable=wrong-import-order
#pylint: disable=wrong-import-position
#pylint: disable=ungrouped-imports
'''
Dialog boxes for the GTK frontend to gscreenshot
'''
import gettext
import pygtkcompat

pygtkcompat.enable()
pygtkcompat.enable_gtk(version='3.0')
from gi.repository import Gtk

i18n = gettext.gettext


class FileSaveDialog(object):
'''The 'save as' dialog'''
def __init__(self, default_filename=None, default_folder=None,
parent=None, choose_directory=False
):
self.default_filename = default_filename
self.default_folder = default_folder
self.parent = parent
self._choose_directory = choose_directory

def run(self):
''' Run the dialog'''
filename = self.request_file()

return filename

def request_file(self):
'''Run the file selection dialog'''
action = Gtk.FILE_CHOOSER_ACTION_SAVE
if self._choose_directory:
action = Gtk.FILE_CHOOSER_ACTION_CREATE_FOLDER

chooser = Gtk.FileChooserDialog(
transient_for=self.parent,
title=None,
action=action,
buttons=(
Gtk.STOCK_CANCEL,
Gtk.RESPONSE_CANCEL,
Gtk.STOCK_SAVE,
Gtk.RESPONSE_OK
)
)

if self.default_filename is not None:
chooser.set_current_name(self.default_filename)

if self.default_folder is not None:
chooser.set_current_folder(self.default_folder)

chooser.set_do_overwrite_confirmation(True)

response = chooser.run()

if response == Gtk.RESPONSE_OK:
return_value = chooser.get_filename()
else:
return_value = None

chooser.destroy()
return return_value
31 changes: 31 additions & 0 deletions src/gscreenshot/frontend/gtk/dialogs/open_with_dialog.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#pylint: disable=wrong-import-order
#pylint: disable=wrong-import-position
#pylint: disable=ungrouped-imports
'''
Dialog boxes for the GTK frontend to gscreenshot
'''
import gettext
import pygtkcompat

pygtkcompat.enable()
pygtkcompat.enable_gtk(version='3.0')
from gi.repository import Gtk

i18n = gettext.gettext


class OpenWithDialog(Gtk.AppChooserDialog):
'''The "Open With" dialog'''

def __init__(self, parent=None):

Gtk.AppChooserDialog.__init__(self, content_type="image/png", parent=parent)
self.set_title(i18n("Choose an Application"))
self.connect("response", self._on_response)
self.appinfo = None

def _on_response(self, _, response):
if response == Gtk.ResponseType.OK:
self.appinfo = self.get_app_info()
else:
self.appinfo = None
Loading
Loading