Commit c27ec4c5 authored by Dan Pascu's avatar Dan Pascu

Reorganized preferences

parent 0570b69f
...@@ -1146,7 +1146,7 @@ class VideoWidget(VideoSurface, ui_class): ...@@ -1146,7 +1146,7 @@ class VideoWidget(VideoSurface, ui_class):
def _SH_ScreenshotsFolderActionTriggered(self, pos): def _SH_ScreenshotsFolderActionTriggered(self, pos):
settings = BlinkSettings() settings = BlinkSettings()
QDesktopServices.openUrl(QUrl.fromLocalFile(settings.video.screenshots_directory.normalized)) QDesktopServices.openUrl(QUrl.fromLocalFile(settings.screenshots_directory.normalized))
def _SH_DetachAnimationFinished(self): def _SH_DetachAnimationFinished(self):
if self.detach_animation.direction() == QPropertyAnimation.Backward: if self.detach_animation.direction() == QPropertyAnimation.Backward:
...@@ -2155,7 +2155,7 @@ class VideoScreenshot(object): ...@@ -2155,7 +2155,7 @@ class VideoScreenshot(object):
@classmethod @classmethod
def filename_generator(cls): def filename_generator(cls):
settings = BlinkSettings() settings = BlinkSettings()
name = os.path.join(settings.video.screenshots_directory.normalized, 'VideoCall-{:%Y%m%d-%H.%M.%S}'.format(datetime.now())) name = os.path.join(settings.screenshots_directory.normalized, 'VideoCall-{:%Y%m%d-%H.%M.%S}'.format(datetime.now()))
yield '%s.png' % name yield '%s.png' % name
for x in count(1): for x in count(1):
yield "%s-%d.png" % (name, x) yield "%s-%d.png" % (name, x)
......
...@@ -10,7 +10,7 @@ import sys ...@@ -10,7 +10,7 @@ import sys
from sipsimple.configuration import Setting, SettingsGroup, SettingsObject, SettingsObjectExtension from sipsimple.configuration import Setting, SettingsGroup, SettingsObject, SettingsObjectExtension
from sipsimple.configuration.datatypes import AudioCodecList, NonNegativeInteger, PositiveInteger, Path, SampleRate, VideoCodecList from sipsimple.configuration.datatypes import AudioCodecList, NonNegativeInteger, PositiveInteger, Path, SampleRate, VideoCodecList
from sipsimple.configuration.settings import AudioSettings, ChatSettings, EchoCancellerSettings, FileTransferSettings, LogsSettings, RTPSettings, TLSSettings from sipsimple.configuration.settings import AudioSettings, ChatSettings, EchoCancellerSettings, LogsSettings, RTPSettings, TLSSettings
from blink import __version__ from blink import __version__
from blink.configuration.datatypes import ApplicationDataPath, AuthorizationToken, GraphTimeScale, HTTPURL, IconDescriptor, SoundFile, PresenceState, PresenceStateList from blink.configuration.datatypes import ApplicationDataPath, AuthorizationToken, GraphTimeScale, HTTPURL, IconDescriptor, SoundFile, PresenceState, PresenceStateList
...@@ -41,10 +41,6 @@ class ChatSettingsExtension(ChatSettings): ...@@ -41,10 +41,6 @@ class ChatSettingsExtension(ChatSettings):
history_directory = Setting(type=ApplicationDataPath, default=ApplicationDataPath('history')) history_directory = Setting(type=ApplicationDataPath, default=ApplicationDataPath('history'))
class FileTransferSettingsExtension(FileTransferSettings):
directory = Setting(type=Path, default=Path('~/Downloads'))
class GoogleContactsSettings(SettingsGroup): class GoogleContactsSettings(SettingsGroup):
authorization_token = Setting(type=AuthorizationToken, default=None, nillable=True) authorization_token = Setting(type=AuthorizationToken, default=None, nillable=True)
username = Setting(type=unicode, default=None, nillable=True) username = Setting(type=unicode, default=None, nillable=True)
...@@ -82,7 +78,6 @@ class SIPSimpleSettingsExtension(SettingsObjectExtension): ...@@ -82,7 +78,6 @@ class SIPSimpleSettingsExtension(SettingsObjectExtension):
answering_machine = AnsweringMachineSettings answering_machine = AnsweringMachineSettings
audio = AudioSettingsExtension audio = AudioSettingsExtension
chat = ChatSettingsExtension chat = ChatSettingsExtension
file_transfer = FileTransferSettingsExtension
google_contacts = GoogleContactsSettings google_contacts = GoogleContactsSettings
logs = LogsSettingsExtension logs = LogsSettingsExtension
rtp = RTPSettingsExtension rtp = RTPSettingsExtension
...@@ -110,16 +105,11 @@ class ChatWindowSettings(SettingsGroup): ...@@ -110,16 +105,11 @@ class ChatWindowSettings(SettingsGroup):
class BlinkScreenSharingSettings(SettingsGroup): class BlinkScreenSharingSettings(SettingsGroup):
screenshots_directory = Setting(type=Path, default=Path('~/Downloads'))
scale = Setting(type=bool, default=True) scale = Setting(type=bool, default=True)
open_fullscreen = Setting(type=bool, default=False) open_fullscreen = Setting(type=bool, default=False)
open_viewonly = Setting(type=bool, default=False) open_viewonly = Setting(type=bool, default=False)
class BlinkVideoSettings(SettingsGroup):
screenshots_directory = Setting(type=Path, default=Path('~/Downloads'))
class BlinkPresenceSettings(SettingsGroup): class BlinkPresenceSettings(SettingsGroup):
current_state = Setting(type=PresenceState, default=PresenceState('Available')) current_state = Setting(type=PresenceState, default=PresenceState('Available'))
state_history = Setting(type=PresenceStateList, default=PresenceStateList()) state_history = Setting(type=PresenceStateList, default=PresenceStateList())
...@@ -133,5 +123,7 @@ class BlinkSettings(SettingsObject): ...@@ -133,5 +123,7 @@ class BlinkSettings(SettingsObject):
chat_window = ChatWindowSettings chat_window = ChatWindowSettings
presence = BlinkPresenceSettings presence = BlinkPresenceSettings
screen_sharing = BlinkScreenSharingSettings screen_sharing = BlinkScreenSharingSettings
video = BlinkVideoSettings
screenshots_directory = Setting(type=Path, default=Path('~/Downloads'))
transfers_directory = Setting(type=Path, default=Path('~/Downloads'))
...@@ -14,8 +14,7 @@ from application.python import Null ...@@ -14,8 +14,7 @@ from application.python import Null
from application.system import makedirs from application.system import makedirs
from zope.interface import implements from zope.interface import implements
from sipsimple.configuration.settings import SIPSimpleSettings from blink.configuration.settings import BlinkSettings
from blink.resources import Resources from blink.resources import Resources
from blink.sessions import FileTransferDelegate, FileTransferModel from blink.sessions import FileTransferDelegate, FileTransferModel
from blink.widgets.util import ContextMenuActions from blink.widgets.util import ContextMenuActions
...@@ -43,7 +42,7 @@ class FileTransferWindow(base_class, ui_class): ...@@ -43,7 +42,7 @@ class FileTransferWindow(base_class, ui_class):
self.actions.cancel_transfer = QAction("Cancel", self, triggered=self._AH_CancelTransfer) self.actions.cancel_transfer = QAction("Cancel", self, triggered=self._AH_CancelTransfer)
self.actions.retry_transfer = QAction("Retry", self, triggered=self._AH_RetryTransfer) self.actions.retry_transfer = QAction("Retry", self, triggered=self._AH_RetryTransfer)
self.actions.remove_entry = QAction("Remove From List", self, triggered=self._AH_RemoveEntry) self.actions.remove_entry = QAction("Remove From List", self, triggered=self._AH_RemoveEntry)
self.actions.open_downloads_folder = QAction("Open Downloads Folder", self, triggered=self._AH_OpenDownloadsFolder) self.actions.open_downloads_folder = QAction("Open Transfers Folder", self, triggered=self._AH_OpenTransfersFolder)
self.actions.clear_list = QAction("Clear List", self, triggered=self._AH_ClearList) self.actions.clear_list = QAction("Clear List", self, triggered=self._AH_ClearList)
self.model.itemAdded.connect(self.update_status) self.model.itemAdded.connect(self.update_status)
...@@ -55,9 +54,8 @@ class FileTransferWindow(base_class, ui_class): ...@@ -55,9 +54,8 @@ class FileTransferWindow(base_class, ui_class):
notification_center.add_observer(self, name='FileTransferDidEnd') notification_center.add_observer(self, name='FileTransferDidEnd')
def show(self, activate=True): def show(self, activate=True):
settings = SIPSimpleSettings() settings = BlinkSettings()
directory = settings.file_transfer.directory.normalized makedirs(settings.transfers_directory.normalized)
makedirs(directory)
self.setAttribute(Qt.WA_ShowWithoutActivating, not activate) self.setAttribute(Qt.WA_ShowWithoutActivating, not activate)
super(FileTransferWindow, self).show() super(FileTransferWindow, self).show()
self.raise_() self.raise_()
...@@ -130,10 +128,9 @@ class FileTransferWindow(base_class, ui_class): ...@@ -130,10 +128,9 @@ class FileTransferWindow(base_class, ui_class):
item = self.listview.selectedIndexes()[0].data(Qt.UserRole) item = self.listview.selectedIndexes()[0].data(Qt.UserRole)
self.model.removeItem(item) self.model.removeItem(item)
def _AH_OpenDownloadsFolder(self): def _AH_OpenTransfersFolder(self):
settings = SIPSimpleSettings() settings = BlinkSettings()
directory = settings.file_transfer.directory.normalized QDesktopServices.openUrl(QUrl.fromLocalFile(settings.transfers_directory.normalized))
QDesktopServices.openUrl(QUrl.fromLocalFile(directory))
def _AH_ClearList(self): def _AH_ClearList(self):
self.model.clear_ended() self.model.clear_ended()
......
...@@ -416,14 +416,14 @@ class MainWindow(base_class, ui_class): ...@@ -416,14 +416,14 @@ class MainWindow(base_class, ui_class):
QDesktopServices.openUrl(QUrl.fromLocalFile(directory)) QDesktopServices.openUrl(QUrl.fromLocalFile(directory))
def _AH_ReceivedFilesWindowActionTriggered(self, checked): def _AH_ReceivedFilesWindowActionTriggered(self, checked):
settings = SIPSimpleSettings() settings = BlinkSettings()
directory = settings.file_transfer.directory.normalized directory = settings.transfers_directory.normalized
makedirs(directory) makedirs(directory)
QDesktopServices.openUrl(QUrl.fromLocalFile(directory)) QDesktopServices.openUrl(QUrl.fromLocalFile(directory))
def _AH_ScreenshotsWindowActionTriggered(self, checked): def _AH_ScreenshotsWindowActionTriggered(self, checked):
settings = BlinkSettings() settings = BlinkSettings()
directory = settings.screen_sharing.screenshots_directory.normalized directory = settings.screenshots_directory.normalized
makedirs(directory) makedirs(directory)
QDesktopServices.openUrl(QUrl.fromLocalFile(directory)) QDesktopServices.openUrl(QUrl.fromLocalFile(directory))
......
...@@ -303,14 +303,10 @@ class PreferencesWindow(base_class, ui_class): ...@@ -303,14 +303,10 @@ class PreferencesWindow(base_class, ui_class):
self.traffic_units_button.clicked.connect(self._SH_TrafficUnitsButtonClicked) self.traffic_units_button.clicked.connect(self._SH_TrafficUnitsButtonClicked)
# Screen sharing # Screen sharing
self.screenshots_directory_browse_button.clicked.connect(self._SH_ScreenshotsDirectoryBrowseButtonClicked)
self.screen_sharing_scale_button.clicked.connect(self._SH_ScreenSharingScaleButtonClicked) self.screen_sharing_scale_button.clicked.connect(self._SH_ScreenSharingScaleButtonClicked)
self.screen_sharing_fullscreen_button.clicked.connect(self._SH_ScreenSharingFullscreenButtonClicked) self.screen_sharing_fullscreen_button.clicked.connect(self._SH_ScreenSharingFullscreenButtonClicked)
self.screen_sharing_viewonly_button.clicked.connect(self._SH_ScreenSharingViewonlyButtonClicked) self.screen_sharing_viewonly_button.clicked.connect(self._SH_ScreenSharingViewonlyButtonClicked)
# File transfer
self.download_directory_browse_button.clicked.connect(self._SH_DownloadDirectoryBrowseButtonClicked)
# File logging # File logging
self.trace_sip_button.clicked.connect(self._SH_TraceSIPButtonClicked) self.trace_sip_button.clicked.connect(self._SH_TraceSIPButtonClicked)
self.trace_msrp_button.clicked.connect(self._SH_TraceMSRPButtonClicked) self.trace_msrp_button.clicked.connect(self._SH_TraceMSRPButtonClicked)
...@@ -328,7 +324,11 @@ class PreferencesWindow(base_class, ui_class): ...@@ -328,7 +324,11 @@ class PreferencesWindow(base_class, ui_class):
self.media_ports_start.valueChanged[int].connect(self._SH_MediaPortsStartValueChanged) self.media_ports_start.valueChanged[int].connect(self._SH_MediaPortsStartValueChanged)
self.media_ports.valueChanged[int].connect(self._SH_MediaPortsValueChanged) self.media_ports.valueChanged[int].connect(self._SH_MediaPortsValueChanged)
# TLS # Files and directories
self.screenshots_directory_browse_button.clicked.connect(self._SH_ScreenshotsDirectoryBrowseButtonClicked)
self.transfers_directory_browse_button.clicked.connect(self._SH_TransfersDirectoryBrowseButtonClicked)
# TLS settings
self.tls_ca_file_editor.locationCleared.connect(self._SH_TLSCAFileEditorLocationCleared) self.tls_ca_file_editor.locationCleared.connect(self._SH_TLSCAFileEditorLocationCleared)
self.tls_ca_file_browse_button.clicked.connect(self._SH_TLSCAFileBrowseButtonClicked) self.tls_ca_file_browse_button.clicked.connect(self._SH_TLSCAFileBrowseButtonClicked)
...@@ -713,14 +713,10 @@ class PreferencesWindow(base_class, ui_class): ...@@ -713,14 +713,10 @@ class PreferencesWindow(base_class, ui_class):
self.traffic_units_button.setChecked(blink_settings.chat_window.session_info.bytes_per_second) self.traffic_units_button.setChecked(blink_settings.chat_window.session_info.bytes_per_second)
# Screen sharing settings # Screen sharing settings
self.screenshots_directory_editor.setText(blink_settings.screen_sharing.screenshots_directory or u'')
self.screen_sharing_scale_button.setChecked(blink_settings.screen_sharing.scale) self.screen_sharing_scale_button.setChecked(blink_settings.screen_sharing.scale)
self.screen_sharing_fullscreen_button.setChecked(blink_settings.screen_sharing.open_fullscreen) self.screen_sharing_fullscreen_button.setChecked(blink_settings.screen_sharing.open_fullscreen)
self.screen_sharing_viewonly_button.setChecked(blink_settings.screen_sharing.open_viewonly) self.screen_sharing_viewonly_button.setChecked(blink_settings.screen_sharing.open_viewonly)
# File transfer settings
self.download_directory_editor.setText(settings.file_transfer.directory or u'')
# File logging settings # File logging settings
self.trace_sip_button.setChecked(settings.logs.trace_sip) self.trace_sip_button.setChecked(settings.logs.trace_sip)
self.trace_msrp_button.setChecked(settings.logs.trace_msrp) self.trace_msrp_button.setChecked(settings.logs.trace_msrp)
...@@ -750,6 +746,8 @@ class PreferencesWindow(base_class, ui_class): ...@@ -750,6 +746,8 @@ class PreferencesWindow(base_class, ui_class):
with blocked_qt_signals(self.media_ports): with blocked_qt_signals(self.media_ports):
self.media_ports.setValue(settings.rtp.port_range.end - settings.rtp.port_range.start) self.media_ports.setValue(settings.rtp.port_range.end - settings.rtp.port_range.start)
self.screenshots_directory_editor.setText(blink_settings.screenshots_directory or u'')
self.transfers_directory_editor.setText(blink_settings.transfers_directory or u'')
self.tls_ca_file_editor.setText(settings.tls.ca_list or u'') self.tls_ca_file_editor.setText(settings.tls.ca_list or u'')
def load_account_settings(self, account): def load_account_settings(self, account):
...@@ -1499,13 +1497,12 @@ class PreferencesWindow(base_class, ui_class): ...@@ -1499,13 +1497,12 @@ class PreferencesWindow(base_class, ui_class):
def _SH_ScreenshotsDirectoryBrowseButtonClicked(self, checked): def _SH_ScreenshotsDirectoryBrowseButtonClicked(self, checked):
# TODO: open the file selection dialog in non-modal mode. Same for the one for TLS CA list and the IconSelector from contacts. -Dan # TODO: open the file selection dialog in non-modal mode. Same for the one for TLS CA list and the IconSelector from contacts. -Dan
settings = BlinkSettings() settings = BlinkSettings()
directory = settings.screen_sharing.screenshots_directory.normalized directory = QFileDialog.getExistingDirectory(self, u'Select Screenshots Directory', settings.screenshots_directory.normalized) or None
directory = QFileDialog.getExistingDirectory(self, u'Select Screenshots Directory', directory) or None
if directory is not None: if directory is not None:
directory = os.path.normpath(directory) directory = os.path.normpath(directory)
if directory != settings.screen_sharing.screenshots_directory: if directory != settings.screenshots_directory:
self.screenshots_directory_editor.setText(directory) self.screenshots_directory_editor.setText(directory)
settings.screen_sharing.screenshots_directory = directory settings.screenshots_directory = directory
settings.save() settings.save()
def _SH_ScreenSharingScaleButtonClicked(self, checked): def _SH_ScreenSharingScaleButtonClicked(self, checked):
...@@ -1524,16 +1521,15 @@ class PreferencesWindow(base_class, ui_class): ...@@ -1524,16 +1521,15 @@ class PreferencesWindow(base_class, ui_class):
settings.save() settings.save()
# File transfer signal handlers # File transfer signal handlers
def _SH_DownloadDirectoryBrowseButtonClicked(self, checked): def _SH_TransfersDirectoryBrowseButtonClicked(self, checked):
# TODO: open the file selection dialog in non-modal mode. Same for the one for TLS CA list and the IconSelector from contacts. -Dan # TODO: open the file selection dialog in non-modal mode. Same for the one for TLS CA list and the IconSelector from contacts. -Dan
settings = SIPSimpleSettings() settings = BlinkSettings()
directory = settings.file_transfer.directory.normalized directory = QFileDialog.getExistingDirectory(self, u'Select Transfers Directory', settings.transfers_directory.normalized) or None
directory = QFileDialog.getExistingDirectory(self, u'Select Download Directory', directory) or None
if directory is not None: if directory is not None:
directory = os.path.normpath(directory) directory = os.path.normpath(directory)
if directory != settings.file_transfer.directory: if directory != settings.transfers_directory:
self.download_directory_editor.setText(directory) self.transfers_directory_editor.setText(directory)
settings.file_transfer.directory = directory settings.transfers_directory = directory
settings.save() settings.save()
# File logging signal handlers # File logging signal handlers
......
...@@ -653,7 +653,7 @@ class ScreensharingWindow(base_class, ui_class): ...@@ -653,7 +653,7 @@ class ScreensharingWindow(base_class, ui_class):
def _SH_ScreenshotsFolderActionTriggered(self, pos): def _SH_ScreenshotsFolderActionTriggered(self, pos):
settings = BlinkSettings() settings = BlinkSettings()
QDesktopServices.openUrl(QUrl.fromLocalFile(settings.screen_sharing.screenshots_directory.normalized)) QDesktopServices.openUrl(QUrl.fromLocalFile(settings.screenshots_directory.normalized))
def _SH_VNCClientTextCut(self, text): def _SH_VNCClientTextCut(self, text):
self.clipboard.blockSignals(True) self.clipboard.blockSignals(True)
...@@ -675,7 +675,7 @@ class Screenshot(object): ...@@ -675,7 +675,7 @@ class Screenshot(object):
@classmethod @classmethod
def filename_generator(cls): def filename_generator(cls):
settings = BlinkSettings() settings = BlinkSettings()
name = os.path.join(settings.screen_sharing.screenshots_directory.normalized, 'ScreenSharing-{:%Y%m%d-%H.%M.%S}'.format(datetime.now())) name = os.path.join(settings.screenshots_directory.normalized, 'ScreenSharing-{:%Y%m%d-%H.%M.%S}'.format(datetime.now()))
yield '%s.png' % name yield '%s.png' % name
for x in count(1): for x in count(1):
yield "%s-%d.png" % (name, x) yield "%s-%d.png" % (name, x)
......
...@@ -3458,8 +3458,8 @@ class FileTransfer(object): ...@@ -3458,8 +3458,8 @@ class FileTransfer(object):
self._file_selector = stream.file_selector self._file_selector = stream.file_selector
self._local_hash = hashlib.sha1() self._local_hash = hashlib.sha1()
settings = SIPSimpleSettings() settings = BlinkSettings()
directory = settings.file_transfer.directory.normalized directory = settings.transfers_directory.normalized
makedirs(directory) makedirs(directory)
filename = os.path.basename(self._file_selector.name) filename = os.path.basename(self._file_selector.name)
for name in UniqueFilenameGenerator.generate(os.path.join(directory, filename)): for name in UniqueFilenameGenerator.generate(os.path.join(directory, filename)):
......
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
<item row="0" column="0"> <item row="0" column="0">
<widget class="QStackedWidget" name="pages"> <widget class="QStackedWidget" name="pages">
<property name="currentIndex"> <property name="currentIndex">
<number>2</number> <number>6</number>
</property> </property>
<widget class="QWidget" name="accounts_page"> <widget class="QWidget" name="accounts_page">
<layout class="QGridLayout" name="accounts_layout"> <layout class="QGridLayout" name="accounts_layout">
...@@ -2441,98 +2441,15 @@ ...@@ -2441,98 +2441,15 @@
<string>Screen Sharing Settings</string> <string>Screen Sharing Settings</string>
</property> </property>
<layout class="QGridLayout" name="screen_sharing_box_layout"> <layout class="QGridLayout" name="screen_sharing_box_layout">
<property name="horizontalSpacing"> <item row="1" column="0">
<number>3</number>
</property>
<item row="4" column="0" colspan="3">
<spacer name="screen_sharing_spacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="2" column="1" colspan="2">
<widget class="QCheckBox" name="screen_sharing_fullscreen_button"> <widget class="QCheckBox" name="screen_sharing_fullscreen_button">
<property name="text"> <property name="text">
<string>Open the viewer window in fullscreen mode</string> <string>Open the viewer window in fullscreen mode</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="3" column="1" colspan="2"> <item row="3" column="0">
<widget class="QCheckBox" name="screen_sharing_viewonly_button"> <spacer name="screen_sharing_spacer">
<property name="text">
<string>Open the viewer window in view only mode</string>
</property>
</widget>
</item>
<item row="1" column="1" colspan="2">
<widget class="QCheckBox" name="screen_sharing_scale_button">
<property name="text">
<string>Scale the remote screen to fit the viewer window</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="screenshots_directory_editor">
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="screenshots_directory_label">
<property name="text">
<string>Screenshots Directory:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="screenshots_directory_browse_button">
<property name="text">
<string>Browse</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="file_transfers_page">
<layout class="QVBoxLayout" name="file_transfer_layout">
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="QGroupBox" name="file_transfer_group_box">
<property name="title">
<string>File Transfer Settings</string>
</property>
<layout class="QGridLayout" name="file_transfer_box_layout">
<property name="horizontalSpacing">
<number>3</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="download_directory_label">
<property name="text">
<string>Download Directory:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="1" column="0" colspan="3">
<spacer name="file_transfer_spacer">
<property name="orientation"> <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
</property> </property>
...@@ -2544,17 +2461,17 @@ ...@@ -2544,17 +2461,17 @@
</property> </property>
</spacer> </spacer>
</item> </item>
<item row="0" column="2"> <item row="0" column="0">
<widget class="QPushButton" name="download_directory_browse_button"> <widget class="QCheckBox" name="screen_sharing_scale_button">
<property name="text"> <property name="text">
<string>Browse</string> <string>Scale the remote screen to fit the viewer window</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="1"> <item row="2" column="0">
<widget class="QLineEdit" name="download_directory_editor"> <widget class="QCheckBox" name="screen_sharing_viewonly_button">
<property name="readOnly"> <property name="text">
<bool>true</bool> <string>Open the viewer window in view only mode</string>
</property> </property>
</widget> </widget>
</item> </item>
...@@ -2722,35 +2639,58 @@ ...@@ -2722,35 +2639,58 @@
<number>0</number> <number>0</number>
</property> </property>
<item> <item>
<widget class="QGroupBox" name="sip_group_box"> <widget class="QGroupBox" name="advanced_group_box">
<property name="title"> <layout class="QGridLayout" name="advanced_group_box_layout">
<string>SIP and RTP settings</string> <property name="margin">
</property> <number>10</number>
<layout class="QGridLayout" name="sip_group_box_layout"> </property>
<item row="0" column="0"> <item row="9" column="6">
<widget class="QLabel" name="transports_label"> <widget class="QPushButton" name="transfers_directory_browse_button">
<property name="minimumSize"> <property name="text">
<size> <string>Browse</string>
<width>130</width>
<height>0</height>
</size>
</property> </property>
</widget>
</item>
<item row="13" column="0" colspan="7">
<widget class="Line" name="line_14">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="9" column="0">
<widget class="QLabel" name="transfers_directory_label">
<property name="text"> <property name="text">
<string>Transports:</string> <string>Save received files to:</string>
</property> </property>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="1"> <item row="2" column="5" rowspan="2">
<widget class="QCheckBox" name="enable_udp_button"> <widget class="QLabel" name="port_note_label">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text"> <property name="text">
<string>Enable UDP</string> <string>Note: set SIP ports to 0 for automatic allocation</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="margin">
<number>5</number>
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="2"> <item row="2" column="2">
<spacer name="transport_spacer"> <spacer name="transport_spacer">
<property name="orientation"> <property name="orientation">
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>
...@@ -2766,105 +2706,171 @@ ...@@ -2766,105 +2706,171 @@
</property> </property>
</spacer> </spacer>
</item> </item>
<item row="0" column="3"> <item row="3" column="3">
<widget class="QLabel" name="udp_port_label"> <widget class="QLabel" name="tcp_port_label">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text"> <property name="text">
<string>UDP port:</string> <string>TCP port:</string>
</property> </property>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="4"> <item row="4" column="3">
<widget class="SIPPortEditor" name="udp_port"> <widget class="QLabel" name="tls_port_label">
<property name="specialValueText">
<string>Auto</string>
</property>
<property name="maximum">
<number>65535</number>
</property>
</widget>
</item>
<item row="0" column="5" rowspan="2">
<widget class="QLabel" name="port_note_label">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred"> <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
</property> </property>
<property name="text"> <property name="text">
<string>Note: set SIP ports to 0 for automatic allocation</string> <string>TLS port:</string>
</property> </property>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property> </property>
<property name="wordWrap"> </widget>
<bool>true</bool> </item>
<item row="2" column="1">
<widget class="QCheckBox" name="enable_udp_button">
<property name="text">
<string>Enable UDP</string>
</property> </property>
<property name="margin"> </widget>
<number>5</number> </item>
<item row="5" column="4">
<widget class="QSpinBox" name="media_ports_start">
<property name="minimum">
<number>10000</number>
</property>
<property name="maximum">
<number>65000</number>
</property>
<property name="singleStep">
<number>1000</number>
</property>
<property name="value">
<number>50000</number>
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="1"> <item row="2" column="3">
<widget class="QCheckBox" name="enable_tcp_button"> <widget class="QLabel" name="udp_port_label">
<property name="text"> <property name="text">
<string>Enable TCP</string> <string>UDP port:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="3"> <item row="5" column="2" colspan="2">
<widget class="QLabel" name="tcp_port_label"> <widget class="QLabel" name="starting_at_label">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text"> <property name="text">
<string>TCP port:</string> <string>starting at:</string>
</property> </property>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="4"> <item row="14" column="1" colspan="5">
<widget class="SIPPortEditor" name="tcp_port"> <widget class="LocationBar" name="tls_ca_file_editor">
<property name="specialValueText"> <property name="toolTip">
<string>Auto</string> <string>The cerfiticate authority used to validate TLS connections</string>
</property> </property>
<property name="maximum"> <property name="readOnly">
<number>65535</number> <bool>true</bool>
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="1"> <item row="15" column="0" colspan="7">
<spacer name="advanced_spacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Expanding</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>30</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="0" colspan="7">
<widget class="QLabel" name="sip_and_rtp_label">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>SIP and RTP</string>
</property>
</widget>
</item>
<item row="11" column="0" colspan="7">
<spacer name="files_spacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>815</width>
<height>25</height>
</size>
</property>
</spacer>
</item>
<item row="4" column="1">
<widget class="QCheckBox" name="enable_tls_button"> <widget class="QCheckBox" name="enable_tls_button">
<property name="text"> <property name="text">
<string>Enable TLS</string> <string>Enable TLS</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="3"> <item row="14" column="6">
<widget class="QLabel" name="tls_port_label"> <widget class="QPushButton" name="tls_ca_file_browse_button">
<property name="sizePolicy"> <property name="text">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred"> <string>Browse</string>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property> </property>
</widget>
</item>
<item row="10" column="0">
<widget class="QLabel" name="screenshots_directory_label">
<property name="text"> <property name="text">
<string>TLS port:</string> <string>Save screenshots to:</string>
</property> </property>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="4"> <item row="9" column="1" colspan="5">
<widget class="QLineEdit" name="transfers_directory_editor">
<property name="toolTip">
<string>Where to save received files</string>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
<item row="4" column="4">
<widget class="SIPPortEditor" name="tls_port"> <widget class="SIPPortEditor" name="tls_port">
<property name="specialValueText"> <property name="specialValueText">
<string>Auto</string> <string>Auto</string>
...@@ -2874,66 +2880,55 @@ ...@@ -2874,66 +2880,55 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="3" column="0"> <item row="1" column="0" colspan="7">
<widget class="QLabel" name="media_ports_label"> <widget class="Line" name="line_12">
<property name="toolTip"> <property name="orientation">
<string>How many media ports to use and starting from what address</string> <enum>Qt::Horizontal</enum>
</property>
<property name="text">
<string>RTP Ports:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property> </property>
</widget> </widget>
</item> </item>
<item row="3" column="1"> <item row="3" column="4">
<widget class="QSpinBox" name="media_ports"> <widget class="SIPPortEditor" name="tcp_port">
<property name="correctionMode"> <property name="specialValueText">
<enum>QAbstractSpinBox::CorrectToNearestValue</enum> <string>Auto</string>
</property>
<property name="minimum">
<number>10</number>
</property> </property>
<property name="maximum"> <property name="maximum">
<number>10000</number> <number>65535</number>
</property>
<property name="singleStep">
<number>10</number>
</property> </property>
<property name="value"> </widget>
<number>500</number> </item>
<item row="3" column="1">
<widget class="QCheckBox" name="enable_tcp_button">
<property name="text">
<string>Enable TCP</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="3" column="2" colspan="2"> <item row="14" column="0">
<widget class="QLabel" name="starting_at_label"> <widget class="QLabel" name="tls_ca_file_label">
<property name="text"> <property name="text">
<string>starting at:</string> <string>Certificate Authority:</string>
</property> </property>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property> </property>
</widget> </widget>
</item> </item>
<item row="3" column="4"> <item row="5" column="0">
<widget class="QSpinBox" name="media_ports_start"> <widget class="QLabel" name="media_ports_label">
<property name="minimum"> <property name="toolTip">
<number>10000</number> <string>How many media ports to use and starting from what address</string>
</property>
<property name="maximum">
<number>65000</number>
</property> </property>
<property name="singleStep"> <property name="text">
<number>1000</number> <string>RTP Ports:</string>
</property> </property>
<property name="value"> <property name="alignment">
<number>50000</number> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property> </property>
</widget> </widget>
</item> </item>
<item row="4" column="0" colspan="6"> <item row="6" column="0" colspan="7">
<spacer name="sip_spacer_2"> <spacer name="sip_spacer">
<property name="orientation"> <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
</property> </property>
...@@ -2942,57 +2937,100 @@ ...@@ -2942,57 +2937,100 @@
</property> </property>
<property name="sizeHint" stdset="0"> <property name="sizeHint" stdset="0">
<size> <size>
<width>20</width> <width>815</width>
<height>20</height> <height>25</height>
</size> </size>
</property> </property>
</spacer> </spacer>
</item> </item>
</layout> <item row="12" column="0" colspan="7">
</widget> <widget class="QLabel" name="tls_settings_label">
</item> <property name="font">
<item> <font>
<widget class="QGroupBox" name="tls_group_box"> <weight>75</weight>
<property name="title"> <bold>true</bold>
<string>TLS Settings</string> </font>
</property> </property>
<layout class="QGridLayout" name="tls_group_box_layout"> <property name="text">
<item row="0" column="1"> <string>TLS settings</string>
<widget class="LocationBar" name="tls_ca_file_editor">
<property name="readOnly">
<bool>true</bool>
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="0"> <item row="8" column="0" colspan="7">
<widget class="QLabel" name="tls_ca_file_label"> <widget class="Line" name="line_13">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="7" column="0" colspan="7">
<widget class="QLabel" name="files_and_directories_label">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text"> <property name="text">
<string>Certificate Authority File:</string> <string>Files and directories</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="transports_label">
<property name="text">
<string>Transports:</string>
</property> </property>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="2"> <item row="5" column="1">
<widget class="QPushButton" name="tls_ca_file_browse_button"> <widget class="QSpinBox" name="media_ports">
<property name="correctionMode">
<enum>QAbstractSpinBox::CorrectToNearestValue</enum>
</property>
<property name="minimum">
<number>10</number>
</property>
<property name="maximum">
<number>10000</number>
</property>
<property name="singleStep">
<number>10</number>
</property>
<property name="value">
<number>500</number>
</property>
</widget>
</item>
<item row="2" column="4">
<widget class="SIPPortEditor" name="udp_port">
<property name="specialValueText">
<string>Auto</string>
</property>
<property name="maximum">
<number>65535</number>
</property>
</widget>
</item>
<item row="10" column="6">
<widget class="QPushButton" name="screenshots_directory_browse_button">
<property name="text"> <property name="text">
<string>Browse</string> <string>Browse</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="0" colspan="3"> <item row="10" column="1" colspan="5">
<spacer name="tls_vertical_spacer"> <widget class="QLineEdit" name="screenshots_directory_editor">
<property name="orientation"> <property name="toolTip">
<enum>Qt::Vertical</enum> <string>Where to save screenshots taken from video or screen sharing sessions</string>
</property> </property>
<property name="sizeHint" stdset="0"> <property name="readOnly">
<size> <bool>true</bool>
<width>20</width>
<height>40</height>
</size>
</property> </property>
</spacer> </widget>
</item> </item>
</layout> </layout>
</widget> </widget>
...@@ -3037,7 +3075,6 @@ ...@@ -3037,7 +3075,6 @@
<addaction name="video_action"/> <addaction name="video_action"/>
<addaction name="chat_action"/> <addaction name="chat_action"/>
<addaction name="screen_sharing_action"/> <addaction name="screen_sharing_action"/>
<addaction name="file_transfer_action"/>
<addaction name="logging_action"/> <addaction name="logging_action"/>
<addaction name="advanced_action"/> <addaction name="advanced_action"/>
</widget> </widget>
...@@ -3101,18 +3138,6 @@ ...@@ -3101,18 +3138,6 @@
<string>Screen Sharing</string> <string>Screen Sharing</string>
</property> </property>
</action> </action>
<action name="file_transfer_action">
<property name="checkable">
<bool>true</bool>
</property>
<property name="icon">
<iconset>
<normaloff>icons/file-transfer.png</normaloff>icons/file-transfer.png</iconset>
</property>
<property name="text">
<string>File Transfer</string>
</property>
</action>
<action name="logging_action"> <action name="logging_action">
<property name="checkable"> <property name="checkable">
<bool>true</bool> <bool>true</bool>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment