Make a new onionshare_gui.GuiCommon object, and move css from onionshare.Common into it

This commit is contained in:
Micah Lee 2019-10-20 20:01:09 -07:00
parent 4f2ce99417
commit bba5286815
No known key found for this signature in database
GPG key ID: 403C2657CD994F73
10 changed files with 323 additions and 290 deletions

View file

@ -32,7 +32,7 @@ import time
from .settings import Settings
class Common(object):
class Common:
"""
The Common object is shared amongst all parts of OnionShare.
"""
@ -187,237 +187,6 @@ class Common(object):
r = random.SystemRandom()
return "-".join(r.choice(wordlist) for _ in range(2))
def define_css(self):
"""
This defines all of the stylesheets used in GUI mode, to avoid repeating code.
This method is only called in GUI mode.
"""
self.css = {
# OnionShareGui styles
"mode_switcher_selected_style": """
QPushButton {
color: #ffffff;
background-color: #4e064f;
border: 0;
border-right: 1px solid #69266b;
font-weight: bold;
border-radius: 0;
}""",
"mode_switcher_unselected_style": """
QPushButton {
color: #ffffff;
background-color: #601f61;
border: 0;
font-weight: normal;
border-radius: 0;
}""",
"settings_button": """
QPushButton {
background-color: #601f61;
border: 0;
border-left: 1px solid #69266b;
border-radius: 0;
}""",
"server_status_indicator_label": """
QLabel {
font-style: italic;
color: #666666;
padding: 2px;
}""",
"status_bar": """
QStatusBar {
font-style: italic;
color: #666666;
}
QStatusBar::item {
border: 0px;
}""",
# Common styles between modes and their child widgets
"mode_info_label": """
QLabel {
font-size: 12px;
color: #666666;
}
""",
"server_status_url": """
QLabel {
background-color: #ffffff;
color: #000000;
padding: 10px;
border: 1px solid #666666;
font-size: 12px;
}
""",
"server_status_url_buttons": """
QPushButton {
color: #3f7fcf;
}
""",
"server_status_button_stopped": """
QPushButton {
background-color: #5fa416;
color: #ffffff;
padding: 10px;
border: 0;
border-radius: 5px;
}""",
"server_status_button_working": """
QPushButton {
background-color: #4c8211;
color: #ffffff;
padding: 10px;
border: 0;
border-radius: 5px;
font-style: italic;
}""",
"server_status_button_started": """
QPushButton {
background-color: #d0011b;
color: #ffffff;
padding: 10px;
border: 0;
border-radius: 5px;
}""",
"downloads_uploads_empty": """
QWidget {
background-color: #ffffff;
border: 1px solid #999999;
}
QWidget QLabel {
background-color: none;
border: 0px;
}
""",
"downloads_uploads_empty_text": """
QLabel {
color: #999999;
}""",
"downloads_uploads_label": """
QLabel {
font-weight: bold;
font-size 14px;
text-align: center;
background-color: none;
border: none;
}""",
"downloads_uploads_clear": """
QPushButton {
color: #3f7fcf;
}
""",
"download_uploads_indicator": """
QLabel {
color: #ffffff;
background-color: #f44449;
font-weight: bold;
font-size: 10px;
padding: 2px;
border-radius: 7px;
text-align: center;
}""",
"downloads_uploads_progress_bar": """
QProgressBar {
border: 1px solid #4e064f;
background-color: #ffffff !important;
text-align: center;
color: #9b9b9b;
font-size: 14px;
}
QProgressBar::chunk {
background-color: #4e064f;
width: 10px;
}""",
"history_individual_file_timestamp_label": """
QLabel {
color: #666666;
}""",
"history_individual_file_status_code_label_2xx": """
QLabel {
color: #008800;
}""",
"history_individual_file_status_code_label_4xx": """
QLabel {
color: #cc0000;
}""",
# Share mode and child widget styles
"share_zip_progess_bar": """
QProgressBar {
border: 1px solid #4e064f;
background-color: #ffffff !important;
text-align: center;
color: #9b9b9b;
}
QProgressBar::chunk {
border: 0px;
background-color: #4e064f;
width: 10px;
}""",
"share_filesize_warning": """
QLabel {
padding: 10px 0;
font-weight: bold;
color: #333333;
}
""",
"share_file_selection_drop_here_label": """
QLabel {
color: #999999;
}""",
"share_file_selection_drop_count_label": """
QLabel {
color: #ffffff;
background-color: #f44449;
font-weight: bold;
padding: 5px 10px;
border-radius: 10px;
}""",
"share_file_list_drag_enter": """
FileList {
border: 3px solid #538ad0;
}
""",
"share_file_list_drag_leave": """
FileList {
border: none;
}
""",
"share_file_list_item_size": """
QLabel {
color: #666666;
font-size: 11px;
}""",
# Receive mode and child widget styles
"receive_file": """
QWidget {
background-color: #ffffff;
}
""",
"receive_file_size": """
QLabel {
color: #666666;
font-size: 11px;
}""",
# Settings dialog
"settings_version": """
QLabel {
color: #666666;
}""",
"settings_tor_status": """
QLabel {
background-color: #ffffff;
color: #000000;
padding: 10px;
}""",
"settings_whats_this": """
QLabel {
font-size: 12px;
}""",
"settings_connect_to_tor": """
QLabel {
font-style: italic;
}""",
}
@staticmethod
def random_string(num_bytes, output_len=None):
"""

View file

@ -30,6 +30,7 @@ from onionshare.common import Common
from onionshare.onion import Onion
from onionshare.onionshare import OnionShare
from .gui_common import GuiCommon
from .widgets import Alert
from .main_window import MainWindow
@ -61,7 +62,7 @@ def main():
The main() function implements all of the logic that the GUI version of onionshare uses.
"""
common = Common()
common.define_css()
common.gui = GuiCommon(common)
# Display OnionShare banner
print(f"OnionShare {common.version} | https://onionshare.org/")

