annotate src/qt/optionsdialog.cpp @ 2425:aa46239b5b09 draft

Organize optionsdialog (split off Window and Network page)
author Wladimir J. van der Laan <laanwj@gmail.com>
date Mon, 07 May 2012 21:49:22 +0200
parents af9cbdba761d
children 58abdd7d008b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
1 #include "optionsdialog.h"
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
2 #include "optionsmodel.h"
1086
817dc99730ad introduce bitcoin amount field with split amount/decimals, to protect against mistakes (https://forum.bitcoin.org/index.php?topic=19168.0)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1076
diff changeset
3 #include "bitcoinamountfield.h"
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
4 #include "monitoreddatamapper.h"
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
5 #include "guiutil.h"
1229
fa39b222e5e0 Full support for other units, add configuration option for default unit (used when displaying amounts)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1216
diff changeset
6 #include "bitcoinunits.h"
fa39b222e5e0 Full support for other units, add configuration option for default unit (used when displaying amounts)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1216
diff changeset
7 #include "qvaluecombobox.h"
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
8
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
9 #include <QHBoxLayout>
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
10 #include <QVBoxLayout>
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
11 #include <QPushButton>
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
12 #include <QListWidget>
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
13 #include <QStackedWidget>
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
14
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
15 #include <QCheckBox>
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
16 #include <QLabel>
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
17 #include <QLineEdit>
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
18 #include <QIntValidator>
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
19 #include <QDoubleValidator>
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
20 #include <QRegExpValidator>
1096
094cd284ab55 use buttonbox for options dialog
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1086
diff changeset
21 #include <QDialogButtonBox>
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
22
2425
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
23 class OptionsPage: public QWidget
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
24 {
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
25 Q_OBJECT
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
26 public:
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
27 explicit OptionsPage(QWidget *parent=0): QWidget(parent) {}
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
28
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
29 virtual void setMapper(MonitoredDataMapper *mapper) = 0;
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
30 };
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
31
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
32 class MainOptionsPage: public OptionsPage
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
33 {
1339
904c43af509f put Q_OBJECT everywhere it should be (removes warnings when running lupdate)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1258
diff changeset
34 Q_OBJECT
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
35 public:
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
36 explicit MainOptionsPage(QWidget *parent=0);
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
37
2425
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
38 virtual void setMapper(MonitoredDataMapper *mapper);
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
39 private:
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
40 QCheckBox *detach_database;
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
41 BitcoinAmountField *fee_edit;
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
42 };
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
43
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
44 class WindowOptionsPage: public OptionsPage
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
45 {
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
46 Q_OBJECT
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
47 public:
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
48 explicit WindowOptionsPage(QWidget *parent=0);
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
49
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
50 virtual void setMapper(MonitoredDataMapper *mapper);
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
51 private:
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
52 QCheckBox *bitcoin_at_startup;
1406
f5bfde96d9c3 Improved Mac experience; QDoubleSpinBox for BitcoinAmountField
p2k <patrick.p2k.schneider@gmail.com>
parents: 1339
diff changeset
53 #ifndef Q_WS_MAC
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
54 QCheckBox *minimize_to_tray;
1406
f5bfde96d9c3 Improved Mac experience; QDoubleSpinBox for BitcoinAmountField
p2k <patrick.p2k.schneider@gmail.com>
parents: 1339
diff changeset
55 #endif
f5bfde96d9c3 Improved Mac experience; QDoubleSpinBox for BitcoinAmountField
p2k <patrick.p2k.schneider@gmail.com>
parents: 1339
diff changeset
56 #ifndef Q_WS_MAC
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
57 QCheckBox *minimize_on_close;
1406
f5bfde96d9c3 Improved Mac experience; QDoubleSpinBox for BitcoinAmountField
p2k <patrick.p2k.schneider@gmail.com>
parents: 1339
diff changeset
58 #endif
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
59 };
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
60
2425
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
61 class DisplayOptionsPage: public OptionsPage
1213
b76439e5e887 preparations for multiple unit (uBTC, mBTC, BTC) support, fix amount entry issue
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1096
diff changeset
62 {
1339
904c43af509f put Q_OBJECT everywhere it should be (removes warnings when running lupdate)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1258
diff changeset
63 Q_OBJECT
1213
b76439e5e887 preparations for multiple unit (uBTC, mBTC, BTC) support, fix amount entry issue
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1096
diff changeset
64 public:
b76439e5e887 preparations for multiple unit (uBTC, mBTC, BTC) support, fix amount entry issue
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1096
diff changeset
65 explicit DisplayOptionsPage(QWidget *parent=0);
b76439e5e887 preparations for multiple unit (uBTC, mBTC, BTC) support, fix amount entry issue
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1096
diff changeset
66
2425
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
67 virtual void setMapper(MonitoredDataMapper *mapper);
1213
b76439e5e887 preparations for multiple unit (uBTC, mBTC, BTC) support, fix amount entry issue
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1096
diff changeset
68 private:
1229
fa39b222e5e0 Full support for other units, add configuration option for default unit (used when displaying amounts)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1216
diff changeset
69 QValueComboBox *unit;
1234
c6808cd4794a Hide addresses in transaction overview by default, they can be re-shown as a configuration option
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1229
diff changeset
70 QCheckBox *display_addresses;
2425
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
71 };
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
72
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
73 class NetworkOptionsPage: public OptionsPage
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
74 {
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
75 Q_OBJECT
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
76 public:
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
77 explicit NetworkOptionsPage(QWidget *parent=0);
1213
b76439e5e887 preparations for multiple unit (uBTC, mBTC, BTC) support, fix amount entry issue
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1096
diff changeset
78
2425
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
79 virtual void setMapper(MonitoredDataMapper *mapper);
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
80 private:
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
81 QCheckBox *map_port_upnp;
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
82 QCheckBox *connect_socks4;
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
83 QLineEdit *proxy_ip;
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
84 QLineEdit *proxy_port;
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
85 BitcoinAmountField *fee_edit;
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
86 };
1213
b76439e5e887 preparations for multiple unit (uBTC, mBTC, BTC) support, fix amount entry issue
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1096
diff changeset
87
b76439e5e887 preparations for multiple unit (uBTC, mBTC, BTC) support, fix amount entry issue
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1096
diff changeset
88
1339
904c43af509f put Q_OBJECT everywhere it should be (removes warnings when running lupdate)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1258
diff changeset
89 #include "optionsdialog.moc"
904c43af509f put Q_OBJECT everywhere it should be (removes warnings when running lupdate)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1258
diff changeset
90
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
91 OptionsDialog::OptionsDialog(QWidget *parent):
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
92 QDialog(parent), contents_widget(0), pages_widget(0),
2425
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
93 model(0)
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
94 {
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
95 contents_widget = new QListWidget();
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
96 contents_widget->setMaximumWidth(128);
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
97
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
98 pages_widget = new QStackedWidget();
2425
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
99 pages_widget->setMinimumWidth(500);
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
100 pages_widget->setMinimumHeight(300);
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
101
2425
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
102 pages.append(new MainOptionsPage(this));
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
103 pages.append(new NetworkOptionsPage(this));
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
104 pages.append(new WindowOptionsPage(this));
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
105 pages.append(new DisplayOptionsPage(this));
1213
b76439e5e887 preparations for multiple unit (uBTC, mBTC, BTC) support, fix amount entry issue
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1096
diff changeset
106
2425
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
107 foreach(OptionsPage *page, pages)
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
108 {
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
109 QListWidgetItem *item = new QListWidgetItem(page->windowTitle());
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
110 contents_widget->addItem(item);
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
111 pages_widget->addWidget(page);
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
112 }
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
113
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
114 contents_widget->setCurrentRow(0);
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
115
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
116 QHBoxLayout *main_layout = new QHBoxLayout();
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
117 main_layout->addWidget(contents_widget);
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
118 main_layout->addWidget(pages_widget, 1);
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
119
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
120 QVBoxLayout *layout = new QVBoxLayout();
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
121 layout->addLayout(main_layout);
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
122
1096
094cd284ab55 use buttonbox for options dialog
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1086
diff changeset
123 QDialogButtonBox *buttonbox = new QDialogButtonBox();
094cd284ab55 use buttonbox for options dialog
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1086
diff changeset
124 buttonbox->setStandardButtons(QDialogButtonBox::Apply|QDialogButtonBox::Ok|QDialogButtonBox::Cancel);
094cd284ab55 use buttonbox for options dialog
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1086
diff changeset
125 apply_button = buttonbox->button(QDialogButtonBox::Apply);
094cd284ab55 use buttonbox for options dialog
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1086
diff changeset
126 layout->addWidget(buttonbox);
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
127
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
128 setLayout(layout);
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
129 setWindowTitle(tr("Options"));
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
130
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
131 /* Widget-to-option mapper */
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
132 mapper = new MonitoredDataMapper(this);
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
133 mapper->setSubmitPolicy(QDataWidgetMapper::ManualSubmit);
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
134 mapper->setOrientation(Qt::Vertical);
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
135 /* enable apply button when data modified */
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
136 connect(mapper, SIGNAL(viewModified()), this, SLOT(enableApply()));
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
137 /* disable apply button when new data loaded */
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
138 connect(mapper, SIGNAL(currentIndexChanged(int)), this, SLOT(disableApply()));
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
139
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
140 /* Event bindings */
1213
b76439e5e887 preparations for multiple unit (uBTC, mBTC, BTC) support, fix amount entry issue
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1096
diff changeset
141 connect(contents_widget, SIGNAL(currentRowChanged(int)), this, SLOT(changePage(int)));
1096
094cd284ab55 use buttonbox for options dialog
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1086
diff changeset
142 connect(buttonbox->button(QDialogButtonBox::Ok), SIGNAL(clicked()), this, SLOT(okClicked()));
094cd284ab55 use buttonbox for options dialog
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1086
diff changeset
143 connect(buttonbox->button(QDialogButtonBox::Cancel), SIGNAL(clicked()), this, SLOT(cancelClicked()));
094cd284ab55 use buttonbox for options dialog
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1086
diff changeset
144 connect(buttonbox->button(QDialogButtonBox::Apply), SIGNAL(clicked()), this, SLOT(applyClicked()));
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
145 }
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
146
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
147 void OptionsDialog::setModel(OptionsModel *model)
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
148 {
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
149 this->model = model;
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
150
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
151 mapper->setModel(model);
2425
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
152
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
153 foreach(OptionsPage *page, pages)
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
154 {
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
155 page->setMapper(mapper);
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
156 }
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
157
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
158 mapper->toFirst();
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
159 }
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
160
1213
b76439e5e887 preparations for multiple unit (uBTC, mBTC, BTC) support, fix amount entry issue
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1096
diff changeset
161 void OptionsDialog::changePage(int index)
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
162 {
1213
b76439e5e887 preparations for multiple unit (uBTC, mBTC, BTC) support, fix amount entry issue
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1096
diff changeset
163 pages_widget->setCurrentIndex(index);
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
164 }
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
165
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
166 void OptionsDialog::okClicked()
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
167 {
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
168 mapper->submit();
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
169 accept();
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
170 }
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
171
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
172 void OptionsDialog::cancelClicked()
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
173 {
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
174 reject();
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
175 }
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
176
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
177 void OptionsDialog::applyClicked()
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
178 {
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
179 mapper->submit();
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
180 apply_button->setEnabled(false);
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
181 }
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
182
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
183 void OptionsDialog::enableApply()
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
184 {
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
185 apply_button->setEnabled(true);
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
186 }
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
187
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
188 void OptionsDialog::disableApply()
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
189 {
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
190 apply_button->setEnabled(false);
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
191 }
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
192
2425
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
193 /* Main options */
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
194 MainOptionsPage::MainOptionsPage(QWidget *parent):
2425
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
195 OptionsPage(parent)
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
196 {
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
197 QVBoxLayout *layout = new QVBoxLayout();
2425
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
198 setWindowTitle(tr("Main"));
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
199
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
200 QLabel *fee_help = new QLabel(tr("Optional transaction fee per kB that helps make sure your transactions are processed quickly. Most transactions are 1 kB. Fee 0.01 recommended."));
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
201 fee_help->setWordWrap(true);
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
202 layout->addWidget(fee_help);
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
203
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
204 QHBoxLayout *fee_hbox = new QHBoxLayout();
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
205 fee_hbox->addSpacing(18);
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
206 QLabel *fee_label = new QLabel(tr("Pay transaction &fee"));
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
207 fee_hbox->addWidget(fee_label);
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
208 fee_edit = new BitcoinAmountField();
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
209
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
210 fee_label->setBuddy(fee_edit);
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
211 fee_hbox->addWidget(fee_edit);
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
212 fee_hbox->addStretch(1);
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
213
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
214 layout->addLayout(fee_hbox);
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
215
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
216 detach_database = new QCheckBox(tr("Detach databases at shutdown"));
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
217 detach_database->setToolTip(tr("Detach block and address databases at shutdown. This means they can be moved to another data directory, but it slows down shutdown. The wallet is always detached."));
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
218 layout->addWidget(detach_database);
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
219
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
220 layout->addStretch(1); // Extra space at bottom
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
221 setLayout(layout);
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
222 }
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
223
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
224 void MainOptionsPage::setMapper(MonitoredDataMapper *mapper)
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
225 {
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
226 // Map model to widgets
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
227 mapper->addMapping(fee_edit, OptionsModel::Fee);
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
228 mapper->addMapping(detach_database, OptionsModel::DetachDatabases);
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
229 }
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
230
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
231 /* Display options */
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
232 DisplayOptionsPage::DisplayOptionsPage(QWidget *parent):
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
233 OptionsPage(parent)
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
234 {
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
235 setWindowTitle(tr("Display"));
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
236
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
237 QVBoxLayout *layout = new QVBoxLayout();
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
238
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
239 QHBoxLayout *unit_hbox = new QHBoxLayout();
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
240 unit_hbox->addSpacing(18);
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
241 QLabel *unit_label = new QLabel(tr("&Unit to show amounts in: "));
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
242 unit_hbox->addWidget(unit_label);
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
243 unit = new QValueComboBox(this);
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
244 unit->setModel(new BitcoinUnits(this));
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
245 unit->setToolTip(tr("Choose the default subdivision unit to show in the interface, and when sending coins"));
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
246
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
247 unit_label->setBuddy(unit);
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
248 unit_hbox->addWidget(unit);
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
249
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
250 layout->addLayout(unit_hbox);
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
251
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
252 display_addresses = new QCheckBox(tr("&Display addresses in transaction list"), this);
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
253 display_addresses->setToolTip(tr("Whether to show Bitcoin addresses in the transaction list"));
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
254 layout->addWidget(display_addresses);
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
255
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
256 layout->addStretch();
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
257 setLayout(layout);
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
258 }
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
259
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
260 void DisplayOptionsPage::setMapper(MonitoredDataMapper *mapper)
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
261 {
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
262 mapper->addMapping(unit, OptionsModel::DisplayUnit);
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
263 mapper->addMapping(display_addresses, OptionsModel::DisplayAddresses);
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
264 }
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
265
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
266 /* Window options */
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
267 WindowOptionsPage::WindowOptionsPage(QWidget *parent):
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
268 OptionsPage(parent)
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
269 {
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
270 QVBoxLayout *layout = new QVBoxLayout();
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
271 setWindowTitle(tr("Window"));
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
272
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
273 bitcoin_at_startup = new QCheckBox(tr("&Start Bitcoin on window system startup"));
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
274 bitcoin_at_startup->setToolTip(tr("Automatically start Bitcoin after the computer is turned on"));
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
275 layout->addWidget(bitcoin_at_startup);
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
276
1406
f5bfde96d9c3 Improved Mac experience; QDoubleSpinBox for BitcoinAmountField
p2k <patrick.p2k.schneider@gmail.com>
parents: 1339
diff changeset
277 #ifndef Q_WS_MAC
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
278 minimize_to_tray = new QCheckBox(tr("&Minimize to the tray instead of the taskbar"));
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
279 minimize_to_tray->setToolTip(tr("Show only a tray icon after minimizing the window"));
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
280 layout->addWidget(minimize_to_tray);
2197
18f37e80075e Toggle main window hide on tray icon click
sje397 <sje397@gmail.com>
parents: 1802
diff changeset
281
18f37e80075e Toggle main window hide on tray icon click
sje397 <sje397@gmail.com>
parents: 1802
diff changeset
282 minimize_on_close = new QCheckBox(tr("M&inimize on close"));
18f37e80075e Toggle main window hide on tray icon click
sje397 <sje397@gmail.com>
parents: 1802
diff changeset
283 minimize_on_close->setToolTip(tr("Minimize instead of exit the application when the window is closed. When this option is enabled, the application will be closed only after selecting Quit in the menu."));
18f37e80075e Toggle main window hide on tray icon click
sje397 <sje397@gmail.com>
parents: 1802
diff changeset
284 layout->addWidget(minimize_on_close);
1406
f5bfde96d9c3 Improved Mac experience; QDoubleSpinBox for BitcoinAmountField
p2k <patrick.p2k.schneider@gmail.com>
parents: 1339
diff changeset
285 #endif
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
286
2425
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
287 layout->addStretch(1); // Extra space at bottom
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
288 setLayout(layout);
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
289 }
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
290
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
291 void WindowOptionsPage::setMapper(MonitoredDataMapper *mapper)
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
292 {
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
293 // Map model to widgets
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
294 mapper->addMapping(bitcoin_at_startup, OptionsModel::StartAtStartup);
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
295 #ifndef Q_WS_MAC
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
296 mapper->addMapping(minimize_to_tray, OptionsModel::MinimizeToTray);
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
297 #endif
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
298 #ifndef Q_WS_MAC
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
299 mapper->addMapping(minimize_on_close, OptionsModel::MinimizeOnClose);
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
300 #endif
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
301 }
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
302
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
303 /* Network options */
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
304 NetworkOptionsPage::NetworkOptionsPage(QWidget *parent):
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
305 OptionsPage(parent)
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
306 {
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
307 QVBoxLayout *layout = new QVBoxLayout();
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
308 setWindowTitle(tr("Network"));
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
309
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
310 map_port_upnp = new QCheckBox(tr("Map port using &UPnP"));
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
311 map_port_upnp->setToolTip(tr("Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled."));
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
312 layout->addWidget(map_port_upnp);
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
313
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
314 connect_socks4 = new QCheckBox(tr("&Connect through SOCKS4 proxy:"));
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
315 connect_socks4->setToolTip(tr("Connect to the Bitcon network through a SOCKS4 proxy (e.g. when connecting through Tor)"));
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
316 layout->addWidget(connect_socks4);
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
317
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
318 QHBoxLayout *proxy_hbox = new QHBoxLayout();
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
319 proxy_hbox->addSpacing(18);
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
320 QLabel *proxy_ip_label = new QLabel(tr("Proxy &IP: "));
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
321 proxy_hbox->addWidget(proxy_ip_label);
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
322 proxy_ip = new QLineEdit();
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
323 proxy_ip->setMaximumWidth(140);
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
324 proxy_ip->setEnabled(false);
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
325 proxy_ip->setValidator(new QRegExpValidator(QRegExp("[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}"), this));
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
326 proxy_ip->setToolTip(tr("IP address of the proxy (e.g. 127.0.0.1)"));
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
327 proxy_ip_label->setBuddy(proxy_ip);
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
328 proxy_hbox->addWidget(proxy_ip);
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
329 QLabel *proxy_port_label = new QLabel(tr("&Port: "));
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
330 proxy_hbox->addWidget(proxy_port_label);
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
331 proxy_port = new QLineEdit();
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
332 proxy_port->setMaximumWidth(55);
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
333 proxy_port->setValidator(new QIntValidator(0, 65535, this));
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
334 proxy_port->setEnabled(false);
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
335 proxy_port->setToolTip(tr("Port of the proxy (e.g. 1234)"));
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
336 proxy_port_label->setBuddy(proxy_port);
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
337 proxy_hbox->addWidget(proxy_port);
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
338 proxy_hbox->addStretch(1);
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
339 layout->addLayout(proxy_hbox);
2317
2d4c7d77f691 Make lsn_reset ("detach databases") optional and off by default.
Pieter Wuille <pieter.wuille@gmail.com>
parents: 2225
diff changeset
340
1076
01bf48790a02 remove commented code, use // for one-line comments and comments inside functions
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1049
diff changeset
341 layout->addStretch(1); // Extra space at bottom
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
342 setLayout(layout);
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
343
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
344 connect(connect_socks4, SIGNAL(toggled(bool)), proxy_ip, SLOT(setEnabled(bool)));
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
345 connect(connect_socks4, SIGNAL(toggled(bool)), proxy_port, SLOT(setEnabled(bool)));
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
346
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
347 #ifndef USE_UPNP
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
348 map_port_upnp->setDisabled(true);
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
349 #endif
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
350 }
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
351
2425
aa46239b5b09 Organize optionsdialog (split off Window and Network page)
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 2423
diff changeset
352 void NetworkOptionsPage::setMapper(MonitoredDataMapper *mapper)
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
353 {
1076
01bf48790a02 remove commented code, use // for one-line comments and comments inside functions
Wladimir J. van der Laan <laanwj@gmail.com>
parents: 1049
diff changeset
354 // Map model to widgets
1049
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
355 mapper->addMapping(map_port_upnp, OptionsModel::MapPortUPnP);
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
356 mapper->addMapping(connect_socks4, OptionsModel::ConnectSOCKS4);
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
357 mapper->addMapping(proxy_ip, OptionsModel::ProxyIP);
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
358 mapper->addMapping(proxy_port, OptionsModel::ProxyPort);
e5518d9b9f05 move back to original directory structure
Wladimir J. van der Laan <laanwj@gmail.com>
parents:
diff changeset
359 }