diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/leap/bitmask/gui/mainwindow.py | 20 | ||||
| -rw-r--r-- | src/leap/bitmask/gui/preferenceswindow.py | 40 | ||||
| -rw-r--r-- | src/leap/bitmask/gui/ui/mainwindow.ui | 10 | ||||
| -rw-r--r-- | src/leap/bitmask/gui/ui/preferences.ui | 219 | 
4 files changed, 289 insertions, 0 deletions
| diff --git a/src/leap/bitmask/gui/mainwindow.py b/src/leap/bitmask/gui/mainwindow.py index 17275983..5447d993 100644 --- a/src/leap/bitmask/gui/mainwindow.py +++ b/src/leap/bitmask/gui/mainwindow.py @@ -33,6 +33,7 @@ from leap.bitmask.config.leapsettings import LeapSettings  from leap.bitmask.config.providerconfig import ProviderConfig  from leap.bitmask.crypto.srpauth import SRPAuth  from leap.bitmask.gui.loggerwindow import LoggerWindow +from leap.bitmask.gui.preferenceswindow import PreferencesWindow  from leap.bitmask.gui.wizard import Wizard  from leap.bitmask.gui.login import LoginWidget  from leap.bitmask.gui.statuspanel import StatusPanelWidget @@ -162,6 +163,7 @@ class MainWindow(QtGui.QMainWindow):              self._launch_wizard)          self.ui.btnShowLog.clicked.connect(self._show_logger_window) +        self.ui.btnPreferences.clicked.connect(self._show_preferences)          self._status_panel = StatusPanelWidget(              self.ui.stackedWidget.widget(self.EIP_STATUS_INDEX)) @@ -292,6 +294,7 @@ class MainWindow(QtGui.QMainWindow):          self._wizard_firstrun = False          self._logger_window = None +        self._preferences_window = None          self._bypass_checks = bypass_checks @@ -403,6 +406,21 @@ class MainWindow(QtGui.QMainWindow):          self._logger_window.finished.connect(self._uncheck_logger_button) +    def _show_preferences(self): +        """ +        SLOT +        TRIGGERS: +          self.ui.action_show_preferences.triggered +          self.ui.btnPreferences.clicked + +        Displays the preferences window. +        """ +        preferences = self._preferences_window +        if preferences is None: +            preferences = PreferencesWindow(self, self._srp_auth) + +        preferences.show() +      def _uncheck_logger_button(self):          """          SLOT @@ -925,6 +943,7 @@ class MainWindow(QtGui.QMainWindow):              # panel              QtCore.QTimer.singleShot(1000, self._switch_to_status)              self._login_defer = None +            self.ui.btnPreferences.setEnabled(True)          else:              self._login_widget.set_enabled(True) @@ -1399,6 +1418,7 @@ class MainWindow(QtGui.QMainWindow):          self._login_widget.set_password("")          self._login_widget.set_enabled(True)          self._login_widget.set_status("") +        self.ui.btnPreferences.setEnabled(False)      def _intermediate_stage(self, data):          """ diff --git a/src/leap/bitmask/gui/preferenceswindow.py b/src/leap/bitmask/gui/preferenceswindow.py new file mode 100644 index 00000000..5f8dd5cc --- /dev/null +++ b/src/leap/bitmask/gui/preferenceswindow.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +# preferenceswindow.py +# Copyright (C) 2013 LEAP +# +# 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/>. + +""" +Preferences log window +""" +import logging + +from PySide import QtGui + +from leap.bitmask.gui.ui_preferences import Ui_Preferences +from leap.bitmask.crypto.srpauth import SRPAuthBadPassword + +logger = logging.getLogger(__name__) + + +class PreferencesWindow(QtGui.QDialog): +    """ +    Window that displays the preferences. +    """ +    def __init__(self, parent): +        QtGui.QDialog.__init__(self, parent) + +        # Load UI +        self.ui = Ui_Preferences() +        self.ui.setupUi(self) diff --git a/src/leap/bitmask/gui/ui/mainwindow.ui b/src/leap/bitmask/gui/ui/mainwindow.ui index b46b62b0..834a562e 100644 --- a/src/leap/bitmask/gui/ui/mainwindow.ui +++ b/src/leap/bitmask/gui/ui/mainwindow.ui @@ -215,6 +215,16 @@      <item row="18" column="2">       <layout class="QHBoxLayout" name="horizontalLayout">        <item> +       <widget class="QPushButton" name="btnPreferences"> +        <property name="enabled"> +         <bool>false</bool> +        </property> +        <property name="text"> +         <string>Preferences</string> +        </property> +       </widget> +      </item> +      <item>         <spacer name="horizontalSpacer_10">          <property name="orientation">           <enum>Qt::Horizontal</enum> diff --git a/src/leap/bitmask/gui/ui/preferences.ui b/src/leap/bitmask/gui/ui/preferences.ui new file mode 100644 index 00000000..ffca381e --- /dev/null +++ b/src/leap/bitmask/gui/ui/preferences.ui @@ -0,0 +1,219 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>Preferences</class> + <widget class="QDialog" name="Preferences"> +  <property name="geometry"> +   <rect> +    <x>0</x> +    <y>0</y> +    <width>451</width> +    <height>267</height> +   </rect> +  </property> +  <property name="windowTitle"> +   <string>Preferences</string> +  </property> +  <property name="windowIcon"> +   <iconset resource="../../../../../data/resources/mainwindow.qrc"> +    <normaloff>:/images/mask-icon.png</normaloff>:/images/mask-icon.png</iconset> +  </property> +  <layout class="QVBoxLayout" name="verticalLayout"> +   <item> +    <widget class="QGroupBox" name="gbPasswordChange"> +     <property name="title"> +      <string>Password Change</string> +     </property> +     <layout class="QFormLayout" name="formLayout"> +      <property name="fieldGrowthPolicy"> +       <enum>QFormLayout::ExpandingFieldsGrow</enum> +      </property> +      <item row="0" column="0"> +       <widget class="QLabel" name="lblCurrentPassword"> +        <property name="text"> +         <string>&Current password:</string> +        </property> +        <property name="buddy"> +         <cstring>leCurrentPassword</cstring> +        </property> +       </widget> +      </item> +      <item row="0" column="1"> +       <widget class="QLineEdit" name="leCurrentPassword"> +        <property name="echoMode"> +         <enum>QLineEdit::Password</enum> +        </property> +       </widget> +      </item> +      <item row="1" column="0"> +       <widget class="QLabel" name="lblNewPassword"> +        <property name="text"> +         <string>&New password:</string> +        </property> +        <property name="buddy"> +         <cstring>leNewPassword</cstring> +        </property> +       </widget> +      </item> +      <item row="1" column="1"> +       <widget class="QLineEdit" name="leNewPassword"> +        <property name="echoMode"> +         <enum>QLineEdit::Password</enum> +        </property> +       </widget> +      </item> +      <item row="2" column="0"> +       <widget class="QLabel" name="lblNewPassword2"> +        <property name="text"> +         <string>&Re-enter new password:</string> +        </property> +        <property name="buddy"> +         <cstring>leNewPassword2</cstring> +        </property> +       </widget> +      </item> +      <item row="2" column="1"> +       <widget class="QLineEdit" name="leNewPassword2"> +        <property name="echoMode"> +         <enum>QLineEdit::Password</enum> +        </property> +       </widget> +      </item> +      <item row="4" column="1"> +       <widget class="QPushButton" name="pbChangePassword"> +        <property name="text"> +         <string>Change</string> +        </property> +       </widget> +      </item> +      <item row="3" column="0" colspan="2"> +       <widget class="QLabel" name="lblPasswordChangeStatus"> +        <property name="text"> +         <string><Password change status></string> +        </property> +        <property name="alignment"> +         <set>Qt::AlignCenter</set> +        </property> +       </widget> +      </item> +     </layout> +    </widget> +   </item> +   <item> +    <widget class="QGroupBox" name="gbGatewaySelector"> +     <property name="enabled"> +      <bool>false</bool> +     </property> +     <property name="title"> +      <string>Select gateway for provider</string> +     </property> +     <property name="checkable"> +      <bool>false</bool> +     </property> +     <layout class="QGridLayout" name="gridLayout"> +      <item row="0" column="0"> +       <widget class="QLabel" name="lblSelectProvider"> +        <property name="text"> +         <string>&Select provider:</string> +        </property> +        <property name="buddy"> +         <cstring>cbProviders</cstring> +        </property> +       </widget> +      </item> +      <item row="0" column="1"> +       <widget class="QComboBox" name="cbProviders"> +        <item> +         <property name="text"> +          <string><Select provider></string> +         </property> +        </item> +       </widget> +      </item> +      <item row="1" column="0"> +       <widget class="QLabel" name="label"> +        <property name="text"> +         <string>Select gateway:</string> +        </property> +       </widget> +      </item> +      <item row="1" column="1"> +       <widget class="QComboBox" name="comboBox"> +        <item> +         <property name="text"> +          <string>Automatic</string> +         </property> +        </item> +       </widget> +      </item> +     </layout> +    </widget> +   </item> +   <item> +    <spacer name="verticalSpacer"> +     <property name="orientation"> +      <enum>Qt::Vertical</enum> +     </property> +     <property name="sizeHint" stdset="0"> +      <size> +       <width>20</width> +       <height>40</height> +      </size> +     </property> +    </spacer> +   </item> +  </layout> + </widget> + <resources> +  <include location="../../../../../data/resources/mainwindow.qrc"/> + </resources> + <connections> +  <connection> +   <sender>leCurrentPassword</sender> +   <signal>returnPressed()</signal> +   <receiver>leNewPassword</receiver> +   <slot>setFocus()</slot> +   <hints> +    <hint type="sourcelabel"> +     <x>273</x> +     <y>113</y> +    </hint> +    <hint type="destinationlabel"> +     <x>272</x> +     <y>135</y> +    </hint> +   </hints> +  </connection> +  <connection> +   <sender>leNewPassword</sender> +   <signal>returnPressed()</signal> +   <receiver>leNewPassword2</receiver> +   <slot>setFocus()</slot> +   <hints> +    <hint type="sourcelabel"> +     <x>349</x> +     <y>139</y> +    </hint> +    <hint type="destinationlabel"> +     <x>351</x> +     <y>163</y> +    </hint> +   </hints> +  </connection> +  <connection> +   <sender>leNewPassword2</sender> +   <signal>returnPressed()</signal> +   <receiver>pbChangePassword</receiver> +   <slot>setFocus()</slot> +   <hints> +    <hint type="sourcelabel"> +     <x>178</x> +     <y>169</y> +    </hint> +    <hint type="destinationlabel"> +     <x>178</x> +     <y>198</y> +    </hint> +   </hints> +  </connection> + </connections> +</ui> | 