View file

@ -0,0 +1,254 @@
# -*- coding: utf-8 -*-
"""
OnionShare | https://onionshare.org/
Copyright (C) 2014-2018 Micah Lee <micah@micahflee.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
class GuiCommon:
"""
The shared code for all of the OnionShare GUI.
"""
def __init__(self, common):
self.common = common
self.css = {
# OnionShareGui styles
"mode_switcher_selected_style": """
QPushButton {
color: #ffffff;
background-color: #4e064f;
border: 0;
border-right: 1px solid #69266b;
font-weight: bold;
border-radius: 0;
}""",
"mode_switcher_unselected_style": """
QPushButton {
color: #ffffff;
background-color: #601f61;
border: 0;
font-weight: normal;
border-radius: 0;
}""",
"settings_button": """
QPushButton {
background-color: #601f61;
border: 0;
border-left: 1px solid #69266b;
border-radius: 0;
}""",
"server_status_indicator_label": """
QLabel {
font-style: italic;
color: #666666;
padding: 2px;
}""",
"status_bar": """
QStatusBar {
font-style: italic;
color: #666666;
}
QStatusBar::item {
border: 0px;
}""",
# Common styles between modes and their child widgets
"mode_info_label": """
QLabel {
font-size: 12px;
color: #666666;
}
""",
"server_status_url": """
QLabel {
background-color: #ffffff;
color: #000000;
padding: 10px;
border: 1px solid #666666;
font-size: 12px;
}
""",
"server_status_url_buttons": """
QPushButton {
color: #3f7fcf;
}
""",
"server_status_button_stopped": """
QPushButton {
background-color: #5fa416;
color: #ffffff;
padding: 10px;
border: 0;
border-radius: 5px;
}""",
"server_status_button_working": """
QPushButton {
background-color: #4c8211;
color: #ffffff;
padding: 10px;
border: 0;
border-radius: 5px;
font-style: italic;
}""",
"server_status_button_started": """
QPushButton {
background-color: #d0011b;
color: #ffffff;
padding: 10px;
border: 0;
border-radius: 5px;
}""",
"downloads_uploads_empty": """
QWidget {
background-color: #ffffff;
border: 1px solid #999999;
}
QWidget QLabel {
background-color: none;
border: 0px;
}
""",
"downloads_uploads_empty_text": """
QLabel {
color: #999999;
}""",
"downloads_uploads_label": """
QLabel {
font-weight: bold;
font-size 14px;
text-align: center;
background-color: none;
border: none;
}""",
"downloads_uploads_clear": """
QPushButton {
color: #3f7fcf;
}
""",
"download_uploads_indicator": """
QLabel {
color: #ffffff;
background-color: #f44449;
font-weight: bold;
font-size: 10px;
padding: 2px;
border-radius: 7px;
text-align: center;
}""",
"downloads_uploads_progress_bar": """
QProgressBar {
border: 1px solid #4e064f;
background-color: #ffffff !important;
text-align: center;
color: #9b9b9b;
font-size: 14px;
}
QProgressBar::chunk {
background-color: #4e064f;
width: 10px;
}""",
"history_individual_file_timestamp_label": """
QLabel {
color: #666666;
}""",
"history_individual_file_status_code_label_2xx": """
QLabel {
color: #008800;
}""",
"history_individual_file_status_code_label_4xx": """
QLabel {
color: #cc0000;
}""",
# Share mode and child widget styles
"share_zip_progess_bar": """
QProgressBar {
border: 1px solid #4e064f;
background-color: #ffffff !important;
text-align: center;
color: #9b9b9b;
}
QProgressBar::chunk {
border: 0px;
background-color: #4e064f;
width: 10px;
}""",
"share_filesize_warning": """
QLabel {
padding: 10px 0;
font-weight: bold;
color: #333333;
}
""",
"share_file_selection_drop_here_label": """
QLabel {
color: #999999;
}""",
"share_file_selection_drop_count_label": """
QLabel {
color: #ffffff;
background-color: #f44449;
font-weight: bold;
padding: 5px 10px;
border-radius: 10px;
}""",
"share_file_list_drag_enter": """
FileList {
border: 3px solid #538ad0;
}
""",
"share_file_list_drag_leave": """
FileList {
border: none;
}
""",
"share_file_list_item_size": """
QLabel {
color: #666666;
font-size: 11px;
}""",
# Receive mode and child widget styles
"receive_file": """
QWidget {
background-color: #ffffff;
}
""",
"receive_file_size": """
QLabel {
color: #666666;
font-size: 11px;
}""",
# Settings dialog
"settings_version": """
QLabel {
color: #666666;
}""",
"settings_tor_status": """
QLabel {
background-color: #ffffff;
color: #000000;
padding: 10px;
}""",
"settings_whats_this": """
QLabel {
font-size: 12px;
}""",
"settings_connect_to_tor": """
QLabel {
font-style: italic;
}""",
}

View file

@ -36,8 +36,7 @@ from .server_status import ServerStatus
class MainWindow(QtWidgets.QMainWindow):
"""
MainWindow is the main window for the GUI that contains all of the
GUI elements.
MainWindow is the OnionShare main window, which contains the GUI elements, including all open tabs
"""
MODE_SHARE = "share"
@ -121,7 +120,7 @@ class MainWindow(QtWidgets.QMainWindow):
QtGui.QIcon(self.common.get_resource_path("images/settings.png"))
)
self.settings_button.clicked.connect(self.open_settings)
self.settings_button.setStyleSheet(self.common.css["settings_button"])
self.settings_button.setStyleSheet(self.common.gui.css["settings_button"])
mode_switcher_layout = QtWidgets.QHBoxLayout()
mode_switcher_layout.setSpacing(0)
mode_switcher_layout.addWidget(self.share_mode_button)
@ -143,7 +142,7 @@ class MainWindow(QtWidgets.QMainWindow):
self.server_status_image_label.setFixedWidth(20)
self.server_status_label = QtWidgets.QLabel("")
self.server_status_label.setStyleSheet(
self.common.css["server_status_indicator_label"]
self.common.gui.css["server_status_indicator_label"]
)
server_status_indicator_layout = QtWidgets.QHBoxLayout()
server_status_indicator_layout.addWidget(self.server_status_image_label)
@ -154,7 +153,7 @@ class MainWindow(QtWidgets.QMainWindow):
# Status bar
self.status_bar = QtWidgets.QStatusBar()
self.status_bar.setSizeGripEnabled(False)
self.status_bar.setStyleSheet(self.common.css["status_bar"])
self.status_bar.setStyleSheet(self.common.gui.css["status_bar"])
self.status_bar.addPermanentWidget(self.server_status_indicator)
self.setStatusBar(self.status_bar)
@ -299,13 +298,13 @@ class MainWindow(QtWidgets.QMainWindow):
# and show and hide widgets to switch modes
if self.mode == self.MODE_SHARE:
self.share_mode_button.setStyleSheet(
self.common.css["mode_switcher_selected_style"]
self.common.gui.css["mode_switcher_selected_style"]
)
self.receive_mode_button.setStyleSheet(
self.common.css["mode_switcher_unselected_style"]
self.common.gui.css["mode_switcher_unselected_style"]
)
self.website_mode_button.setStyleSheet(
self.common.css["mode_switcher_unselected_style"]
self.common.gui.css["mode_switcher_unselected_style"]
)
self.receive_mode.hide()
@ -313,13 +312,13 @@ class MainWindow(QtWidgets.QMainWindow):
self.website_mode.hide()
elif self.mode == self.MODE_WEBSITE:
self.share_mode_button.setStyleSheet(
self.common.css["mode_switcher_unselected_style"]
self.common.gui.css["mode_switcher_unselected_style"]
)
self.receive_mode_button.setStyleSheet(
self.common.css["mode_switcher_unselected_style"]
self.common.gui.css["mode_switcher_unselected_style"]
)
self.website_mode_button.setStyleSheet(
self.common.css["mode_switcher_selected_style"]
self.common.gui.css["mode_switcher_selected_style"]
)
self.receive_mode.hide()
@ -327,13 +326,13 @@ class MainWindow(QtWidgets.QMainWindow):
self.website_mode.show()
else:
self.share_mode_button.setStyleSheet(
self.common.css["mode_switcher_unselected_style"]
self.common.gui.css["mode_switcher_unselected_style"]
)
self.receive_mode_button.setStyleSheet(
self.common.css["mode_switcher_selected_style"]
self.common.gui.css["mode_switcher_selected_style"]
)
self.website_mode_button.setStyleSheet(
self.common.css["mode_switcher_unselected_style"]
self.common.gui.css["mode_switcher_unselected_style"]
)
self.share_mode.hide()

View file

@ -50,7 +50,9 @@ class DropHereLabel(QtWidgets.QLabel):
)
else:
self.setText(strings._("gui_drag_and_drop"))
self.setStyleSheet(self.common.css["share_file_selection_drop_here_label"])
self.setStyleSheet(
self.common.gui.css["share_file_selection_drop_here_label"]
)
self.hide()
@ -75,7 +77,7 @@ class DropCountLabel(QtWidgets.QLabel):
self.setAcceptDrops(True)
self.setAlignment(QtCore.Qt.AlignCenter)
self.setText(strings._("gui_drag_and_drop"))
self.setStyleSheet(self.common.css["share_file_selection_drop_count_label"])
self.setStyleSheet(self.common.gui.css["share_file_selection_drop_count_label"])
self.hide()
def dragEnterEvent(self, event):
@ -169,7 +171,7 @@ class FileList(QtWidgets.QListWidget):
dragEnterEvent for dragging files and directories into the widget.
"""
if event.mimeData().hasUrls:
self.setStyleSheet(self.common.css["share_file_list_drag_enter"])
self.setStyleSheet(self.common.gui.css["share_file_list_drag_enter"])
count = len(event.mimeData().urls())
self.drop_count.setText(f"+{count}")
@ -189,7 +191,7 @@ class FileList(QtWidgets.QListWidget):
"""
dragLeaveEvent for dragging files and directories into the widget.
"""
self.setStyleSheet(self.common.css["share_file_list_drag_leave"])
self.setStyleSheet(self.common.gui.css["share_file_list_drag_leave"])
self.drop_count.hide()
event.accept()
self.update()
@ -217,7 +219,7 @@ class FileList(QtWidgets.QListWidget):
else:
event.ignore()
self.setStyleSheet(self.common.css["share_file_list_drag_leave"])
self.setStyleSheet(self.common.gui.css["share_file_list_drag_leave"])
self.drop_count.hide()
self.files_dropped.emit()
@ -254,7 +256,7 @@ class FileList(QtWidgets.QListWidget):
# Item's filename attribute and size labels
item.filename = filename
item_size = QtWidgets.QLabel(size_readable)
item_size.setStyleSheet(self.common.css["share_file_list_item_size"])
item_size.setStyleSheet(self.common.gui.css["share_file_list_item_size"])
item.basename = os.path.basename(filename.rstrip("/"))
# Use the basename as the method with which to sort the list

