33 from uuid
import uuid4
35 from PyQt5.QtGui import QPalette, QColor, QFontDatabase, QFont
38 from PyQt5.Qt
import PYQT_VERSION_STR
40 from classes.logger
import log
41 from classes
import info, settings, project_data, updates, language, ui_util, logger_libopenshot
47 QApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
48 except AttributeError:
55 return QApplication.instance()
63 QApplication.__init__(self, *args)
67 v = openshot.GetVersion()
68 log.info(
"openshot-qt version: %s" % info.VERSION)
69 log.info(
"libopenshot version: %s" % v.ToString())
70 log.info(
"platform: %s" % platform.platform())
71 log.info(
"processor: %s" % platform.processor())
72 log.info(
"machine: %s" % platform.machine())
73 log.info(
"python version: %s" % platform.python_version())
74 log.info(
"qt5 version: %s" % QT_VERSION_STR)
75 log.info(
"pyqt5 version: %s" % PYQT_VERSION_STR)
80 self.setApplicationName(
'openshot')
81 self.setApplicationVersion(info.SETUP[
'version'])
87 except Exception
as ex:
88 log.error(
"Couldn't load user settings. Exiting.\n{}".
format(ex))
101 self.updates.add_listener(self.
project)
108 self.logger_libopenshot.start()
114 if not self.settings.get(
"unique_install_id"):
115 self.settings.set(
"unique_install_id", str(uuid4()))
119 classes.metrics.track_metric_screen(
"initial-launch-screen")
122 if self.settings.get(
"theme") !=
"No Theme":
125 log.info(
"Setting font to %s" % os.path.join(info.IMAGES_PATH,
"fonts",
"Ubuntu-R.ttf"))
126 font_id = QFontDatabase.addApplicationFont(os.path.join(info.IMAGES_PATH,
"fonts",
"Ubuntu-R.ttf"))
127 font_family = QFontDatabase.applicationFontFamilies(font_id)[0]
128 font = QFont(font_family)
129 font.setPointSizeF(10.5)
130 QApplication.setFont(font)
131 except Exception
as ex:
132 log.error(
"Error setting Ubuntu-R.ttf QFont: %s" % str(ex))
135 if self.settings.get(
"theme") ==
"Humanity: Dark":
137 log.info(
"Setting custom dark theme")
138 self.setStyle(QStyleFactory.create(
"Fusion"))
140 darkPalette = self.palette()
141 darkPalette.setColor(QPalette.Window, QColor(53, 53, 53))
142 darkPalette.setColor(QPalette.WindowText, Qt.white)
143 darkPalette.setColor(QPalette.Base, QColor(25, 25, 25))
144 darkPalette.setColor(QPalette.AlternateBase, QColor(53, 53, 53))
145 darkPalette.setColor(QPalette.ToolTipBase, Qt.white)
146 darkPalette.setColor(QPalette.ToolTipText, Qt.white)
147 darkPalette.setColor(QPalette.Text, Qt.white)
148 darkPalette.setColor(QPalette.Button, QColor(53, 53, 53))
149 darkPalette.setColor(QPalette.ButtonText, Qt.white)
150 darkPalette.setColor(QPalette.BrightText, Qt.red)
151 darkPalette.setColor(QPalette.Highlight, QColor(42, 130, 218))
152 darkPalette.setColor(QPalette.HighlightedText, Qt.black)
153 darkPalette.setColor(QPalette.Disabled, QPalette.Text, QColor(104, 104, 104))
154 self.setPalette(darkPalette)
155 self.setStyleSheet(
"QToolTip { color: #ffffff; background-color: #2a82da; border: 0px solid white; }")
158 from windows.main_window
import MainWindow
161 log.info(
'Process command-line arguments: %s' % args)
162 if len(args[0]) == 2:
166 self.window.open_project(path)
169 self.window.filesTreeView.add_file(path)
173 self.window.updateStatusChanged(
False,
False)
175 def _tr(self, message):
176 return self.translate(
"", message)
187 except Exception
as ex:
188 log.error(
"Couldn't save user settings on exit.\n{}".
format(ex))
This class is used to track and distribute changes to listeners.
def get_app()
Returns the current QApplication instance of OpenShot.
def init_language()
Find the current locale, and install the correct translators.
def run(self)
Start the primary Qt event loop for the interface.
This class is the primary QApplication for OpenShot.
def load_theme()
Load the current OS theme, or fallback to a default one.
This class allows advanced searching of data structure, implements changes interface.
This class only allows setting pre-existing keys taken from default settings file, and merges user settings on load, assumes default OS dir.