def __init__(self, parent=None): super(PypePlayer, self).__init__(parent) QCoreApplication.setOrganizationName('Ted') QCoreApplication.setApplicationName('PypePlayer') self.setting_dialog = settings_widget() self.setting_dialog.settings_saved.connect(self.read_settings) self.player = Player(parent=self) self.setCentralWidget(self.player) self.viewer = Viewer(parent=self) self.menu_controller = MenuController(self, self.menuBar()) self._create_menu() self.update_actions() self.player.media_loaded.connect(self.set_window_title) self.player.stopped.connect(self.set_window_title) self.read_settings() self.set_window_title('') self.show() self.adjust_header_act.trigger()
def main(self): fullscreenValue = self.argValues["fullscreen"] topWindowValue = self.argValues["topWindow"] startFromDesktopValue = self.argValues["startFromDesktop"] cursor_pos = QCursor.pos() desktop = qApp.desktop() screen_num = desktop.screenNumber(cursor_pos) screen_geo = desktop.screenGeometry(screen_num) pixmap = qApp.primaryScreen().grabWindow(0) pixmap = pixmap.copy(screen_geo.x(), screen_geo.y(), screen_geo.width(), screen_geo.height()) pixmap.save(self.settings.tmpImageFile) show_osd = self.settings.getOption("showOSD", "show") if show_osd == True or show_osd == "true": self.settings.showOSD = startFromDesktopValue if self.settings.showOSD: self.settings.setOption("showOSD", "show", QVariant(False)) else: self.settings.showOSD = False self.menu_controller = MenuController() self.windowInfo = WindowInfo(screen_num) notificationsInterface.ActionInvoked.connect(self._actionInvoked) notificationsInterface.NotificationClosed.connect( self._notificationClosed) if fullscreenValue: self.saveScreenshot(pixmap) elif topWindowValue: wInfos = self.windowInfo.get_windows_info() if len(wInfos) > 0: wInfo = wInfos[0] pix = pixmap.copy(wInfo[0] - screen_geo.x(), wInfo[1] - screen_geo.y(), wInfo[2], wInfo[3]) self.saveScreenshot(pix) else: self.window = Window(ref(self)()) self.window.setX(screen_geo.x()) self.window.setY(screen_geo.y()) self.window.setWidth(screen_geo.width()) self.window.setHeight(screen_geo.height()) self.window.windowClosing.connect(self._windowClosing) self.window.visibleChanged.connect(self._windowVisibleChanged) # NOTE: make sure that all the objects that are set as context # property are always referenced by others through the lifetime # of this application, otherwise it'll cause problems. qml_context = self.window.rootContext() qml_context.setContextProperty("windowView", self.window) qml_context.setContextProperty("qApp", qApp) qml_context.setContextProperty( "screenWidth", self.window.window_info.screen_width) qml_context.setContextProperty( "screenHeight", self.window.window_info.screen_height) qml_context.setContextProperty("tmpImageFile", self.settings.tmpImageFile) qml_context.setContextProperty("blurImageFile", self.settings.tmpBlurFile) qml_context.setContextProperty("mosaicImageFile", self.settings.tmpMosaiceFile) qml_context.setContextProperty("_menu_controller", self.menu_controller) self.window.setSource(QUrl.fromLocalFile(MAIN_QML)) self.window.showWindow() self.menu_controller.preMenuShow.connect(self.window.ungrabFocus) self.menu_controller.postMenuHide.connect(self.window.grabFocus)
if __name__ == "__main__": from dbus_services import (DeepinMovieServie, check_multiple_instances, DeepinMovieInterface, session_bus, DBUS_PATH) result = check_multiple_instances() if result: dbus_service = DeepinMovieServie(app) session_bus.registerObject(DBUS_PATH, dbus_service) else: if not config.playerMultipleProgramsAllowed: dbus_interface = DeepinMovieInterface() dbus_interface.play(json.dumps(sys.argv[1:])) os._exit(0) windowView = Window(result or len(sys.argv) > 1) menu_controller = MenuController(windowView) file_monitor = FileMonitor() findVideoThreadManager = FindVideoThreadManager() app._extra_window = weakref.ref(windowView) qml_context = windowView.rootContext() qml_context.setContextProperty("config", config) qml_context.setContextProperty("_utils", utils) qml_context.setContextProperty("_findVideoThreadManager", findVideoThreadManager) qml_context.setContextProperty("_file_monitor", file_monitor) qml_context.setContextProperty("database", database) qml_context.setContextProperty("windowView", windowView) qml_context.setContextProperty("movieInfo", movie_info) qml_context.setContextProperty("_menu_controller", menu_controller)