2013-04-17 19:19:07 +02:00
/**
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* @ file OptionDialog . cpp
*
* @ brief
*
* Copyright ( C ) 2013
*
* @ author Francois Ferrand
* @ date 4 / 2013
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/
# include "OptionDialog.h"
# include "ui_OptionDialog.h"
# include "HttpSettings.h"
2017-02-22 17:46:41 +01:00
# include "core/FilePath.h"
2017-01-24 00:08:48 +01:00
# include <QMessageBox>
2013-04-17 19:19:07 +02:00
OptionDialog : : OptionDialog ( QWidget * parent ) :
QWidget ( parent ) ,
2017-02-22 17:46:41 +01:00
m_ui ( new Ui : : OptionDialog ( ) )
2013-04-17 19:19:07 +02:00
{
2017-02-22 17:46:41 +01:00
m_ui - > setupUi ( this ) ;
connect ( m_ui - > removeSharedEncryptionKeys , SIGNAL ( clicked ( ) ) , this , SIGNAL ( removeSharedEncryptionKeys ( ) ) ) ;
connect ( m_ui - > removeStoredPermissions , SIGNAL ( clicked ( ) ) , this , SIGNAL ( removeStoredPermissions ( ) ) ) ;
m_ui - > warningWidget - > showMessage ( tr ( " The following options can be dangerous! \n Change them only if you know what you are doing. " ) , MessageWidget : : Warning ) ;
m_ui - > warningWidget - > setIcon ( FilePath : : instance ( ) - > icon ( " status " , " dialog-warning " ) ) ;
m_ui - > warningWidget - > setCloseButtonVisible ( false ) ;
2017-02-24 16:22:40 +01:00
m_ui - > tabWidget - > setEnabled ( m_ui - > enableHttpServer - > isChecked ( ) ) ;
connect ( m_ui - > enableHttpServer , SIGNAL ( toggled ( bool ) ) , m_ui - > tabWidget , SLOT ( setEnabled ( bool ) ) ) ;
2013-04-17 19:19:07 +02:00
}
OptionDialog : : ~ OptionDialog ( )
{
}
void OptionDialog : : loadSettings ( )
{
HttpSettings settings ;
2017-02-22 17:46:41 +01:00
m_ui - > enableHttpServer - > setChecked ( settings . isEnabled ( ) ) ;
2013-04-17 19:19:07 +02:00
2017-02-22 17:46:41 +01:00
m_ui - > showNotification - > setChecked ( settings . showNotification ( ) ) ;
m_ui - > bestMatchOnly - > setChecked ( settings . bestMatchOnly ( ) ) ;
m_ui - > unlockDatabase - > setChecked ( settings . unlockDatabase ( ) ) ;
m_ui - > matchUrlScheme - > setChecked ( settings . matchUrlScheme ( ) ) ;
2013-04-17 19:19:07 +02:00
if ( settings . sortByUsername ( ) )
2017-02-22 17:46:41 +01:00
m_ui - > sortByUsername - > setChecked ( true ) ;
2013-04-17 19:19:07 +02:00
else
2017-02-22 17:46:41 +01:00
m_ui - > sortByTitle - > setChecked ( true ) ;
m_ui - > httpPort - > setText ( QString : : number ( settings . httpPort ( ) ) ) ;
2013-04-17 19:19:07 +02:00
2017-02-22 17:46:41 +01:00
m_ui - > alwaysAllowAccess - > setChecked ( settings . alwaysAllowAccess ( ) ) ;
m_ui - > alwaysAllowUpdate - > setChecked ( settings . alwaysAllowUpdate ( ) ) ;
m_ui - > searchInAllDatabases - > setChecked ( settings . searchInAllDatabases ( ) ) ;
m_ui - > supportKphFields - > setChecked ( settings . supportKphFields ( ) ) ;
2013-04-17 19:19:07 +02:00
2017-02-22 17:46:41 +01:00
m_ui - > passwordGenerator - > loadSettings ( ) ;
2013-04-17 19:19:07 +02:00
}
void OptionDialog : : saveSettings ( )
{
HttpSettings settings ;
2017-02-22 17:46:41 +01:00
settings . setEnabled ( m_ui - > enableHttpServer - > isChecked ( ) ) ;
2013-04-17 19:19:07 +02:00
2017-02-22 17:46:41 +01:00
settings . setShowNotification ( m_ui - > showNotification - > isChecked ( ) ) ;
settings . setBestMatchOnly ( m_ui - > bestMatchOnly - > isChecked ( ) ) ;
settings . setUnlockDatabase ( m_ui - > unlockDatabase - > isChecked ( ) ) ;
settings . setMatchUrlScheme ( m_ui - > matchUrlScheme - > isChecked ( ) ) ;
settings . setSortByUsername ( m_ui - > sortByUsername - > isChecked ( ) ) ;
2017-01-24 00:08:48 +01:00
2017-02-22 17:46:41 +01:00
int port = m_ui - > httpPort - > text ( ) . toInt ( ) ;
2017-01-24 00:08:48 +01:00
if ( port < 1024 ) {
QMessageBox : : warning ( this , tr ( " Cannot bind to privileged ports " ) ,
tr ( " Cannot bind to privileged ports below 1024! \n Using default port 19455. " ) ) ;
port = 19455 ;
}
settings . setHttpPort ( port ) ;
2017-02-22 17:46:41 +01:00
settings . setAlwaysAllowAccess ( m_ui - > alwaysAllowAccess - > isChecked ( ) ) ;
settings . setAlwaysAllowUpdate ( m_ui - > alwaysAllowUpdate - > isChecked ( ) ) ;
settings . setSearchInAllDatabases ( m_ui - > searchInAllDatabases - > isChecked ( ) ) ;
settings . setSupportKphFields ( m_ui - > supportKphFields - > isChecked ( ) ) ;
2013-04-17 19:19:07 +02:00
2017-02-22 17:46:41 +01:00
m_ui - > passwordGenerator - > saveSettings ( ) ;
2013-04-17 19:19:07 +02:00
}