View file

@ -122,7 +122,7 @@ class ShareHistoryItem(HistoryItem):
self.progress_bar.setMaximum(total_bytes)
self.progress_bar.setValue(0)
self.progress_bar.setStyleSheet(
self.common.css["downloads_uploads_progress_bar"]
self.common.gui.css["downloads_uploads_progress_bar"]
)
self.progress_bar.total_bytes = total_bytes
@ -193,7 +193,7 @@ class ReceiveHistoryItemFile(QtWidgets.QWidget):
# File size label
self.filesize_label = QtWidgets.QLabel()
self.filesize_label.setStyleSheet(self.common.css["receive_file_size"])
self.filesize_label.setStyleSheet(self.common.gui.css["receive_file_size"])
self.filesize_label.hide()
# Folder button
@ -290,14 +290,14 @@ class ReceiveHistoryItem(HistoryItem):
self.progress_bar.setMinimum(0)
self.progress_bar.setValue(0)
self.progress_bar.setStyleSheet(
self.common.css["downloads_uploads_progress_bar"]
self.common.gui.css["downloads_uploads_progress_bar"]
)
# This layout contains file widgets
self.files_layout = QtWidgets.QVBoxLayout()
self.files_layout.setContentsMargins(0, 0, 0, 0)
files_widget = QtWidgets.QWidget()
files_widget.setStyleSheet(self.common.css["receive_file"])
files_widget.setStyleSheet(self.common.gui.css["receive_file"])
files_widget.setLayout(self.files_layout)
# Layout
@ -405,7 +405,7 @@ class IndividualFileHistoryItem(HistoryItem):
self.started_dt.strftime("%b %d, %I:%M%p")
)
self.timestamp_label.setStyleSheet(
self.common.css["history_individual_file_timestamp_label"]
self.common.gui.css["history_individual_file_timestamp_label"]
)
self.path_label = QtWidgets.QLabel(self.path)
self.status_code_label = QtWidgets.QLabel()
@ -417,7 +417,7 @@ class IndividualFileHistoryItem(HistoryItem):
self.progress_bar.setAlignment(QtCore.Qt.AlignHCenter)
self.progress_bar.setValue(0)
self.progress_bar.setStyleSheet(
self.common.css["downloads_uploads_progress_bar"]
self.common.gui.css["downloads_uploads_progress_bar"]
)
# Text layout
@ -438,11 +438,11 @@ class IndividualFileHistoryItem(HistoryItem):
self.status_code_label.setText(str(data["status_code"]))
if data["status_code"] >= 200 and data["status_code"] < 300:
self.status_code_label.setStyleSheet(
self.common.css["history_individual_file_status_code_label_2xx"]
self.common.gui.css["history_individual_file_status_code_label_2xx"]
)
if data["status_code"] >= 400 and data["status_code"] < 500:
self.status_code_label.setStyleSheet(
self.common.css["history_individual_file_status_code_label_4xx"]
self.common.gui.css["history_individual_file_status_code_label_4xx"]
)
self.status = HistoryItem.STATUS_FINISHED
self.progress_bar.hide()
@ -464,7 +464,7 @@ class IndividualFileHistoryItem(HistoryItem):
if downloaded_bytes == self.progress_bar.total_bytes:
self.status_code_label.setText("200")
self.status_code_label.setStyleSheet(
self.common.css["history_individual_file_status_code_label_2xx"]
self.common.gui.css["history_individual_file_status_code_label_2xx"]
)
self.progress_bar.hide()
self.status = HistoryItem.STATUS_FINISHED
@ -586,19 +586,19 @@ class History(QtWidgets.QWidget):
# In progress, completed, and requests labels
self.in_progress_label = QtWidgets.QLabel()
self.in_progress_label.setStyleSheet(self.common.css["mode_info_label"])
self.in_progress_label.setStyleSheet(self.common.gui.css["mode_info_label"])
self.completed_label = QtWidgets.QLabel()
self.completed_label.setStyleSheet(self.common.css["mode_info_label"])
self.completed_label.setStyleSheet(self.common.gui.css["mode_info_label"])
self.requests_label = QtWidgets.QLabel()
self.requests_label.setStyleSheet(self.common.css["mode_info_label"])
self.requests_label.setStyleSheet(self.common.gui.css["mode_info_label"])
# Header
self.header_label = QtWidgets.QLabel(header_text)
self.header_label.setStyleSheet(self.common.css["downloads_uploads_label"])
self.header_label.setStyleSheet(self.common.gui.css["downloads_uploads_label"])
self.clear_button = QtWidgets.QPushButton(
strings._("gui_all_modes_clear_history")
)
self.clear_button.setStyleSheet(self.common.css["downloads_uploads_clear"])
self.clear_button.setStyleSheet(self.common.gui.css["downloads_uploads_clear"])
self.clear_button.setFlat(True)
self.clear_button.clicked.connect(self.reset)
header_layout = QtWidgets.QHBoxLayout()
@ -615,14 +615,16 @@ class History(QtWidgets.QWidget):
self.empty_image.setPixmap(empty_image)
self.empty_text = QtWidgets.QLabel(empty_text)
self.empty_text.setAlignment(QtCore.Qt.AlignCenter)
self.empty_text.setStyleSheet(self.common.css["downloads_uploads_empty_text"])
self.empty_text.setStyleSheet(
self.common.gui.css["downloads_uploads_empty_text"]
)
empty_layout = QtWidgets.QVBoxLayout()
empty_layout.addStretch()
empty_layout.addWidget(self.empty_image)
empty_layout.addWidget(self.empty_text)
empty_layout.addStretch()
self.empty = QtWidgets.QWidget()
self.empty.setStyleSheet(self.common.css["downloads_uploads_empty"])
self.empty.setStyleSheet(self.common.gui.css["downloads_uploads_empty"])
self.empty.setLayout(empty_layout)
# When there are items
@ -759,7 +761,7 @@ class ToggleHistory(QtWidgets.QPushButton):
self.indicator_count = 0
self.indicator_label = QtWidgets.QLabel(parent=self)
self.indicator_label.setStyleSheet(
self.common.css["download_uploads_indicator"]
self.common.gui.css["download_uploads_indicator"]
)
self.update_indicator()

