re-work optionsdialog to a tabbed UI based on an ui-file

- extend network options with a SOCKS version selection
- changing "Unit to show amounts in:" now also updates the unit used in the transaction fee box
- string updates
- link Apply button and OK button when enabling or disabling them
- use LookupNumeric() from netbase to verify proxy address (via an EventFilter)
- change proxy address field to QValidatedLineEdit and add visual feedback
- add a status label used for displaying a message for invalid proxy addresses
- allow usage of IPv6 address as proxy address
- added warning message when enabling / disabling SOCKS proxy
This commit is contained in:
Philip Kaufmann
2012-06-08 15:21:55 +02:00
parent c4879a0c2f
commit c4443c2be1
5 changed files with 652 additions and 351 deletions

View File

@@ -2,48 +2,53 @@
#define OPTIONSDIALOG_H
#include <QDialog>
#include <QList>
QT_BEGIN_NAMESPACE
class QStackedWidget;
class QListWidget;
class QListWidgetItem;
class QPushButton;
QT_END_NAMESPACE
namespace Ui {
class OptionsDialog;
}
class OptionsModel;
class OptionsPage;
class MonitoredDataMapper;
/** Preferences dialog. */
class OptionsDialog : public QDialog
{
Q_OBJECT
public:
explicit OptionsDialog(QWidget *parent=0);
explicit OptionsDialog(QWidget *parent = 0);
~OptionsDialog();
void setModel(OptionsModel *model);
void setMapper();
signals:
public slots:
/** Change the current page to \a index. */
void changePage(int index);
protected:
bool eventFilter(QObject *object, QEvent *event);
private slots:
void okClicked();
void cancelClicked();
void applyClicked();
void enableApply();
void disableApply();
/* enable apply button and OK button */
void enableSaveButtons();
/* disable apply button and OK button */
void disableSaveButtons();
/* set apply button and OK button state (enabled / disabled) */
void setSaveButtonState(bool fState);
void on_okButton_clicked();
void on_cancelButton_clicked();
void on_applyButton_clicked();
void showRestartWarning_Proxy();
void showRestartWarning_Lang();
void updateDisplayUnit();
signals:
void proxyIpValid(bool fValid);
private:
QListWidget *contents_widget;
QStackedWidget *pages_widget;
Ui::OptionsDialog *ui;
OptionsModel *model;
MonitoredDataMapper *mapper;
QPushButton *apply_button;
QList<OptionsPage*> pages;
bool fRestartWarningDisplayed_Proxy;
bool fRestartWarningDisplayed_Lang;
bool fProxyIpValid;
};
#endif // OPTIONSDIALOG_H