/*
* This file is part of NixNote
* Copyright 2009 Randy Baumgarte
*
* This file may be licensed under the terms of of the
* GNU General Public License Version 2 (the ``GPL'').
*
* Software distributed under the License is distributed
* on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either
* express or implied. See the GPL for the specific language
* governing rights and limitations.
*
* You should have received a copy of the GPL along with this
* program. If not, go to http://www.gnu.org/licenses/gpl.html
* or write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
//**********************************************
//**********************************************
//* This dialog is the Edit/Preferences dialog
//* when "Connection" is selected. Used to store
//* Evernote information.
//**********************************************
//**********************************************
package cx.fbn.nevernote.dialog;
import java.util.List;
import com.trolltech.qt.gui.QCheckBox;
import com.trolltech.qt.gui.QComboBox;
import com.trolltech.qt.gui.QFormLayout;
import com.trolltech.qt.gui.QGridLayout;
import com.trolltech.qt.gui.QGroupBox;
import com.trolltech.qt.gui.QLabel;
import com.trolltech.qt.gui.QLineEdit;
import com.trolltech.qt.gui.QSpinBox;
import com.trolltech.qt.gui.QVBoxLayout;
import com.trolltech.qt.gui.QWidget;
import cx.fbn.nevernote.Global;
import cx.fbn.nevernote.utilities.SyncTimes;
public class ConfigConnectionPage extends QWidget {
private final QCheckBox autoLogin;
private final QComboBox syncInterval;
private final SyncTimes syncTimes;
private final QCheckBox synchronizeOnClose;
private final QCheckBox synchronizeDeletedContents;
private final QLineEdit proxyHost;
private final QSpinBox proxyPort;
private final QLineEdit proxyUserid;
private final QLineEdit proxyPassword;
public ConfigConnectionPage(QWidget parent) {
// Userid settings
QGroupBox useridGroup = new QGroupBox(tr("Connection"));
syncInterval = new QComboBox(this);
syncTimes = new SyncTimes();
syncInterval.addItems(syncTimes.stringValues());
autoLogin = new QCheckBox("Automatic Connect");
synchronizeDeletedContents = new QCheckBox("Synchronze Deleted Note Content");
synchronizeOnClose = new QCheckBox("Synchronize On Shutdown (only if connected)");
QGroupBox proxyGroup = new QGroupBox("Proxy Settings");
QLabel proxyHostLabel = new QLabel(tr("Host"));
QLabel proxyPortLabel = new QLabel(tr("Port"));
QLabel proxyUseridLabel = new QLabel(tr("Userid"));
QLabel proxyPasswordLabel = new QLabel(tr("Password"));
proxyHost = new QLineEdit();
proxyPort = new QSpinBox();
proxyUserid = new QLineEdit();
proxyPassword = new QLineEdit();
proxyPassword.setEchoMode(QLineEdit.EchoMode.Password);
proxyHost.setText(Global.getProxyValue("url"));
String portString = Global.getProxyValue("port");
Integer port = new Integer(80);
try {
port = new Integer(portString.trim());
} catch (Exception e) {
}
proxyPort.setMinimum(1);
proxyPort.setMaximum(65565);
proxyPort.setValue(port);
proxyUserid.setText(Global.getProxyValue("userid"));
proxyPassword.setText(Global.getProxyValue("password"));
if (!proxyHost.text().trim().equals("") && proxyPort.text().trim().equals(""))
proxyPort.setValue(80);
QFormLayout useridLayout = new QFormLayout();
useridLayout.addWidget(new QLabel(tr("Syncronization Interval")));
useridLayout.addWidget(syncInterval);
useridLayout.addWidget(autoLogin);
useridLayout.addWidget(synchronizeOnClose);
useridLayout.addWidget(synchronizeDeletedContents);
QGridLayout proxyLayout = new QGridLayout();
proxyLayout.addWidget(proxyHostLabel,1,1);
proxyLayout.addWidget(proxyHost,1,2);
proxyLayout.addWidget(proxyPortLabel,2,1);
proxyLayout.addWidget(proxyPort,2,2);
proxyLayout.addWidget(proxyUseridLabel,3,1);
proxyLayout.addWidget(proxyUserid,3,2);
proxyLayout.addWidget(proxyPasswordLabel,4,1);
proxyLayout.addWidget(proxyPassword,4,2);
useridGroup.setLayout(useridLayout);
proxyGroup.setLayout(proxyLayout);
// Add everything together
QVBoxLayout mainLayout = new QVBoxLayout();
mainLayout.addWidget(useridGroup);
mainLayout.addWidget(proxyGroup);
mainLayout.addStretch(1);
setLayout(mainLayout);
}
//*******************************************
//* Automatic login get/set
//*******************************************
public void setAutomaticLogin(boolean val) {
autoLogin.setChecked(val);
}
public boolean getAutomaticLogin() {
return autoLogin.isChecked();
}
//*****************************************
//* Synchronize Deleted Note Content
//*****************************************
public void setSyncronizeDeletedContent(boolean val) {
synchronizeDeletedContents.setChecked(val);
}
public boolean getSynchronizeDeletedContent() {
return synchronizeDeletedContents.isChecked();
}
//******************************************
//* Get Proxy settings
//******************************************
public String getProxyUrl() {
return proxyHost.text().trim();
}
public String getProxyPort() {
if (!proxyHost.text().trim().equalsIgnoreCase("") && proxyPort.text().trim().equals(""))
return "80";
if (proxyHost.text().trim().equals(""))
return "";
return proxyPort.text().trim();
}
public String getProxyUserid() {
if (proxyHost.text().trim().equals(""))
return "";
return proxyUserid.text().trim();
}
public String getProxyPassword() {
if (proxyHost.text().trim().equals(""))
return "";
return proxyPassword.text().trim();
}
//*****************************************
//* Get/set synchronize on close
//*****************************************
public boolean getSynchronizeOnClose() {
return synchronizeOnClose.isChecked();
}
public void setSynchronizeOnClose(boolean val) {
synchronizeOnClose.setChecked(val);
}
//*****************************************
//* Get/set sync intervals
//*****************************************
public String getSyncInterval() {
int i = syncInterval.currentIndex();
return syncInterval.itemText(i);
}
public void setSyncInterval(String s) {
List<String> vals = syncTimes.stringValues();
for (int i=0; i<vals.size(); i++) {
if (vals.get(i).equalsIgnoreCase(s))
syncInterval.setCurrentIndex(i);
}
}
}