예제 #1
0
 def valider(self):
     parameters = self.parent.parent.db.executewithreturn("""SELECT * FROM parameters""")
     self.parent.parent.db.executewithoutreturn(
         """UPDATE parameters SET home = ? WHERE id = ?""", (self.urlAccueil.text(), parameters[0][0]))
     self.parent.parent.db.executewithoutreturn(
         """UPDATE parameters SET moteur = ? WHERE id = ?""",
         (self.listeMoteur[self.moteurBox.currentIndex()],
          parameters[0][0]))
     self.parent.parent.dbConnection.executewithoutreturn(
         """UPDATE parameters SET js = ? WHERE id = ?""",
         (self.listejs[self.jsbox.currentIndex()],
          parameters[0][0]))
     if self.listejs[self.jsbox.currentIndex()] == "Activé":
         QWebEngineSettings.globalSettings().setAttribute(QWebEngineSettings.JavascriptEnabled, True)
     else:
         QWebEngineSettings.globalSettings().setAttribute(QWebEngineSettings.JavascriptEnabled, False)
     self.parent.parent.db.executewithoutreturn(
         """UPDATE parameters SET private = ? WHERE id = ?""",
         (self.listeprivate[self.privatebox.currentIndex()],
          parameters[0][0]))
     if self.listeprivate[self.privatebox.currentIndex()] == "Activé":
         QWebEngineProfile.defaultProfile().setHttpCacheType(QWebEngineProfile.MemoryHttpCache)
         self.parent.parent.privateBrowsing = True
     else:
         QWebEngineProfile.defaultProfile().setHttpCacheType(QWebEngineProfile.DiskHttpCache)
         self.parent.parent.privateBrowsing = False
     QMessageBox().about(self, "Enregistrement fait", "L'enregistrement des paramètres a été fait sans problème")
예제 #2
0
 def __init__(self):
     super().__init__()
     self.label = QLabel('reCAPTCHA를 해결하고 확인 버튼을 누르세요.\n'
                         '404 페이지가 로드되면 정상입니다. 완료 버튼을 눌러 종료하세요.')
     self.label.setStyleSheet('font: 10pt \'맑은 고딕\'')
     self.label.setAlignment(Qt.AlignCenter)
     self.label.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed)
     QWebEngineProfile.defaultProfile().setHttpAcceptLanguage('ko')
     self.browser = QWebEngineView()
     self.browser.setStyleSheet('border: 1px solid gray;')
     # self.browser.loadStarted.connect(self.test)
     # self.browser.loadFinished.connect(self.test2)
     self.btn_zoom_in = NPButton('+', 9, self)
     self.btn_zoom_in.setMinimumWidth(30)
     self.btn_zoom_in.setMaximumWidth(50)
     self.btn_zoom_in.clicked.connect(self.zoom_in)
     self.btn_zoom_out = NPButton('-', 9, self)
     self.btn_zoom_out.setMinimumWidth(30)
     self.btn_zoom_out.setMaximumWidth(50)
     self.btn_zoom_out.clicked.connect(self.zoom_out)
     self.btn = NPButton('완료', 10, self)
     self.btn.setMaximumWidth(200)
     self.btn.clicked.connect(self.accept)
     # self.btn.clicked.connect(self.test2)
     self.abc = False
     box_h = QHBoxLayout()
     box_h.addWidget(self.btn_zoom_in)
     box_h.addWidget(self.btn_zoom_out)
     box_h.addStretch(4)
     box_h.addWidget(self.btn)
     box_h.setStretchFactor(self.btn_zoom_in, 1)
     box_h.setStretchFactor(self.btn_zoom_out, 1)
     box_h.setStretchFactor(self.btn, 4)
     box_v = QVBoxLayout()
     box_v.addWidget(self.label)
     box_v.addWidget(self.browser)
     box_v.addLayout(box_h)
     box_v.setContentsMargins(8, 10, 8, 8)
     self.setLayout(box_v)
     # self.setWindowModality(Qt.ApplicationModal)
     self.setWindowTitle('reCAPTCHA')
     self.setWindowIcon(QIcon('icon.png'))
     self.setWindowFlag(Qt.WindowContextHelpButtonHint, False)
     self.browser.setFocus()
     self.resize(480, 700)
