diff options
author | Saptak S <saptak013@gmail.com> | 2020-03-09 17:44:00 +0530 |
---|---|---|
committer | Saptak S <saptak013@gmail.com> | 2020-03-09 17:44:00 +0530 |
commit | 819e406d46529d83cae8cf7bbadf46f0396c5a53 (patch) | |
tree | 4bace1b363c9252daff1790e011b200f191d93be /onionshare_gui/tab/tab.py | |
parent | 2c938fd777d24687e38ff53a6d2e8c317cecef82 (diff) | |
download | onionshare-819e406d46529d83cae8cf7bbadf46f0396c5a53.tar.gz onionshare-819e406d46529d83cae8cf7bbadf46f0396c5a53.zip |
Create GUI for onionshare chat mode with the tab workflow
Diffstat (limited to 'onionshare_gui/tab/tab.py')
-rw-r--r-- | onionshare_gui/tab/tab.py | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/onionshare_gui/tab/tab.py b/onionshare_gui/tab/tab.py index aa4518b5..fdad4898 100644 --- a/onionshare_gui/tab/tab.py +++ b/onionshare_gui/tab/tab.py @@ -28,6 +28,7 @@ from onionshare.mode_settings import ModeSettings from .mode.share_mode import ShareMode from .mode.receive_mode import ReceiveMode from .mode.website_mode import WebsiteMode +from .mode.chat_mode import ChatMode from .server_status import ServerStatus @@ -93,6 +94,16 @@ class Tab(QtWidgets.QWidget): ) website_description.setWordWrap(True) + self.chat_button = QtWidgets.QPushButton( + strings._("gui_new_tab_chat_button") + ) + self.chat_button.setStyleSheet(self.common.gui.css["mode_new_tab_button"]) + self.chat_button.clicked.connect(self.chat_mode_clicked) + chat_description = QtWidgets.QLabel( + strings._("gui_new_tab_chat_description") + ) + chat_description.setWordWrap(True) + new_tab_layout = QtWidgets.QVBoxLayout() new_tab_layout.addStretch(1) new_tab_layout.addWidget(self.share_button) @@ -103,6 +114,9 @@ class Tab(QtWidgets.QWidget): new_tab_layout.addSpacing(50) new_tab_layout.addWidget(self.website_button) new_tab_layout.addWidget(website_description) + new_tab_layout.addSpacing(50) + new_tab_layout.addWidget(self.chat_button) + new_tab_layout.addWidget(chat_description) new_tab_layout.addStretch(3) new_tab_inner = QtWidgets.QWidget() @@ -278,6 +292,43 @@ class Tab(QtWidgets.QWidget): self.update_server_status_indicator() self.timer.start(500) + def chat_mode_clicked(self): + self.common.log("Tab", "chat_mode_clicked") + self.mode = self.common.gui.MODE_CHAT + self.new_tab.hide() + + self.chat_mode = ChatMode(self) + self.chat_mode.change_persistent.connect(self.change_persistent) + + self.layout.addWidget(self.chat_mode) + self.chat_mode.show() + + self.chat_mode.init() + self.chat_mode.server_status.server_started.connect( + self.update_server_status_indicator + ) + self.chat_mode.server_status.server_stopped.connect( + self.update_server_status_indicator + ) + self.chat_mode.start_server_finished.connect( + self.update_server_status_indicator + ) + self.chat_mode.stop_server_finished.connect( + self.update_server_status_indicator + ) + self.chat_mode.stop_server_finished.connect(self.stop_server_finished) + self.chat_mode.start_server_finished.connect(self.clear_message) + self.chat_mode.server_status.button_clicked.connect(self.clear_message) + self.chat_mode.server_status.url_copied.connect(self.copy_url) + self.chat_mode.server_status.hidservauth_copied.connect( + self.copy_hidservauth + ) + + self.change_title.emit(self.tab_id, strings._("gui_new_tab_chat_button")) + + self.update_server_status_indicator() + self.timer.start(500) + def update_server_status_indicator(self): # Set the status image if self.mode == self.common.gui.MODE_SHARE: |