Staging
v0.5.0
https://foss.heptapod.net/mercurial/hgview
Raw File
Tip revision: 1850a087c1b6cb026470c738b2c7f82c6fada06d authored by Mads Kiilerich on 04 April 2020, 02:27:44 UTC
qt5: renaming of references to hgviewlib/qt5, finishing up the Qt5 port
Tip revision: 1850a08
application.py
# -*- coding: utf-8 -*-
# Copyright (c) 2003-2012 LOGILAB S.A. (Paris, FRANCE).
# http://www.logilab.fr/ -- mailto:contact@logilab.fr
#
# 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, see <http://www.gnu.org/licenses/>.

"""
Application utilities.
"""

import sys

from .hgrepoviewer import HgRepoViewer, ManifestViewer
from .hgfiledialog import FileViewer, FileDiffViewer
from hgviewlib.application import HgViewApplication
from PyQt5 import QtGui, QtCore, QtWidgets


stylesheet = """
QToolTip {
    color: black;
}
"""


class HgViewQtApplication(HgViewApplication):
    """
    HgView application using Qt.
    """
    FileViewer = FileViewer
    FileDiffViewer = FileDiffViewer
    HgRepoViewer = HgRepoViewer
    ManifestViewer = ManifestViewer

    def __init__(self, *args, **kwargs):
        # Initiate the application settings.
        # This allows to use the default QSettings constructor.
        QtCore.QCoreApplication.setOrganizationName("logilab")
        QtCore.QCoreApplication.setOrganizationDomain("logilab.org")
        QtCore.QCoreApplication.setApplicationName("hgview")
        # This import is critical for qt initialization (at least on Mac os X)
        import hgviewlib.qt5.hgqv_rc
        # make Ctrl+C works
        import signal
        signal.signal(signal.SIGINT, signal.SIG_DFL)

        app = QtWidgets.QApplication(sys.argv)

        QtWidgets.qApp.setStyleSheet(stylesheet)
        from hgviewlib.qt5 import setup_font_substitutions
        setup_font_substitutions()

        super(HgViewQtApplication, self).__init__(*args, **kwargs)

        self.app = app

    def exec_(self):
        self.viewer.show()  #pylint: disable=E1103
        if '--profile' in sys.argv or '--time' in sys.argv:
            return 0
        return self.app.exec_()



back to top