def disableReleaseNotesForCurrentVersion(self): releaseNotesVersion = self.gui.releaseNotesVersion mieruVersion = info.getVersionNumber() self.mieru.set('markedAsReadMieruVersion', mieruVersion) self.mieru.set('readReleaseNotesNVersion', releaseNotesVersion)
def __init__(self, mieru, type, size=(854, 480)): self.mieru = mieru self.activePage = None self.releaseNotes = None self.releaseNotesVersion = (0, 0, 2) # Create Qt application and the QDeclarative view class ModifiedQDeclarativeView(QDeclarativeView): def __init__(self, gui): QDeclarativeView.__init__(self) self.gui = gui def closeEvent(self, event): print("shutting down") self.gui.mieru.destroy() self.app = QApplication(sys.argv) self.view = ModifiedQDeclarativeView(self) # # try OpenGl acceleration # glw = QtOpenGL.QGLWidget() # self.view.setViewport(glw) self.window = QMainWindow() self.window.resize(*size) self.window.setCentralWidget(self.view) self.view.setResizeMode(QDeclarativeView.SizeRootObjectToView) # self.view.setResizeMode(QDeclarativeView.SizeViewToRootObject) # add image providers self.pageProvider = MangaPageImageProvider(self) self.iconProvider = IconImageProvider() self.view.engine().addImageProvider("page", self.pageProvider) self.view.engine().addImageProvider("icons", self.iconProvider) rc = self.view.rootContext() # make the reading state accessible from QML readingState = ReadingState(self) rc.setContextProperty("readingState", readingState) # make stats accessible from QML stats = Stats(self.mieru.stats) rc.setContextProperty("stats", stats) # make options accessible from QML options = Options(self.mieru) rc.setContextProperty("options", options) # make platform module accessible from QML platform = Platform(self.mieru) rc.setContextProperty("platform", platform) # ** history list handling ** # get the objects and wrap them historyListController = HistoryListController(self.mieru) self.historyList = [] self.historyListModel = HistoryListModel(self.mieru, self.historyList) # make available from QML rc.setContextProperty('historyListController', historyListController) rc.setContextProperty('historyListModel', self.historyListModel) # activate translation translator = QtCore.QTranslator(self.app) if self.mieru.args.locale is not None: localeId = self.mieru.args.locale else: localeId = locale.getlocale()[0] translator.load("gui/qml/i18n/qml_" + localeId) self.app.installTranslator(translator) # Set the QML file and show self.view.setSource(QUrl('gui/qml/main.qml')) self.window.closeEvent = self._qtWindowClosed self.window.show() self.rootObject = self.view.rootObject() # self.nextButton = self.rootObject.findChild(QObject, "nextButton") # self.prevButton = self.rootObject.findChild(QObject, "prevButton") # self.pageFlickable = self.rootObject.findChild(QObject, "pageFlickable") self.lastTimeRequestedOtherManga = None # self.nextButton.clicked.connect(self._nextCB) # self.pageFlickable.clicked.connect(self._prevCB) # self.prevButton.clicked.connect(self._prevCB) if self.mieru.platform.startInFullscreen(): self.toggleFullscreen() # check if first start dialog should be shown if self.mieru.get("QMLShowFirstStartDialog", True): self.rootObject.openFirstStartDialog() else: # only show release notes if first start dialog is not shown if self.mieru.get('showReleaseNotes', True): # are release notes enabled ? # release notes version that was marked as read dontShowVersion = self.mieru.get('readReleaseNotesNVersion', (0, 0, 1)) # at which mieru version were the release notes marked as read markedAsReadMieruVersion = self.mieru.get( 'markedAsReadMieruVersion', (0, 0, 0)) # current version currentMieruVersion = info.getVersionNumber() # did we check for new release notes on this version ? if markedAsReadMieruVersion != currentMieruVersion: # check release notes version notesVersion, notes = info.getReleaseNotes() if notesVersion != dontShowVersion: # were these release notes already read ? # these release notes were not marked as read if notes: # release notes loaded successfully self.releaseNotes = notes self.releaseNotesVersion = notesVersion # trigger the release notes dialog self.rootObject.openReleaseNotesDialog() else: print('qml_gui: release notes loading failed')
def __init__(self, mieru, type, size=(854, 480)): self.mieru = mieru self.activePage = None self.releaseNotes = None self.releaseNotesVersion = (0, 0, 2) # Create Qt application and the QDeclarative view class ModifiedQDeclarativeView(QDeclarativeView): def __init__(self, gui): QDeclarativeView.__init__(self) self.gui = gui def closeEvent(self, event): print("shutting down") self.gui.mieru.destroy() self.app = QApplication(sys.argv) self.view = ModifiedQDeclarativeView(self) # # try OpenGl acceleration # glw = QtOpenGL.QGLWidget() # self.view.setViewport(glw) self.window = QMainWindow() self.window.resize(*size) self.window.setCentralWidget(self.view) self.view.setResizeMode(QDeclarativeView.SizeRootObjectToView) # self.view.setResizeMode(QDeclarativeView.SizeViewToRootObject) # add image providers self.pageProvider = MangaPageImageProvider(self) self.iconProvider = IconImageProvider() self.view.engine().addImageProvider("page", self.pageProvider) self.view.engine().addImageProvider("icons", self.iconProvider) rc = self.view.rootContext() # make the reading state accessible from QML readingState = ReadingState(self) rc.setContextProperty("readingState", readingState) # make stats accessible from QML stats = Stats(self.mieru.stats) rc.setContextProperty("stats", stats) # make options accessible from QML options = Options(self.mieru) rc.setContextProperty("options", options) # make platform module accessible from QML platform = Platform(self.mieru) rc.setContextProperty("platform", platform) # ** history list handling ** # get the objects and wrap them historyListController = HistoryListController(self.mieru) self.historyList = [] self.historyListModel = HistoryListModel(self.mieru, self.historyList) # make available from QML rc.setContextProperty('historyListController', historyListController) rc.setContextProperty('historyListModel', self.historyListModel) # activate translation translator = QtCore.QTranslator(self.app) if self.mieru.args.locale is not None: localeId = self.mieru.args.locale else: localeId = locale.getlocale()[0] translator.load("gui/qml/i18n/qml_" + localeId) self.app.installTranslator(translator) # Set the QML file and show self.view.setSource(QUrl('gui/qml/main.qml')) self.window.closeEvent = self._qtWindowClosed self.window.show() self.rootObject = self.view.rootObject() # self.nextButton = self.rootObject.findChild(QObject, "nextButton") # self.prevButton = self.rootObject.findChild(QObject, "prevButton") # self.pageFlickable = self.rootObject.findChild(QObject, "pageFlickable") self.lastTimeRequestedOtherManga = None # self.nextButton.clicked.connect(self._nextCB) # self.pageFlickable.clicked.connect(self._prevCB) # self.prevButton.clicked.connect(self._prevCB) if self.mieru.platform.startInFullscreen(): self.toggleFullscreen() # check if first start dialog should be shown if self.mieru.get("QMLShowFirstStartDialog", True): self.rootObject.openFirstStartDialog() else: # only show release notes if first start dialog is not shown if self.mieru.get('showReleaseNotes', True): # are release notes enabled ? # release notes version that was marked as read dontShowVersion = self.mieru.get('readReleaseNotesNVersion', (0, 0, 1)) # at which mieru version were the release notes marked as read markedAsReadMieruVersion = self.mieru.get('markedAsReadMieruVersion', (0, 0, 0)) # current version currentMieruVersion = info.getVersionNumber() # did we check for new release notes on this version ? if markedAsReadMieruVersion != currentMieruVersion: # check release notes version notesVersion, notes = info.getReleaseNotes() if notesVersion != dontShowVersion: # were these release notes already read ? # these release notes were not marked as read if notes: # release notes loaded successfully self.releaseNotes = notes self.releaseNotesVersion = notesVersion # trigger the release notes dialog self.rootObject.openReleaseNotesDialog() else: print('qml_gui: release notes loading failed')