Exemple #1
0
    def __init__(self):
        QtGui.QMainWindow.__init__(self)

        self.setWindowIcon(QtGui.QIcon(resource_path('data/icon.ico')));
        self.resize(Config.getint('window_width'), Config.getint('window_height'))

        if Config.getboolean("window_maximized"):
            self.setWindowState(QtCore.Qt.WindowMaximized)

        self.setMinimumSize(300, 200)

        self.setWindowTitle(u'H**o Monitor')

        self.web_view = QWebView()
        self.web_view.setZoomFactor(Config.getfloat('zoom'))
        self.setCentralWidget(self.web_view)
        self.web_view.loadFinished.connect(self._load_finished)
        self.web_view.loadStarted.connect(self._load_started)
        self.web_view.titleChanged.connect(self._title_changed)

        # create progress bar
        self.loading = QtGui.QLabel()
        self.loading.setMinimumSize(32, 8)
        self.loading.hide()
        movie = QtGui.QMovie(resource_path("data/loading.gif"))
        self.loading.setMovie(movie)
        movie.start()
        self.statusBar().addPermanentWidget(self.loading)


        # Reload
        reload = QtGui.QAction(QtGui.QIcon(resource_path('data/reload.png')), 'Reload', self)
        reload.setShortcut('F5')
        reload.setStatusTip('Reload')
        self.connect(reload, QtCore.SIGNAL('triggered()'), self.reload)


        # Open in Browser
        browser = QtGui.QAction(QtGui.QIcon(resource_path('data/browser.png')), 'Open in Browser', self)
        browser.setShortcut('F9')
        browser.setStatusTip('Open in Browser')
        self.connect(browser, QtCore.SIGNAL('triggered()'), self.browser)

        # Exit
        exit = QtGui.QAction(QtGui.QIcon(resource_path('data/exit.png')), 'Exit', self)
        exit.setShortcut('Esc')
        exit.setStatusTip('Exit application')
        self.connect(exit, QtCore.SIGNAL('triggered()'), QtCore.SLOT('close()'))

        # Zoom Plus +
        zoomPlus = QtGui.QAction(QtGui.QIcon(resource_path('data/zoom_plus.png')), 'Zoom In', self)
        zoomPlus.setShortcut('Ctrl+=')
        zoomPlus.setStatusTip('Zoom In')
        self.connect(zoomPlus, QtCore.SIGNAL('triggered()'), self.zoomPlus)

        # Zoom Minus -
        zoomMinus = QtGui.QAction(QtGui.QIcon(resource_path('data/zoom_minus.png')), 'Zoom Out', self)
        zoomMinus.setShortcut('Ctrl+-')
        zoomMinus.setStatusTip('Zoom Out')
        self.connect(zoomMinus, QtCore.SIGNAL('triggered()'), self.zoomMinus)

        # Zoom Reset 0
        zoomReset = QtGui.QAction(QtGui.QIcon(resource_path('data/zoom_reset.png')), 'Reset zoom', self)
        zoomReset.setShortcut('Ctrl+0')
        zoomReset.setStatusTip('Reset zoom')
        self.connect(zoomReset, QtCore.SIGNAL('triggered()'), self.zoomReset)

        # Toolbar
        self.toolbar = self.addToolBar('Toolbar')
        #self.toolbar.setToolButtonStyle(QtCore.Qt.ToolButtonTextBesideIcon)

        self.edit = QtGui.QLineEdit()
        self.edit.setText(Config.get('hosts').decode('utf8'))
        self.edit.setPlaceholderText("Enter miner IP-addresses... (Comma separated)")
        self.edit.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
        self.edit.setFont(QtGui.QFont("Arial", 14))
        self.toolbar.addWidget(self.edit)

        self.toolbar.addAction(reload)

        spacer = QtGui.QLabel()
        spacer.setMinimumSize(100,10)
        #spacer.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)

        self.toolbar.addWidget(spacer)
        self.toolbar.addAction(zoomMinus)
        self.toolbar.addAction(zoomReset)
        self.toolbar.addAction(zoomPlus)
        self.toolbar.addSeparator()
        self.toolbar.addAction(browser)


        # Menu File
        file = self.menuBar().addMenu('&File')
        file.addAction(reload)
        file.addAction(browser)
        file.addSeparator()
        file.addAction(exit)

        # Menu View
        view = self.menuBar().addMenu('&View')
        view.addAction(zoomPlus)
        view.addAction(zoomMinus)
        view.addSeparator()
        view.addAction(zoomReset)

        # Menu Settings
        settings = self.menuBar().addMenu('&Settings')
        ag = QtGui.QActionGroup(self, exclusive=True)
        act = ag.addAction(QtGui.QAction('Auto refresh every 5 sec', self, checkable=True, checked=(Config.getint("auto_refresh") == 5)))
        settings.addAction(act)
        self.connect(act, QtCore.SIGNAL('triggered()'), self.setAutoRefresh5)
        act = ag.addAction(QtGui.QAction('Auto refresh every 10 sec', self, checkable=True, checked=(Config.getint("auto_refresh") == 10)))
        settings.addAction(act)
        self.connect(act, QtCore.SIGNAL('triggered()'), self.setAutoRefresh10)
        act = ag.addAction(QtGui.QAction('Auto refresh every 20 sec', self, checkable=True, checked=(Config.getint("auto_refresh") == 20)))
        settings.addAction(act)
        self.connect(act, QtCore.SIGNAL('triggered()'), self.setAutoRefresh20)
        settings.addSeparator();

        # Options Dialog
        oDialog = QtGui.QAction(QtGui.QIcon(resource_path('data/options.png')), 'Options...', self)
        oDialog.setShortcut('F10')
        oDialog.setStatusTip('Options dialog')
        self.connect(oDialog, QtCore.SIGNAL('triggered()'), self.optionsDialog)
        settings.addAction(oDialog)

        # Menu Help
        helpMenu = self.menuBar().addMenu('&Help')

        # About
        about = QtGui.QAction(QtGui.QIcon(resource_path('data/info.png')), '&About H**o Monitor', self)
        about.setStatusTip('Show an about box for H**o Monitor')
        self.connect(about, QtCore.SIGNAL('triggered()'), self.about)
        helpMenu.addAction(about)

        # About Qt
        actionAboutQt = QtGui.QAction("About &Qt", self)
        actionAboutQt.setStatusTip("Show an about box for Qt.")
        self.connect(actionAboutQt, QtCore.SIGNAL("triggered()"), self.aboutQt)
        helpMenu.addAction(actionAboutQt)


        StartServer()