mirror of
https://github.com/onionshare/onionshare.git
synced 2025-07-28 17:17:34 -04:00
Move server status indicator to the status bar at the bottom
This commit is contained in:
parent
370b1bfc45
commit
2e2c3c275e
3 changed files with 40 additions and 18 deletions
|
@ -73,11 +73,15 @@ class OnionShareGui(QtWidgets.QMainWindow):
|
||||||
self.server_status = ServerStatus(self.qtapp, self.app, web, self.file_selection, self.settings)
|
self.server_status = ServerStatus(self.qtapp, self.app, web, self.file_selection, self.settings)
|
||||||
self.server_status.server_started.connect(self.file_selection.server_started)
|
self.server_status.server_started.connect(self.file_selection.server_started)
|
||||||
self.server_status.server_started.connect(self.start_server)
|
self.server_status.server_started.connect(self.start_server)
|
||||||
|
self.server_status.server_started.connect(self.update_server_status_indicator)
|
||||||
self.server_status.server_stopped.connect(self.file_selection.server_stopped)
|
self.server_status.server_stopped.connect(self.file_selection.server_stopped)
|
||||||
self.server_status.server_stopped.connect(self.stop_server)
|
self.server_status.server_stopped.connect(self.stop_server)
|
||||||
|
self.server_status.server_stopped.connect(self.update_server_status_indicator)
|
||||||
self.start_server_finished.connect(self.clear_message)
|
self.start_server_finished.connect(self.clear_message)
|
||||||
self.start_server_finished.connect(self.server_status.start_server_finished)
|
self.start_server_finished.connect(self.server_status.start_server_finished)
|
||||||
|
self.start_server_finished.connect(self.update_server_status_indicator)
|
||||||
self.stop_server_finished.connect(self.server_status.stop_server_finished)
|
self.stop_server_finished.connect(self.server_status.stop_server_finished)
|
||||||
|
self.stop_server_finished.connect(self.update_server_status_indicator)
|
||||||
self.file_selection.file_list.files_updated.connect(self.server_status.update)
|
self.file_selection.file_list.files_updated.connect(self.server_status.update)
|
||||||
self.file_selection.file_list.files_updated.connect(self.update_primary_action)
|
self.file_selection.file_list.files_updated.connect(self.update_primary_action)
|
||||||
self.server_status.url_copied.connect(self.copy_url)
|
self.server_status.url_copied.connect(self.copy_url)
|
||||||
|
@ -109,10 +113,26 @@ class OnionShareGui(QtWidgets.QMainWindow):
|
||||||
self.settings_button.setIcon( QtGui.QIcon(common.get_resource_path('images/settings.png')) )
|
self.settings_button.setIcon( QtGui.QIcon(common.get_resource_path('images/settings.png')) )
|
||||||
self.settings_button.clicked.connect(self.open_settings)
|
self.settings_button.clicked.connect(self.open_settings)
|
||||||
|
|
||||||
|
# Server status indicator on the status bar
|
||||||
|
self.server_status_image_stopped = QtGui.QImage(common.get_resource_path('images/server_stopped.png'))
|
||||||
|
self.server_status_image_working = QtGui.QImage(common.get_resource_path('images/server_working.png'))
|
||||||
|
self.server_status_image_started = QtGui.QImage(common.get_resource_path('images/server_started.png'))
|
||||||
|
self.server_status_image_label = QtWidgets.QLabel()
|
||||||
|
self.server_status_image_label.setFixedWidth(20)
|
||||||
|
self.server_status_label = QtWidgets.QLabel()
|
||||||
|
self.server_status_label.setStyleSheet('QLabel { font-style: italic; color: #666666; }')
|
||||||
|
server_status_indicator_layout = QtWidgets.QHBoxLayout()
|
||||||
|
server_status_indicator_layout.addWidget(self.server_status_image_label)
|
||||||
|
server_status_indicator_layout.addWidget(self.server_status_label)
|
||||||
|
self.server_status_indicator = QtWidgets.QWidget()
|
||||||
|
self.server_status_indicator.setLayout(server_status_indicator_layout)
|
||||||
|
self.update_server_status_indicator()
|
||||||
|
|
||||||
# Status bar
|
# Status bar
|
||||||
self.status_bar = QtWidgets.QStatusBar()
|
self.status_bar = QtWidgets.QStatusBar()
|
||||||
self.status_bar.setSizeGripEnabled(False)
|
self.status_bar.setSizeGripEnabled(False)
|
||||||
self.status_bar.setStyleSheet("QStatusBar::item { border: 0px; }")
|
self.status_bar.setStyleSheet("QStatusBar::item { border: 0px; }")
|
||||||
|
self.status_bar.addPermanentWidget(self.server_status_indicator)
|
||||||
self.status_bar.addPermanentWidget(self.settings_button)
|
self.status_bar.addPermanentWidget(self.settings_button)
|
||||||
self.setStatusBar(self.status_bar)
|
self.setStatusBar(self.status_bar)
|
||||||
|
|
||||||
|
@ -167,6 +187,7 @@ class OnionShareGui(QtWidgets.QMainWindow):
|
||||||
self.check_for_updates()
|
self.check_for_updates()
|
||||||
|
|
||||||
def update_primary_action(self):
|
def update_primary_action(self):
|
||||||
|
common.log('OnionShareGui', 'update_primary_action')
|
||||||
# Resize window
|
# Resize window
|
||||||
self.adjustSize()
|
self.adjustSize()
|
||||||
|
|
||||||
|
@ -176,6 +197,20 @@ class OnionShareGui(QtWidgets.QMainWindow):
|
||||||
else:
|
else:
|
||||||
self.primary_action.hide()
|
self.primary_action.hide()
|
||||||
|
|
||||||
|
def update_server_status_indicator(self):
|
||||||
|
common.log('OnionShareGui', 'update_server_status_indicator')
|
||||||
|
|
||||||
|
# Set the status image
|
||||||
|
if self.server_status.status == self.server_status.STATUS_STOPPED:
|
||||||
|
self.server_status_image_label.setPixmap(QtGui.QPixmap.fromImage(self.server_status_image_stopped))
|
||||||
|
self.server_status_label.setText(strings._('gui_status_indicator_stopped', True))
|
||||||
|
elif self.server_status.status == self.server_status.STATUS_WORKING:
|
||||||
|
self.server_status_image_label.setPixmap(QtGui.QPixmap.fromImage(self.server_status_image_working))
|
||||||
|
self.server_status_label.setText(strings._('gui_status_indicator_working', True))
|
||||||
|
elif self.server_status.status == self.server_status.STATUS_STARTED:
|
||||||
|
self.server_status_image_label.setPixmap(QtGui.QPixmap.fromImage(self.server_status_image_started))
|
||||||
|
self.server_status_label.setText(strings._('gui_status_indicator_started', True))
|
||||||
|
|
||||||
def _initSystemTray(self):
|
def _initSystemTray(self):
|
||||||
system = common.get_platform()
|
system = common.get_platform()
|
||||||
|
|
||||||
|
|
|
@ -78,16 +78,8 @@ class ServerStatus(QtWidgets.QWidget):
|
||||||
self.server_shutdown_timeout_container.setLayout(shutdown_timeout_container_layout)
|
self.server_shutdown_timeout_container.setLayout(shutdown_timeout_container_layout)
|
||||||
|
|
||||||
# Server layout
|
# Server layout
|
||||||
self.status_image_stopped = QtGui.QImage(common.get_resource_path('images/server_stopped.png'))
|
|
||||||
self.status_image_working = QtGui.QImage(common.get_resource_path('images/server_working.png'))
|
|
||||||
self.status_image_started = QtGui.QImage(common.get_resource_path('images/server_started.png'))
|
|
||||||
self.status_image_label = QtWidgets.QLabel()
|
|
||||||
self.status_image_label.setFixedWidth(30)
|
|
||||||
self.server_button = QtWidgets.QPushButton()
|
self.server_button = QtWidgets.QPushButton()
|
||||||
self.server_button.clicked.connect(self.server_button_clicked)
|
self.server_button.clicked.connect(self.server_button_clicked)
|
||||||
server_layout = QtWidgets.QHBoxLayout()
|
|
||||||
server_layout.addWidget(self.status_image_label)
|
|
||||||
server_layout.addWidget(self.server_button)
|
|
||||||
|
|
||||||
# URL layout
|
# URL layout
|
||||||
url_font = QtGui.QFont()
|
url_font = QtGui.QFont()
|
||||||
|
@ -120,7 +112,7 @@ class ServerStatus(QtWidgets.QWidget):
|
||||||
|
|
||||||
# Add the widgets
|
# Add the widgets
|
||||||
layout = QtWidgets.QVBoxLayout()
|
layout = QtWidgets.QVBoxLayout()
|
||||||
layout.addLayout(server_layout)
|
layout.addWidget(self.server_button)
|
||||||
layout.addLayout(url_layout)
|
layout.addLayout(url_layout)
|
||||||
layout.addWidget(self.server_shutdown_timeout_container)
|
layout.addWidget(self.server_shutdown_timeout_container)
|
||||||
self.setLayout(layout)
|
self.setLayout(layout)
|
||||||
|
@ -155,14 +147,6 @@ class ServerStatus(QtWidgets.QWidget):
|
||||||
"""
|
"""
|
||||||
Update the GUI elements based on the current state.
|
Update the GUI elements based on the current state.
|
||||||
"""
|
"""
|
||||||
# Set the status image
|
|
||||||
if self.status == self.STATUS_STOPPED:
|
|
||||||
self.status_image_label.setPixmap(QtGui.QPixmap.fromImage(self.status_image_stopped))
|
|
||||||
elif self.status == self.STATUS_WORKING:
|
|
||||||
self.status_image_label.setPixmap(QtGui.QPixmap.fromImage(self.status_image_working))
|
|
||||||
elif self.status == self.STATUS_STARTED:
|
|
||||||
self.status_image_label.setPixmap(QtGui.QPixmap.fromImage(self.status_image_started))
|
|
||||||
|
|
||||||
# Set the URL fields
|
# Set the URL fields
|
||||||
if self.status == self.STATUS_STARTED:
|
if self.status == self.STATUS_STARTED:
|
||||||
self.url_description.show()
|
self.url_description.show()
|
||||||
|
|
|
@ -136,5 +136,8 @@
|
||||||
"persistent_url_in_use": "This share is using a persistent address",
|
"persistent_url_in_use": "This share is using a persistent address",
|
||||||
"gui_url_description": "<b>Anyone</b> with this link can <b>download</b> your files using <b>Tor Browser</b>:",
|
"gui_url_description": "<b>Anyone</b> with this link can <b>download</b> your files using <b>Tor Browser</b>:",
|
||||||
"gui_url_label": "Your Download Address",
|
"gui_url_label": "Your Download Address",
|
||||||
"gui_url_label_one_time": "Your One-Time Download Address"
|
"gui_url_label_one_time": "Your One-Time Download Address",
|
||||||
|
"gui_status_indicator_stopped": "Stopped",
|
||||||
|
"gui_status_indicator_working": "Working...",
|
||||||
|
"gui_status_indicator_started": "Running"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue