2 * This file is part of NeverNote
\r
3 * Copyright 2009 Randy Baumgarte
\r
5 * This file may be licensed under the terms of of the
\r
6 * GNU General Public License Version 2 (the ``GPL'').
\r
8 * Software distributed under the License is distributed
\r
9 * on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either
\r
10 * express or implied. See the GPL for the specific language
\r
11 * governing rights and limitations.
\r
13 * You should have received a copy of the GPL along with this
\r
14 * program. If not, go to http://www.gnu.org/licenses/gpl.html
\r
15 * or write to the Free Software Foundation, Inc.,
\r
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
\r
21 //**********************************************
\r
22 //**********************************************
\r
23 //* This dialog is the Edit/Preferences dialog
\r
24 //* when "Connection" is selected. Used to store
\r
25 //* Evernote information.
\r
26 //**********************************************
\r
27 //**********************************************
\r
29 package cx.fbn.nevernote.dialog;
\r
31 import java.util.List;
\r
33 import com.trolltech.qt.gui.QCheckBox;
\r
34 import com.trolltech.qt.gui.QComboBox;
\r
35 import com.trolltech.qt.gui.QFormLayout;
\r
36 import com.trolltech.qt.gui.QGridLayout;
\r
37 import com.trolltech.qt.gui.QGroupBox;
\r
38 import com.trolltech.qt.gui.QLabel;
\r
39 import com.trolltech.qt.gui.QLineEdit;
\r
40 import com.trolltech.qt.gui.QSpinBox;
\r
41 import com.trolltech.qt.gui.QVBoxLayout;
\r
42 import com.trolltech.qt.gui.QWidget;
\r
44 import cx.fbn.nevernote.Global;
\r
45 import cx.fbn.nevernote.utilities.SyncTimes;
\r
47 public class ConfigConnectionPage extends QWidget {
\r
48 private final QLineEdit useridEdit;
\r
49 private final QLineEdit passwordEdit;
\r
50 private final QCheckBox rememberPassword;
\r
51 private final QCheckBox autoLogin;
\r
52 private final QComboBox syncInterval;
\r
53 private final SyncTimes syncTimes;
\r
54 private final QCheckBox synchronizeOnClose;
\r
55 private final QCheckBox synchronizeDeletedContents;
\r
57 private final QLineEdit proxyHost;
\r
58 private final QSpinBox proxyPort;
\r
59 private final QLineEdit proxyUserid;
\r
60 private final QLineEdit proxyPassword;
\r
62 public ConfigConnectionPage(QWidget parent) {
\r
65 QGroupBox useridGroup = new QGroupBox(tr("Connection"));
\r
66 QLabel useridLabel = new QLabel(tr("Userid"));
\r
67 QLabel passwordLabel = new QLabel(tr("Password"));
\r
70 useridEdit = new QLineEdit();
\r
71 useridEdit.setText(Global.username);
\r
73 passwordEdit = new QLineEdit();
\r
74 passwordEdit.setText(Global.password);
\r
75 passwordEdit.setEchoMode(QLineEdit.EchoMode.Password);
\r
77 syncInterval = new QComboBox(this);
\r
78 syncTimes = new SyncTimes();
\r
79 syncInterval.addItems(syncTimes.stringValues());
\r
81 rememberPassword = new QCheckBox("Remember Userid & Password");
\r
82 autoLogin = new QCheckBox("Automatic Connect");
\r
83 synchronizeDeletedContents = new QCheckBox("Synchronze Deleted Note Content");
\r
84 synchronizeOnClose = new QCheckBox("Synchronize On Shutdown (only if connected)");
\r
86 QGroupBox proxyGroup = new QGroupBox("Proxy Settings");
\r
87 QLabel proxyHostLabel = new QLabel(tr("Host"));
\r
88 QLabel proxyPortLabel = new QLabel(tr("Port"));
\r
89 QLabel proxyUseridLabel = new QLabel(tr("Userid"));
\r
90 QLabel proxyPasswordLabel = new QLabel(tr("Password"));
\r
91 proxyHost = new QLineEdit();
\r
92 proxyPort = new QSpinBox();
\r
93 proxyUserid = new QLineEdit();
\r
94 proxyPassword = new QLineEdit();
\r
95 proxyPassword.setEchoMode(QLineEdit.EchoMode.Password);
\r
97 proxyHost.setText(Global.getProxyValue("url"));
\r
98 String portString = Global.getProxyValue("port");
\r
99 Integer port = new Integer(80);
\r
101 port = new Integer(portString.trim());
\r
102 } catch (Exception e) {
\r
105 proxyPort.setMinimum(1);
\r
106 proxyPort.setMaximum(65565);
\r
107 proxyPort.setValue(port);
\r
108 proxyUserid.setText(Global.getProxyValue("userid"));
\r
109 proxyPassword.setText(Global.getProxyValue("password"));
\r
111 if (!proxyHost.text().trim().equals("") && proxyPort.text().trim().equals(""))
\r
112 proxyPort.setValue(80);
\r
115 QFormLayout useridLayout = new QFormLayout();
\r
116 useridLayout.addWidget(useridLabel);
\r
117 useridLayout.addWidget(useridEdit);
\r
118 useridLayout.addWidget(passwordLabel);
\r
119 useridLayout.addWidget(passwordEdit);
\r
120 useridLayout.addWidget(new QLabel(tr("Syncronization Interval")));
\r
121 useridLayout.addWidget(syncInterval);
\r
122 useridLayout.addWidget(rememberPassword);
\r
123 useridLayout.addWidget(autoLogin);
\r
124 useridLayout.addWidget(synchronizeOnClose);
\r
125 useridLayout.addWidget(synchronizeDeletedContents);
\r
127 QGridLayout proxyLayout = new QGridLayout();
\r
128 proxyLayout.addWidget(proxyHostLabel,1,1);
\r
129 proxyLayout.addWidget(proxyHost,1,2);
\r
130 proxyLayout.addWidget(proxyPortLabel,2,1);
\r
131 proxyLayout.addWidget(proxyPort,2,2);
\r
132 proxyLayout.addWidget(proxyUseridLabel,3,1);
\r
133 proxyLayout.addWidget(proxyUserid,3,2);
\r
134 proxyLayout.addWidget(proxyPasswordLabel,4,1);
\r
135 proxyLayout.addWidget(proxyPassword,4,2);
\r
137 useridGroup.setLayout(useridLayout);
\r
138 proxyGroup.setLayout(proxyLayout);
\r
140 // Add everything together
\r
141 QVBoxLayout mainLayout = new QVBoxLayout();
\r
142 mainLayout.addWidget(useridGroup);
\r
143 mainLayout.addWidget(proxyGroup);
\r
144 mainLayout.addStretch(1);
\r
145 setLayout(mainLayout);
\r
150 //*****************************************
\r
151 //* Userid get/set methods
\r
152 //*****************************************
\r
153 public void setUserid(String id) {
\r
154 useridEdit.setText(id);
\r
156 public String getUserid() {
\r
157 return useridEdit.text();
\r
161 //*****************************************
\r
162 //* Password get/set methods
\r
163 //*****************************************
\r
164 public void setPassword(String id) {
\r
165 passwordEdit.setText(id);
\r
167 public String getPassword() {
\r
168 return passwordEdit.text();
\r
172 //*******************************************
\r
173 //* Remember Password get/set
\r
174 //*******************************************
\r
175 public void setRememberPassword(boolean val) {
\r
176 rememberPassword.setChecked(val);
\r
178 public boolean getRememberPassword() {
\r
179 return rememberPassword.isChecked();
\r
185 //*******************************************
\r
186 //* Automatic login get/set
\r
187 //*******************************************
\r
188 public void setAutomaticLogin(boolean val) {
\r
189 autoLogin.setChecked(val);
\r
191 public boolean getAutomaticLogin() {
\r
192 return autoLogin.isChecked();
\r
197 //*****************************************
\r
198 //* Synchronize Deleted Note Content
\r
199 //*****************************************
\r
200 public void setSyncronizeDeletedContent(boolean val) {
\r
201 synchronizeDeletedContents.setChecked(val);
\r
203 public boolean getSynchronizeDeletedContent() {
\r
204 return synchronizeDeletedContents.isChecked();
\r
209 //******************************************
\r
210 //* Get Proxy settings
\r
211 //******************************************
\r
212 public String getProxyUrl() {
\r
213 return proxyHost.text().trim();
\r
215 public String getProxyPort() {
\r
216 if (!proxyHost.text().trim().equalsIgnoreCase("") && proxyPort.text().trim().equals(""))
\r
218 if (proxyHost.text().trim().equals(""))
\r
220 return proxyPort.text().trim();
\r
222 public String getProxyUserid() {
\r
223 if (proxyHost.text().trim().equals(""))
\r
225 return proxyUserid.text().trim();
\r
227 public String getProxyPassword() {
\r
228 if (proxyHost.text().trim().equals(""))
\r
230 return proxyPassword.text().trim();
\r
236 //*****************************************
\r
237 //* Get/set synchronize on close
\r
238 //*****************************************
\r
239 public boolean getSynchronizeOnClose() {
\r
240 return synchronizeOnClose.isChecked();
\r
242 public void setSynchronizeOnClose(boolean val) {
\r
243 synchronizeOnClose.setChecked(val);
\r
247 //*****************************************
\r
248 //* Get/set sync intervals
\r
249 //*****************************************
\r
250 public String getSyncInterval() {
\r
251 int i = syncInterval.currentIndex();
\r
252 return syncInterval.itemText(i);
\r
254 public void setSyncInterval(String s) {
\r
255 List<String> vals = syncTimes.stringValues();
\r
256 for (int i=0; i<vals.size(); i++) {
\r
257 if (vals.get(i).equalsIgnoreCase(s))
\r
258 syncInterval.setCurrentIndex(i);
\r