def main(argv=None): if argv: sys.argv = argv # let PyQt handle its options (need at least one argument after options) sys.argv.append('xxx') app = QtWidgets.QApplication(sys.argv) del sys.argv[-1] # install translation if qt_version_info < (5, 0): QtCore.QTextCodec.setCodecForTr( QtCore.QTextCodec.codecForName('utf-8')) locale = QtCore.QLocale.system() translator = QtCore.QTranslator(parent=app) translator.load(locale, 'photini', '.', pkg_resources.resource_filename('photini', 'data/lang'), '.qm') app.installTranslator(translator) qt_translator = QtCore.QTranslator(parent=app) qt_translator.load( locale, 'qt', '_', QtCore.QLibraryInfo.location(QtCore.QLibraryInfo.TranslationsPath)) app.installTranslator(qt_translator) # parse remaining arguments version = 'Photini ' + __version__ + ', build ' + build version += '\n Python ' + sys.version version += '\n ' + gexiv2_version version += '\n PyQt {}, Qt {}'.format(QtCore.PYQT_VERSION_STR, QtCore.QT_VERSION_STR) if QtWebEngineWidgets: version += ', using QtWebEngineWidgets' if enchant_version: version += '\n ' + enchant_version if FlickrUploader: from photini.flickr import flickr_version version += '\n ' + flickr_version parser = OptionParser(usage=six.text_type( QtCore.QCoreApplication.translate( 'main', 'Usage: %prog [options] [file_name, ...]')), version=version, description=six.text_type( QtCore.QCoreApplication.translate( 'main', 'Photini photo metadata editor'))) parser.add_option('-t', '--test', action='store_true', help=six.text_type( QtCore.QCoreApplication.translate( 'main', 'test new features or API versions'))) parser.add_option('-v', '--verbose', action='count', default=0, help=six.text_type( QtCore.QCoreApplication.translate( 'main', 'increase number of logging messages'))) options, args = parser.parse_args() # create GUI and run application event loop main = MainWindow(options, args) main.show() return app.exec_()
def main(argv=None): if argv: sys.argv = argv # let PyQt handle its options (need at least one argument after options) sys.argv.append('xxx') app = QtWidgets.QApplication(sys.argv) del sys.argv[-1] # install translations if qt_version_info < (5, 0): QtCore.QTextCodec.setCodecForTr( QtCore.QTextCodec.codecForName('utf-8')) # English translation as a fallback (to get correct plurals) lang_dir = pkg_resources.resource_filename('photini', 'data/lang') translator = QtCore.QTranslator(parent=app) if translator.load('photini.en', lang_dir): app.installTranslator(translator) translator = QtCore.QTranslator(parent=app) # localised translation, if it exists locale = QtCore.QLocale.system() if translator.load(locale, 'photini', '.', lang_dir): app.installTranslator(translator) translator = QtCore.QTranslator(parent=app) # Qt's own translation, e.g. for 'apply' or 'cancel' buttons if qt_version_info < (5, 0): if translator.load( locale, 'qt', '_', QtCore.QLibraryInfo.location( QtCore.QLibraryInfo.TranslationsPath)): app.installTranslator(translator) # parse remaining arguments version = 'Photini ' + __version__ + ', build ' + build version += '\n Python ' + sys.version version += '\n ' + gi_version version += '\n PyQt {}, Qt {}, using {}'.format( QtCore.PYQT_VERSION_STR, QtCore.QT_VERSION_STR, ('QtWebKit', 'QtWebEngine')[using_qtwebengine]) if spelling_version: version += '\n ' + spelling_version if FlickrUploader: from photini.flickr import flickr_version version += '\n ' + flickr_version version += '\n available styles: {}'.format(', '.join( QtWidgets.QStyleFactory.keys())) version += '\n using style: {}'.format( QtWidgets.QApplication.style().objectName()) parser = OptionParser(usage=six.text_type( QtCore.QCoreApplication.translate( 'main', 'Usage: %prog [options] [file_name, ...]')), version=version, description=six.text_type( QtCore.QCoreApplication.translate( 'main', 'Photini photo metadata editor'))) parser.add_option('-t', '--test', action='store_true', help=six.text_type( QtCore.QCoreApplication.translate( 'main', 'test new features or API versions'))) parser.add_option('-v', '--verbose', action='count', default=0, help=six.text_type( QtCore.QCoreApplication.translate( 'main', 'increase number of logging messages'))) options, args = parser.parse_args() # create GUI and run application event loop main = MainWindow(options, args) main.show() return app.exec_()
def main(argv=None): global app if argv: sys.argv = argv if qt_version_info >= (5, 6) and qt_version_info < (6, 0): QtWidgets.QApplication.setAttribute(Qt.AA_EnableHighDpiScaling, True) if qt_version_info >= (5, 0): QtWidgets.QApplication.setAttribute(Qt.AA_UseHighDpiPixmaps, True) # let Qt handle its options app = QtWidgets.QApplication(sys.argv) # get remaining argument list after Qt has swallowed its options sys.argv = app.arguments() # install translations # English translation as a fallback (to get correct plurals) lang_dir = pkg_resources.resource_filename('photini', 'data/lang') translator = QtCore.QTranslator(parent=app) if translator.load('photini.en', lang_dir): app.installTranslator(translator) translator = QtCore.QTranslator(parent=app) # localised translation, if it exists locale = QtCore.QLocale.system() if translator.load(locale, 'photini', '.', lang_dir): app.installTranslator(translator) translator = QtCore.QTranslator(parent=app) # parse remaining arguments version = 'Photini ' + __version__ + ', build ' + build version += '\n Python ' + sys.version version += '\n ' + exiv2_version version += '\n ' + qt_version if spelling_version: version += '\n ' + spelling_version if ffmpeg_version: version += '\n ' + ffmpeg_version version += '\n available styles: {}'.format(', '.join( QtWidgets.QStyleFactory.keys())) version += '\n using style: {}'.format( QtWidgets.QApplication.style().objectName()) parser = OptionParser( usage=translate('CLIHelp', 'Usage: %prog [options] [file_name, ...]'), version=version, description=translate('CLIHelp', 'Photini photo metadata editor')) parser.add_option('-t', '--test', action='store_true', help=translate('CLIHelp', 'test new features or API versions')) parser.add_option('-u', '--utf_safe', action='store_true', help=translate( 'CLIHelp', 'metadata is known to be ASCII or utf-8 encoded')) parser.add_option('-v', '--verbose', action='count', default=0, help=translate('CLIHelp', 'increase number of logging messages')) options, args = parser.parse_args() # if an instance of Photini is already running, send it the list of # files to open if SendToInstance(args): return 0 # ensure warnings are visible in test mode if options.test: warnings.simplefilter('default') # create GUI and run application event loop main = MainWindow(options, args) main.show() if qt_version_info >= (6, 0): return app.exec() else: return app.exec_()