def __init__(self, gui): super(SystemTrayIcon, self).__init__() self.gui = gui self.icon = QIcon(resource(settings['application']['tray_icon'])) self.setIcon(self.icon) self.menu = Menu(self.gui) self.setContextMenu(self.menu) self.activated.connect(self.on_click) self.animation = QMovie() self.animation.setFileName( resource(settings['application']['tray_icon_sync'])) self.animation.updated.connect(self.update) self.animation.setCacheMode(True)
def __init__(self, gui): super(SystemTrayIcon, self).__init__() self.gui = gui tray_icon_path = resource(settings['application']['tray_icon']) self.app_pixmap = QPixmap(tray_icon_path) self.app_icon = QIcon(tray_icon_path) self.setIcon(self.app_icon) self.menu = Menu(self.gui) self.setContextMenu(self.menu) self.activated.connect(self.on_click) self.messageClicked.connect(self.gui.show_main_window) self.animation = QMovie() self.animation.setFileName( resource(settings['application']['tray_icon_sync'])) self.animation.updated.connect(self.update) self.animation.setCacheMode(True)
def __init__(self, gateway, gui): super().__init__() self.gateway = gateway self.gui = gui self.state = 0 self.num_connected = 0 self.num_known = 0 self.available_space = 0 self.checkmark_icon = QLabel() self.checkmark_icon.setPixmap(Pixmap("checkmark.png", 20)) self.syncing_icon = QLabel() self.sync_movie = QMovie(resource("sync.gif")) self.sync_movie.setCacheMode(True) self.sync_movie.updated.connect( lambda: self.syncing_icon.setPixmap(self.sync_movie.currentPixmap( ).scaled(20, 20, Qt.KeepAspectRatio, Qt.SmoothTransformation))) self.status_label = QLabel() p = self.palette() dimmer_grey = BlendedColor(p.windowText().color(), p.window().color(), 0.6).name() self.status_label.setStyleSheet(f"QLabel {{ color: {dimmer_grey} }}") self.status_label.setFont(Font(10)) self.setStyleSheet("QToolButton { border: none }") # self.setStyleSheet(""" # QToolButton { color: dimgrey; border: none; } # QToolButton:hover { # background-color: #FAFAFA; # border: 1px solid grey; # border-radius: 2px; # } # """) self.tor_button = QToolButton() self.tor_button.setIconSize(QSize(20, 20)) self.tor_action = QAction( QIcon(resource("tor-onion.png")), "This connection is being routed through the Tor network", ) self.tor_button.setDefaultAction(self.tor_action) if not self.gateway.use_tor: self.tor_button.hide() preferences_button = QToolButton(self) preferences_button.setIcon(QIcon(resource("preferences.png"))) preferences_button.setIconSize(QSize(20, 20)) preferences_button.setMenu(Menu(self.gui, show_open_action=False)) preferences_button.setPopupMode(2) preferences_button.setStyleSheet( "QToolButton::menu-indicator { image: none }") layout = QGridLayout(self) left, _, right, bottom = layout.getContentsMargins() layout.setContentsMargins(left, 0, right, bottom - 2) layout.addWidget(self.checkmark_icon, 1, 1) layout.addWidget(self.syncing_icon, 1, 1) layout.addWidget(self.status_label, 1, 2) layout.addItem(QSpacerItem(0, 0, QSizePolicy.Expanding, 0), 1, 3) layout.addWidget(self.tor_button, 1, 4) layout.addWidget(preferences_button, 1, 6) self.gateway.monitor.total_sync_state_updated.connect( self.on_sync_state_updated) self.gateway.monitor.space_updated.connect(self.on_space_updated) self.gateway.monitor.nodes_updated.connect(self.on_nodes_updated) self.on_sync_state_updated(0)
def __init__(self, gateway, gui): super(StatusPanel, self).__init__() self.gateway = gateway self.gui = gui self.num_connected = 0 self.num_known = 0 self.available_space = 0 self.checkmark_icon = QLabel() self.checkmark_icon.setPixmap( QPixmap(resource('checkmark.png')).scaled(20, 20)) self.syncing_icon = QLabel() self.sync_movie = QMovie(resource('sync.gif')) self.sync_movie.setCacheMode(True) self.sync_movie.updated.connect(lambda: self.syncing_icon.setPixmap( self.sync_movie.currentPixmap().scaled(20, 20))) self.status_label = QLabel() self.status_label.setStyleSheet("color: dimgrey") self.on_sync_state_updated(0) self.setStyleSheet('QToolButton { color: dimgrey; border: none; }') #self.setStyleSheet(""" # QToolButton { color: dimgrey; border: none; } # QToolButton:hover { # background-color: #FAFAFA; # border: 1px solid grey; # border-radius: 2px; # } #""") self.tor_button = QToolButton() self.tor_button.setIconSize(QSize(20, 20)) self.tor_action = QAction( QIcon(resource('tor-onion.png')), "This connection is being routed through the Tor network") self.tor_button.setDefaultAction(self.tor_action) if not self.gateway.use_tor: self.tor_button.hide() self.globe_button = QToolButton() self.globe_button.setIconSize(QSize(20, 20)) self.globe_action = QAction(QIcon(resource('globe.png')), '') self.globe_button.setDefaultAction(self.globe_action) preferences_button = QToolButton(self) preferences_button.setIcon(QIcon(resource('preferences.png'))) preferences_button.setIconSize(QSize(20, 20)) preferences_button.setMenu(Menu(self.gui, show_open_action=False)) preferences_button.setPopupMode(2) preferences_button.setStyleSheet( 'QToolButton::menu-indicator { image: none }') if QSystemTrayIcon.isSystemTrayAvailable(): preferences_button.hide() layout = QGridLayout(self) left, _, right, bottom = layout.getContentsMargins() layout.setContentsMargins(left, 0, right, bottom - 2) layout.addWidget(self.checkmark_icon, 1, 1) layout.addWidget(self.syncing_icon, 1, 1) layout.addWidget(self.status_label, 1, 2) layout.addItem(QSpacerItem(0, 0, QSizePolicy.Expanding, 0), 1, 3) layout.addWidget(self.tor_button, 1, 4) layout.addWidget(self.globe_button, 1, 5) layout.addWidget(preferences_button, 1, 6) self.gateway.monitor.total_sync_state_updated.connect( self.on_sync_state_updated) self.gateway.monitor.space_updated.connect(self.on_space_updated) self.gateway.monitor.nodes_updated.connect(self.on_nodes_updated)