diff options
Diffstat (limited to 'desktop/src/onionshare/tab/mode/mode_settings_widget.py')
-rw-r--r-- | desktop/src/onionshare/tab/mode/mode_settings_widget.py | 50 |
1 files changed, 48 insertions, 2 deletions
diff --git a/desktop/src/onionshare/tab/mode/mode_settings_widget.py b/desktop/src/onionshare/tab/mode/mode_settings_widget.py index a3a315c9..9f55dbaf 100644 --- a/desktop/src/onionshare/tab/mode/mode_settings_widget.py +++ b/desktop/src/onionshare/tab/mode/mode_settings_widget.py @@ -23,7 +23,7 @@ from PySide2 import QtCore, QtWidgets from ... import strings -class ModeSettingsWidget(QtWidgets.QWidget): +class ModeSettingsWidget(QtWidgets.QScrollArea): """ All of the common settings for each mode are in this widget """ @@ -57,6 +57,16 @@ class ModeSettingsWidget(QtWidgets.QWidget): else: self.public_checkbox.setCheckState(QtCore.Qt.Unchecked) + # Title + title_label = QtWidgets.QLabel(strings._("mode_settings_title_label")) + self.title_lineedit = QtWidgets.QLineEdit() + self.title_lineedit.editingFinished.connect(self.title_editing_finished) + if self.settings.get("general", "title"): + self.title_lineedit.setText(self.settings.get("general", "title")) + title_layout = QtWidgets.QHBoxLayout() + title_layout.addWidget(title_label) + title_layout.addWidget(self.title_lineedit) + # Whether or not to use an auto-start timer self.autostart_timer_checkbox = QtWidgets.QCheckBox() self.autostart_timer_checkbox.clicked.connect( @@ -152,6 +162,7 @@ class ModeSettingsWidget(QtWidgets.QWidget): # Advanced group itself advanced_layout = QtWidgets.QVBoxLayout() advanced_layout.setContentsMargins(0, 0, 0, 0) + advanced_layout.addLayout(title_layout) advanced_layout.addLayout(autostart_timer_layout) advanced_layout.addLayout(autostop_timer_layout) advanced_layout.addWidget(self.legacy_checkbox) @@ -166,7 +177,15 @@ class ModeSettingsWidget(QtWidgets.QWidget): layout.addWidget(self.public_checkbox) layout.addWidget(self.advanced_widget) layout.addWidget(self.toggle_advanced_button) - self.setLayout(layout) + layout.addStretch() + main_widget = QtWidgets.QWidget() + main_widget.setLayout(layout) + + self.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) + self.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded) + self.setWidgetResizable(True) + self.setFrameShape(QtWidgets.QFrame.NoFrame) + self.setWidget(main_widget) self.update_ui() @@ -203,6 +222,33 @@ class ModeSettingsWidget(QtWidgets.QWidget): self.legacy_checkbox.hide() self.client_auth_checkbox.hide() + def title_editing_finished(self): + if self.title_lineedit.text().strip() == "": + self.title_lineedit.setText("") + self.settings.set("general", "title", None) + if self.tab.mode == self.common.gui.MODE_SHARE: + self.tab.change_title.emit( + self.tab.tab_id, strings._("gui_tab_name_share") + ) + elif self.tab.mode == self.common.gui.MODE_RECEIVE: + self.tab.change_title.emit( + self.tab.tab_id, strings._("gui_tab_name_receive") + ) + elif self.tab.mode == self.common.gui.MODE_WEBSITE: + self.tab.change_title.emit( + self.tab.tab_id, strings._("gui_tab_name_website") + ) + elif self.tab.mode == self.common.gui.MODE_CHAT: + self.tab.change_title.emit( + self.tab.tab_id, strings._("gui_tab_name_chat") + ) + elif self.tab_mode is None: + pass + else: + title = self.title_lineedit.text() + self.settings.set("general", "title", title) + self.tab.change_title.emit(self.tab.tab_id, title) + def persistent_checkbox_clicked(self): self.settings.set("persistent", "enabled", self.persistent_checkbox.isChecked()) self.settings.set("persistent", "mode", self.tab.mode) |