refactor: remove thin layer for Gtk.AboutDialog
This commit is contained in:
parent
d4f2032972
commit
f8f0b0618c
|
@ -21,6 +21,7 @@ from gettext import gettext as _
|
||||||
from typing import Final
|
from typing import Final
|
||||||
|
|
||||||
APP_NAME: Final[str] = 'Diffuse'
|
APP_NAME: Final[str] = 'Diffuse'
|
||||||
|
APP_ID: Final[str] = 'io.github.mightycreak.Diffuse'
|
||||||
COPYRIGHT: Final[str] = '''{copyright} © 2006-2019 Derrick Moser
|
COPYRIGHT: Final[str] = '''{copyright} © 2006-2019 Derrick Moser
|
||||||
{copyright} © 2015-2023 Romain Failliot'''.format(copyright=_("Copyright"))
|
{copyright} © 2015-2023 Romain Failliot'''.format(copyright=_("Copyright"))
|
||||||
WEBSITE: Final[str] = 'https://mightycreak.github.io/diffuse/'
|
WEBSITE: Final[str] = 'https://mightycreak.github.io/diffuse/'
|
||||||
|
|
|
@ -22,7 +22,6 @@ import os
|
||||||
from gettext import gettext as _
|
from gettext import gettext as _
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from diffuse import constants
|
|
||||||
from diffuse import utils
|
from diffuse import utils
|
||||||
|
|
||||||
import gi # type: ignore
|
import gi # type: ignore
|
||||||
|
@ -31,39 +30,6 @@ gi.require_version('Gtk', '3.0')
|
||||||
from gi.repository import GObject, Gtk # type: ignore # noqa: E402
|
from gi.repository import GObject, Gtk # type: ignore # noqa: E402
|
||||||
|
|
||||||
|
|
||||||
# the about dialog
|
|
||||||
class AboutDialog(Gtk.AboutDialog):
|
|
||||||
def __init__(self, parent: Gtk.Widget) -> None:
|
|
||||||
Gtk.AboutDialog.__init__(self)
|
|
||||||
self.set_transient_for(parent)
|
|
||||||
self.set_logo_icon_name('io.github.mightycreak.Diffuse')
|
|
||||||
self.set_program_name(constants.APP_NAME)
|
|
||||||
self.set_version(constants.VERSION)
|
|
||||||
self.set_comments(_('Diffuse is a graphical tool for merging and comparing text files.'))
|
|
||||||
self.set_copyright(constants.COPYRIGHT)
|
|
||||||
self.set_website(constants.WEBSITE)
|
|
||||||
self.set_authors(['Derrick Moser <derrick_moser@yahoo.com>',
|
|
||||||
'Romain Failliot <romain.failliot@foolstep.com>'])
|
|
||||||
self.set_translator_credits(_('translator-credits'))
|
|
||||||
license_text = [
|
|
||||||
constants.APP_NAME + ' ' + constants.VERSION + '\n\n',
|
|
||||||
constants.COPYRIGHT + '\n\n',
|
|
||||||
'''This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.''']
|
|
||||||
self.set_license(''.join(license_text))
|
|
||||||
|
|
||||||
|
|
||||||
# custom dialogue for picking files with widgets for specifying the encoding
|
# custom dialogue for picking files with widgets for specifying the encoding
|
||||||
# and revision
|
# and revision
|
||||||
class FileChooserDialog(Gtk.FileChooserDialog):
|
class FileChooserDialog(Gtk.FileChooserDialog):
|
||||||
|
|
|
@ -37,7 +37,7 @@ class DiffuseApplication(Gtk.Application):
|
||||||
|
|
||||||
def __init__(self, sysconfigdir):
|
def __init__(self, sysconfigdir):
|
||||||
super().__init__(
|
super().__init__(
|
||||||
application_id='io.github.mightycreak.Diffuse',
|
application_id=constants.APP_ID,
|
||||||
flags=Gio.ApplicationFlags.HANDLES_COMMAND_LINE | Gio.ApplicationFlags.NON_UNIQUE)
|
flags=Gio.ApplicationFlags.HANDLES_COMMAND_LINE | Gio.ApplicationFlags.NON_UNIQUE)
|
||||||
|
|
||||||
self.window = None
|
self.window = None
|
||||||
|
|
|
@ -28,7 +28,7 @@ from typing import List, Optional
|
||||||
from urllib.parse import urlparse
|
from urllib.parse import urlparse
|
||||||
|
|
||||||
from diffuse import constants, utils
|
from diffuse import constants, utils
|
||||||
from diffuse.dialogs import AboutDialog, FileChooserDialog, NumericDialog, SearchDialog
|
from diffuse.dialogs import FileChooserDialog, NumericDialog, SearchDialog
|
||||||
from diffuse.preferences import Preferences
|
from diffuse.preferences import Preferences
|
||||||
from diffuse.resources import theResources
|
from diffuse.resources import theResources
|
||||||
from diffuse.utils import LineEnding
|
from diffuse.utils import LineEnding
|
||||||
|
@ -1733,9 +1733,41 @@ class DiffuseWindow(Gtk.ApplicationWindow):
|
||||||
|
|
||||||
# callback for the about menu item
|
# callback for the about menu item
|
||||||
def about_cb(self, widget, data):
|
def about_cb(self, widget, data):
|
||||||
dialog = AboutDialog(self.get_toplevel())
|
authors = [
|
||||||
dialog.run()
|
'Derrick Moser <derrick_moser@yahoo.com>',
|
||||||
dialog.destroy()
|
'Romain Failliot <romain.failliot@foolstep.com>'
|
||||||
|
]
|
||||||
|
license = f'''{constants.APP_NAME} {constants.VERSION}
|
||||||
|
|
||||||
|
{constants.COPYRIGHT}
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License along
|
||||||
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.'''
|
||||||
|
|
||||||
|
dialog = Gtk.AboutDialog(
|
||||||
|
transient_for=self.get_toplevel(),
|
||||||
|
modal=True,
|
||||||
|
program_name=constants.APP_NAME,
|
||||||
|
logo_icon_name=constants.APP_ID,
|
||||||
|
version=constants.VERSION,
|
||||||
|
comments=_('Diffuse is a graphical tool for merging and comparing text files.'),
|
||||||
|
copyright=constants.COPYRIGHT,
|
||||||
|
website=constants.WEBSITE,
|
||||||
|
authors=authors,
|
||||||
|
translator_credits=_('translator-credits'),
|
||||||
|
license=license)
|
||||||
|
dialog.present()
|
||||||
|
|
||||||
|
|
||||||
def _append_buttons(box, size, specs):
|
def _append_buttons(box, size, specs):
|
||||||
|
|
Loading…
Reference in New Issue