class SplashScreen(object): def __init__(self, iface): self.iface = iface self.plugin_dir = os.path.dirname(__file__) self.windowTitle = "3Di Modeller Interface - Powered by QGIS" self.app = QApplication.instance() self.QApp = QCoreApplication.instance() if self.QApp is None: self.QApp = QApplication(sys.argv) self.QApp.startingUp() self.QApp.processEvents() self.app.startDragTime() self.iface.initializationCompleted.connect(self.customization) qApp.processEvents() self.applyStyle() def initGui(self): QSettings().setValue("/qgis/hideSplash", True) qApp.processEvents() icon = QIcon(":/3Di_images/3Di_images/images/logo.png") self.app.setWindowIcon(icon) self.iface.mainWindow().setWindowIcon(icon) self.iface.mainWindow().setWindowTitle(self.windowTitle) qApp.processEvents() if not self.iface.mainWindow().isVisible(): self.splash_pix = QPixmap(":/3Di_images/3Di_images/images/splash.png") self.splash = QSplashScreen(self.splash_pix, Qt.WindowStaysOnTopHint) self.splash = QSplashScreen(self.splash_pix) self.splash.setMask(self.splash_pix.mask()) self.splash.show() qApp.processEvents() self.applyStyle() self.addHelpMenuItem() return def run(self): pass def unload(self): qApp.processEvents() self.iface.initializationCompleted.disconnect(self.customization) self.helpAction.deleteLater() return def customization(self): self.splash.finish(self.iface.mainWindow()) self.iface.mainWindow().setWindowTitle(self.windowTitle) qApp.processEvents() self.applyStyle() def applyStyle(self): path = os.path.abspath( os.path.join(self.plugin_dir, "Modeler Interface", "stylesheet.qss") ) watch.removePaths(watch.files()) reload_style(path) @staticmethod def open3DiHelp(self): webbrowser.open_new("https://docs.3di.live") @staticmethod def about_3di_mi_dialog(): dialog = About3DiMIDialog(iface.mainWindow()) dialog.exec_() def find_3di_menu(self): for i, action in enumerate(self.iface.mainWindow().menuBar().actions()): if action.menu().objectName() == "m3Di": return action.menu() return None def addHelpMenuItem(self): menu = self.find_3di_menu() if not menu: menu = QMenu("&3Di", self.iface.mainWindow().menuBar()) menu.setObjectName("m3Di") self.iface.mainWindow().menuBar().addMenu(menu) self.helpAction = QAction( QIcon(":/3Di_images/3Di_images/images/logo.png"), "Documentation", self.iface.mainWindow(), ) self.helpAction.triggered.connect(self.open3DiHelp) self.helpAction.setWhatsThis("3Di Documentation") menu.addAction(self.helpAction) about_action = QAction( # QIcon(":/3Di_images/3Di_images/images/logo.png"), "About 3Di Modeller Interface", self.iface.mainWindow(), ) about_action.triggered.connect(self.about_3di_mi_dialog) about_action.setWhatsThis("About 3Di Modeller Interface") menu.addAction(about_action)