예제 #3
0
 def test_SchemeHandlerRedirect(self):
     app = QApplication([])
     handler = TestSchemeHandler()
     profile = QWebEngineProfile.defaultProfile()
     profile.installUrlSchemeHandler("testpy", handler)
     view = QWebEngineView()
     view.loadFinished.connect(app.quit)
     QTimer.singleShot(5000, app.quit)
     view.show()
     view.load("testpy:hello")
     app.exec_()
     self.assertEqual(view.url(), "testpy:goodbye")
예제 #4
0
    def __init__(self):
        super(Browser, self).__init__()
        self.db = Database(os.path.join(os.path.dirname(__file__), "data.db"))
        self.db.createdb()

        self.centralWidget = QWidget(self)
        self.grid = QGridLayout(self.centralWidget)
        self.theme = ""
        self.version = "1.0.0"
        self.versionCompaDB = 1
        self.versionAccDB = self.db.executewithreturn(
            """SELECT version FROM informations""")[0][0]
        if self.versionAccDB != self.versionCompaDB:
            QMessageBox.information(
                self, "Base de donnée non à jour",
                "La Base de donnée n'est pas compatible avec "
                "cette version de Browthon.\n"
                "Elle va être mise à jour.")
            self.dbConnection.disconnect()
            self.versionAccDB = majdb(
                os.path.join(os.path.dirname(__file__), "data.db"),
                self.versionAccDB, self.versionCompaDB)
            self.dbConnection.reconnect(
                os.path.join(os.path.dirname(__file__), "data.db"))
            self.dbConnection.createdb()
        QWebEngineSettings.globalSettings().setAttribute(
            QWebEngineSettings.FullScreenSupportEnabled, True)
        if self.db.executewithreturn(
                """SELECT js FROM parameters""")[0][0] == "Activé":
            QWebEngineSettings.globalSettings().setAttribute(
                QWebEngineSettings.JavascriptEnabled, True)
        else:
            QWebEngineSettings.globalSettings().setAttribute(
                QWebEngineSettings.JavascriptEnabled, False)
        if self.db.executewithreturn(
                """SELECT private FROM parameters""")[0][0] == "Activé":
            self.privateBrowsing = True
            QWebEngineProfile.defaultProfile().setHttpCacheType(
                QWebEngineProfile.MemoryHttpCache)
        else:
            self.privateBrowsing = False
            QWebEngineProfile.defaultProfile().setHttpCacheType(
                QWebEngineProfile.DiskHttpCache)

        self.urlInput = UrlInput(self)
        self.urlInput.setObjectName("addressBar")
        self.back = PushButton(
            "", QIcon(geticonpath(self, "../Icons/NavigationBar/back.png")),
            "backButton")
        self.forward = PushButton(
            "", QIcon(geticonpath(self, "../Icons/NavigationBar/forward.png")),
            "forwardButton")
        self.reload = PushButton(
            "", QIcon(geticonpath(self, "../Icons/NavigationBar/reload.png")),
            "reloadButton")
        self.bookmark = PushButton(
            "", QIcon(geticonpath(self, "../Icons/NavigationBar/noFav.png")),
            "favButton")
        self.home = PushButton(
            "", QIcon(geticonpath(self, "../Icons/NavigationBar/home.png")),
            "homeButton")
        self.parameter = PushButton(
            "", QIcon(geticonpath(self, "../Icons/NavigationBar/param.png")),
            "paramButton")
        self.tabWidget = TabWidget(self)
        self.tabWidget.tabBar().setObjectName("tabBar")

        self.tabWidget.requestsaddtab()
        self.back.setFlat(True)
        self.forward.setFlat(True)
        self.reload.setFlat(True)
        self.bookmark.setFlat(True)
        self.home.setFlat(True)
        self.parameter.setFlat(True)

        self.reload.clicked.connect(self.browserWidget.reload)
        self.back.clicked.connect(self.browserWidget.back)
        self.forward.clicked.connect(self.browserWidget.forward)
        self.bookmark.clicked.connect(self.fav)
        self.home.clicked.connect(lambda: self.urlInput.enterurlgiven(
            self.db.executewithreturn("""SELECT home FROM parameters""")[0][0])
                                  )
        self.parameter.clicked.connect(self.openparameter)

        self.grid.addWidget(self.back, 0, 0)
        self.grid.addWidget(self.reload, 0, 1)
        self.grid.addWidget(self.forward, 0, 2)
        self.grid.addWidget(self.urlInput, 0, 3)
        self.grid.addWidget(self.bookmark, 0, 4)
        self.grid.addWidget(self.home, 0, 5)
        self.grid.addWidget(self.parameter, 0, 6)
        self.grid.addWidget(self.tabWidget, 1, 0, 1, 7)

        self.grid.setContentsMargins(0, 0, 0, 0)
        self.grid.setSpacing(0)
        self.setCentralWidget(self.centralWidget)
        self.showMaximized()
        self.setWindowTitle('Browthon')

        self.parameterWindow = ParameterWindow(self)
        QWebEngineProfile.defaultProfile().\
            downloadRequested.connect(self.parameterWindow.downloadPage.downloadrequested)

        theme = self.db.executewithreturn(
            """SELECT theme FROM parameters""")[0][0]
        if theme == "":
            self.theme = ""
            self.applytheme()
        else:
            if os.path.exists(
                    os.path.join(os.path.dirname(__file__), "..", "Themes",
                                 theme, "theme.json")):
                self.theme = os.path.join(os.path.dirname(__file__), "..",
                                          "Themes", theme)
                self.applytheme()
            else:
                print("Le theme " + theme + " n'existe pas/plus.")
                self.theme = ""
                self.applytheme()

        self.parameterWindow.addonsPage.launchaddons("load")
        self.show()
        if self.db.executewithreturn(
                """SELECT first FROM parameters""")[0][0] == "O":
            parameters = self.dbConnection.executewithreturn(
                """SELECT * FROM parameters""")
            self.db.executewithoutreturn(
                """UPDATE parameters SET first = ? WHERE id = ?""",
                ("N", parameters[0][0]))