View file

@ -69,7 +69,9 @@ class ShareMode(Mode):
# Filesize warning
self.filesize_warning = QtWidgets.QLabel()
self.filesize_warning.setWordWrap(True)
self.filesize_warning.setStyleSheet(self.common.css["share_filesize_warning"])
self.filesize_warning.setStyleSheet(
self.common.gui.css["share_filesize_warning"]
)
self.filesize_warning.hide()
# Download history
@ -372,7 +374,7 @@ class ZipProgressBar(QtWidgets.QProgressBar):
self.setMinimumWidth(200)
self.setValue(0)
self.setFormat(strings._("zip_progress_bar_format"))
self.setStyleSheet(self.common.css["share_zip_progess_bar"])
self.setStyleSheet(self.common.gui.css["share_zip_progess_bar"])
self._total_files_size = total_files_size
self._processed_size = 0

View file

@ -71,7 +71,9 @@ class WebsiteMode(Mode):
# Filesize warning
self.filesize_warning = QtWidgets.QLabel()
self.filesize_warning.setWordWrap(True)
self.filesize_warning.setStyleSheet(self.common.css["share_filesize_warning"])
self.filesize_warning.setStyleSheet(
self.common.gui.css["share_filesize_warning"]
)
self.filesize_warning.hide()
# Download history

View file

@ -151,11 +151,13 @@ class ServerStatus(QtWidgets.QWidget):
self.url.setFont(url_font)
self.url.setWordWrap(True)
self.url.setMinimumSize(self.url.sizeHint())
self.url.setStyleSheet(self.common.css["server_status_url"])
self.url.setStyleSheet(self.common.gui.css["server_status_url"])
self.copy_url_button = QtWidgets.QPushButton(strings._("gui_copy_url"))
self.copy_url_button.setFlat(True)
self.copy_url_button.setStyleSheet(self.common.css["server_status_url_buttons"])
self.copy_url_button.setStyleSheet(
self.common.gui.css["server_status_url_buttons"]
)
self.copy_url_button.setMinimumHeight(65)
self.copy_url_button.clicked.connect(self.copy_url)
self.copy_hidservauth_button = QtWidgets.QPushButton(
@ -163,7 +165,7 @@ class ServerStatus(QtWidgets.QWidget):
)
self.copy_hidservauth_button.setFlat(True)
self.copy_hidservauth_button.setStyleSheet(
self.common.css["server_status_url_buttons"]
self.common.gui.css["server_status_url_buttons"]
)
self.copy_hidservauth_button.clicked.connect(self.copy_hidservauth)
url_buttons_layout = QtWidgets.QHBoxLayout()
@ -329,7 +331,7 @@ class ServerStatus(QtWidgets.QWidget):
if self.status == self.STATUS_STOPPED:
self.server_button.setStyleSheet(
self.common.css["server_status_button_stopped"]
self.common.gui.css["server_status_button_stopped"]
)
self.server_button.setEnabled(True)
if self.mode == ServerStatus.MODE_SHARE:
@ -345,7 +347,7 @@ class ServerStatus(QtWidgets.QWidget):
self.autostop_timer_container.show()
elif self.status == self.STATUS_STARTED:
self.server_button.setStyleSheet(
self.common.css["server_status_button_started"]
self.common.gui.css["server_status_button_started"]
)
self.server_button.setEnabled(True)
if self.mode == ServerStatus.MODE_SHARE:
@ -367,7 +369,7 @@ class ServerStatus(QtWidgets.QWidget):
)
elif self.status == self.STATUS_WORKING:
self.server_button.setStyleSheet(
self.common.css["server_status_button_working"]
self.common.gui.css["server_status_button_working"]
)
self.server_button.setEnabled(True)
if self.autostart_timer_datetime:
@ -385,7 +387,7 @@ class ServerStatus(QtWidgets.QWidget):
self.autostop_timer_container.hide()
else:
self.server_button.setStyleSheet(
self.common.css["server_status_button_working"]
self.common.gui.css["server_status_button_working"]
)
self.server_button.setEnabled(False)
self.server_button.setText(strings._("gui_please_wait"))