예제 #5
0
    def __init__(self, context, parent=None):
        super(SVDBrowser, self).__init__(parent)
        QWebEngineProfile.defaultProfile().downloadRequested.connect(
            self.on_downloadRequested)

        # Create widgets
        #self.setWindowModality(Qt.ApplicationModal)
        self.title = QLabel(self.tr("SVD Browser"))
        self.closeButton = QPushButton(self.tr("Close"))
        self.setWindowTitle(self.title.text())
        self.browseButton = QPushButton("Browse SVD Folder")
        self.deleteSvdButton = QPushButton("Delete")
        self.applySvdButton = QPushButton("Apply SVD")
        self.view = QWebEngineView()
        url = "https://developer.arm.com/tools-and-software/embedded/cmsis/cmsis-search"
        self.view.load(QUrl(url))
        self.columns = 3
        self.context = context

        self.currentFileLabel = QLabel()
        self.currentFile = ""

        #Files
        self.files = QFileSystemModel()
        self.files.setRootPath(svdPath)
        self.files.setNameFilters(["*.svd", "*.patched"])

        #Tree
        self.tree = QTreeView()
        self.tree.setModel(self.files)
        self.tree.setSortingEnabled(True)
        self.tree.hideColumn(2)
        self.tree.sortByColumn(0, Qt.AscendingOrder)
        self.tree.setRootIndex(self.files.index(svdPath))
        for x in range(self.columns):
            #self.tree.resizeColumnToContents(x)
            self.tree.header().setSectionResizeMode(
                x, QHeaderView.ResizeToContents)
        treeLayout = QVBoxLayout()
        treeLayout.addWidget(self.tree)
        treeButtons = QHBoxLayout()
        #treeButtons.addWidget(self.newFolderButton)
        treeButtons.addWidget(self.browseButton)
        treeButtons.addWidget(self.applySvdButton)
        treeButtons.addWidget(self.deleteSvdButton)
        treeLayout.addLayout(treeButtons)
        treeWidget = QWidget()
        treeWidget.setLayout(treeLayout)

        # Create layout and add widgets
        buttons = QHBoxLayout()
        buttons.addWidget(self.closeButton)

        vlayoutWidget = QWidget()
        vlayout = QVBoxLayout()
        vlayout.addWidget(self.view)
        vlayout.addLayout(buttons)
        vlayoutWidget.setLayout(vlayout)

        hsplitter = QSplitter()
        hsplitter.addWidget(treeWidget)
        hsplitter.addWidget(vlayoutWidget)

        hlayout = QHBoxLayout()
        hlayout.addWidget(hsplitter)

        self.showMaximized()  #Fixes bug that maximized windows are "stuck"
        #Because you can't trust QT to do the right thing here

        # Set dialog layout
        self.setLayout(hlayout)

        # Add signals
        self.closeButton.clicked.connect(self.close)
        self.tree.selectionModel().selectionChanged.connect(self.selectFile)
        self.applySvdButton.clicked.connect(self.applySvd)
        self.deleteSvdButton.clicked.connect(self.deleteSvd)
        self.browseButton.clicked.connect(self.browseSvd)