View file

@ -76,7 +76,7 @@ class SettingsDialog(QtWidgets.QDialog):
"https://github.com/micahflee/onionshare/wiki/Public-Mode"
)
)
public_mode_label.setStyleSheet(self.common.css["settings_whats_this"])
public_mode_label.setStyleSheet(self.common.gui.css["settings_whats_this"])
public_mode_label.setTextInteractionFlags(QtCore.Qt.TextBrowserInteraction)
public_mode_label.setOpenExternalLinks(True)
public_mode_label.setMinimumSize(public_mode_label.sizeHint())
@ -99,7 +99,7 @@ class SettingsDialog(QtWidgets.QDialog):
"https://github.com/micahflee/onionshare/wiki/Using-the-Auto-Start-Timer"
)
)
autostart_timer_label.setStyleSheet(self.common.css["settings_whats_this"])
autostart_timer_label.setStyleSheet(self.common.gui.css["settings_whats_this"])
autostart_timer_label.setTextInteractionFlags(QtCore.Qt.TextBrowserInteraction)
autostart_timer_label.setOpenExternalLinks(True)
autostart_timer_label.setMinimumSize(public_mode_label.sizeHint())
@ -122,7 +122,7 @@ class SettingsDialog(QtWidgets.QDialog):
"https://github.com/micahflee/onionshare/wiki/Using-the-Auto-Stop-Timer"
)
)
autostop_timer_label.setStyleSheet(self.common.css["settings_whats_this"])
autostop_timer_label.setStyleSheet(self.common.gui.css["settings_whats_this"])
autostop_timer_label.setTextInteractionFlags(QtCore.Qt.TextBrowserInteraction)
autostop_timer_label.setOpenExternalLinks(True)
autostop_timer_label.setMinimumSize(public_mode_label.sizeHint())
@ -149,7 +149,7 @@ class SettingsDialog(QtWidgets.QDialog):
strings._("gui_connect_to_tor_for_onion_settings")
)
self.connect_to_tor_label.setStyleSheet(
self.common.css["settings_connect_to_tor"]
self.common.gui.css["settings_connect_to_tor"]
)
# Whether or not to save the Onion private key for reuse (persistent URL mode)
@ -163,7 +163,7 @@ class SettingsDialog(QtWidgets.QDialog):
"https://github.com/micahflee/onionshare/wiki/Using-a-Persistent-URL"
)
)
save_private_key_label.setStyleSheet(self.common.css["settings_whats_this"])
save_private_key_label.setStyleSheet(self.common.gui.css["settings_whats_this"])
save_private_key_label.setTextInteractionFlags(QtCore.Qt.TextBrowserInteraction)
save_private_key_label.setOpenExternalLinks(True)
save_private_key_layout = QtWidgets.QHBoxLayout()
@ -188,7 +188,7 @@ class SettingsDialog(QtWidgets.QDialog):
"https://github.com/micahflee/onionshare/wiki/Legacy-Addresses"
)
)
use_legacy_v2_onions_label.setStyleSheet(self.common.css["settings_whats_this"])
use_legacy_v2_onions_label.setStyleSheet(self.common.gui.css["settings_whats_this"])
use_legacy_v2_onions_label.setTextInteractionFlags(
QtCore.Qt.TextBrowserInteraction
)
@ -211,7 +211,7 @@ class SettingsDialog(QtWidgets.QDialog):
"https://github.com/micahflee/onionshare/wiki/Stealth-Onion-Services"
)
)
use_stealth_label.setStyleSheet(self.common.css["settings_whats_this"])
use_stealth_label.setStyleSheet(self.common.gui.css["settings_whats_this"])
use_stealth_label.setTextInteractionFlags(QtCore.Qt.TextBrowserInteraction)
use_stealth_label.setOpenExternalLinks(True)
use_stealth_label.setMinimumSize(use_stealth_label.sizeHint())
@ -305,7 +305,7 @@ class SettingsDialog(QtWidgets.QDialog):
"https://github.com/micahflee/onionshare/wiki/Content-Security-Policy"
)
)
csp_header_label.setStyleSheet(self.common.css["settings_whats_this"])
csp_header_label.setStyleSheet(self.common.gui.css["settings_whats_this"])
csp_header_label.setTextInteractionFlags(QtCore.Qt.TextBrowserInteraction)
csp_header_label.setOpenExternalLinks(True)
csp_header_label.setMinimumSize(csp_header_label.sizeHint())
@ -673,7 +673,7 @@ class SettingsDialog(QtWidgets.QDialog):
)
self.cancel_button.clicked.connect(self.cancel_clicked)
version_label = QtWidgets.QLabel(f"OnionShare {self.common.version}")
version_label.setStyleSheet(self.common.css["settings_version"])
version_label.setStyleSheet(self.common.gui.css["settings_version"])
self.help_button = QtWidgets.QPushButton(strings._("gui_settings_button_help"))
self.help_button.clicked.connect(self.help_clicked)
buttons_layout = QtWidgets.QHBoxLayout()
@ -685,7 +685,7 @@ class SettingsDialog(QtWidgets.QDialog):
# Tor network connection status
self.tor_status = QtWidgets.QLabel()
self.tor_status.setStyleSheet(self.common.css["settings_tor_status"])
self.tor_status.setStyleSheet(self.common.gui.css["settings_tor_status"])
self.tor_status.hide()
# Layout