aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornils <nils@34ebc366-c3a9-4b3c-9f84-69acf7962910>2010-05-07 16:14:31 +0000
committernils <nils@34ebc366-c3a9-4b3c-9f84-69acf7962910>2010-05-07 16:14:31 +0000
commit91f676e4f04230e720a89a0304e297c5e661b11b (patch)
treece8a885af9f8822d0165311638fb01ad5b0b96ee
parentfinished spanish translation (diff)
downloadgpg4usb-91f676e4f04230e720a89a0304e297c5e661b11b.tar.gz
gpg4usb-91f676e4f04230e720a89a0304e297c5e661b11b.zip
added save and restore checked keys
git-svn-id: http://cpunk.de/svn/src/gpg4usb/trunk@315 34ebc366-c3a9-4b3c-9f84-69acf7962910
-rw-r--r--gpgwin.cpp32
-rw-r--r--keylist.cpp25
-rw-r--r--keylist.h2
-rwxr-xr-xsettingsdialog.cpp29
-rwxr-xr-xsettingsdialog.h3
5 files changed, 80 insertions, 11 deletions
diff --git a/gpgwin.cpp b/gpgwin.cpp
index ddb2f44..d88f6a8 100644
--- a/gpgwin.cpp
+++ b/gpgwin.cpp
@@ -63,7 +63,6 @@ GpgWin::GpgWin()
void GpgWin::restoreSettings()
{
QSettings settings;
- //restoreGeometry(settings.value("window/geometry").toByteArray());
// state sets pos & size of dock-widgets
this->restoreState(settings.value("window/windowState").toByteArray());
@@ -87,6 +86,14 @@ void GpgWin::restoreSettings()
// Iconstyle
Qt::ToolButtonStyle buttonStyle = static_cast<Qt::ToolButtonStyle>(settings.value("toolbar/iconstyle", Qt::ToolButtonTextUnderIcon).toUInt());
this->setToolButtonStyle(buttonStyle);
+
+ // Checked Keys
+ Qt::CheckState keySave = static_cast<Qt::CheckState>(settings.value("keys/keySave", Qt::Unchecked).toUInt());
+ if (keySave == Qt::Checked) {
+ QStringList keyIds = settings.value("keys/keyList").toStringList();
+ mKeyList->setChecked(&keyIds);
+
+ }
}
void GpgWin::createActions()
@@ -278,6 +285,8 @@ void GpgWin::createStatusBar()
void GpgWin::createDockWindows()
{
+ /** KeyList-Dockwindow
+ */
dock = new QDockWidget(tr("Encrypt for:"), this);
dock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
addDockWidget(Qt::RightDockWidgetArea, dock);
@@ -292,18 +301,37 @@ void GpgWin::createDockWindows()
void GpgWin::closeEvent(QCloseEvent *event)
{
+ /** ask to save changes, if text modified
+ */
if (maybeSave()) {
event->accept();
} else {
event->ignore();
}
+ /** Save the settings
+ */
QSettings settings;
- //settings.setValue("geometry", saveGeometry());
+
+ // window position and size
settings.setValue("window/windowState", saveState());
settings.setValue("window/pos", pos());
settings.setValue("window/size", size());
+ // keyid-list of private checked keys
+ Qt::CheckState keySave = static_cast<Qt::CheckState>(settings.value("keys/keySave", Qt::Unchecked).toUInt());
+ if ( keySave == Qt::Checked ) {
+ QStringList *keyIds = mKeyList->getChecked();
+ if (!keyIds->isEmpty()){
+ settings.setValue("keys/keyList", *keyIds);
+ } else {
+ settings.setValue("keys/keyList","");
+ }
+ }
+
+ /********************
+ * Quit programm
+ * ******************/
QMainWindow::closeEvent(event);
}
diff --git a/keylist.cpp b/keylist.cpp
index 76e9291..7a0b12e 100644
--- a/keylist.cpp
+++ b/keylist.cpp
@@ -35,6 +35,7 @@ KeyList::KeyList(GpgME::Context *ctx, QString iconpath, QWidget *parent)
mKeyList->setColumnWidth(1, 20);
mKeyList->sortByColumn(2, Qt::AscendingOrder);
mKeyList->setSelectionBehavior(QAbstractItemView::SelectRows);
+ // id of key
mKeyList->setColumnHidden(4, true);
// tableitems not editable
mKeyList->setEditTriggers(QAbstractItemView::NoEditTriggers);
@@ -108,6 +109,30 @@ QStringList *KeyList::getChecked()
return ret;
}
+void KeyList::setChecked(QStringList *keyIds)
+{
+ if (!keyIds->isEmpty()){
+ if (keyIds->at(0) != "" ){
+ for (int i = 0; i < mKeyList->rowCount(); i++) {
+ if (keyIds->contains(mKeyList->item(i, 4)->text())) {
+ mKeyList->item(i, 0)->setCheckState(Qt::Checked);
+ }
+ }
+ }
+ }
+}
+
+/*QStringList *KeyList::getPrivateChecked()
+{
+ QStringList *ret = new QStringList();
+ for (int i = 0; i < mKeyList->rowCount(); i++) {
+ if ((mKeyList->item(i, 0)->checkState() == Qt::Checked) && (mKeyList->item(i, 4))) {
+ *ret << mKeyList->item(i, 4)->text();
+ }
+ }
+ return ret;
+}
+*/
QStringList *KeyList::getSelected()
{
QStringList *ret = new QStringList();
diff --git a/keylist.h b/keylist.h
index f5034d4..8977932 100644
--- a/keylist.h
+++ b/keylist.h
@@ -44,6 +44,8 @@ public:
KeyList(GpgME::Context *ctx, QString iconpath, QWidget *parent = 0);
QStringList *getChecked();
+ void setChecked(QStringList *keyIds);
+ //QStringList *getPrivateChecked();
QStringList *getSelected();
public slots:
diff --git a/settingsdialog.cpp b/settingsdialog.cpp
index aed2c26..4685cad 100755
--- a/settingsdialog.cpp
+++ b/settingsdialog.cpp
@@ -91,6 +91,15 @@ SettingsDialog::SettingsDialog(QWidget *parent)
windowSizeBoxLayout->addWidget(windowSizeCheckBox);
windowSizeBox->setLayout(windowSizeBoxLayout);
+ /*****************************************
+ * Save-Checked-Keys-Box
+ *****************************************/
+ saveCheckedKeysBox = new QGroupBox(tr("Save Checked Keys"));
+ saveCheckedKeysBoxLayout = new QHBoxLayout();
+ saveCheckedKeysCheckBox =new QCheckBox(tr("Save checked private keys on exit"),this);
+ saveCheckedKeysBoxLayout->addWidget(saveCheckedKeysCheckBox);
+ saveCheckedKeysBox->setLayout(saveCheckedKeysBoxLayout);
+
/*****************************************
* Language Select Box
*****************************************/
@@ -122,6 +131,7 @@ SettingsDialog::SettingsDialog(QWidget *parent)
vbox->addWidget(iconSizeBox);
vbox->addWidget(iconStyleBox);
vbox->addWidget(windowSizeBox);
+ vbox->addWidget(saveCheckedKeysBox);
vbox->addWidget(langBox);
vbox->addWidget(buttonBox);
setLayout(vbox);
@@ -163,12 +173,17 @@ void SettingsDialog::setSettings()
break;
}
+ // Window Save and Position
Qt::CheckState windowSave = static_cast<Qt::CheckState>(settings.value("window/windowSave", Qt::Unchecked).toUInt());
windowSizeCheckBox->setCheckState(windowSave);
- //static_cast<Qt::QString>
+
+ // Keysaving
+ Qt::CheckState keySave = static_cast<Qt::CheckState>(settings.value("keys/keySave", Qt::Unchecked).toUInt());
+ saveCheckedKeysCheckBox->setCheckState(keySave);
+
+ //Language setting
QString langKey = settings.value("int/lang").toString();
QString langValue = lang.value(langKey);
-
langSelectBox->setCurrentIndex(langSelectBox->findText(langValue));
}
@@ -200,6 +215,7 @@ void SettingsDialog::applySettings()
}
settings.setValue("window/windowSave", windowSizeCheckBox->checkState());
+ settings.setValue("keys/keySave", saveCheckedKeysCheckBox->checkState());
//qDebug() << "lang:" << langSelectBox->currentText() << " : " << lang.key(langSelectBox->currentText());
settings.setValue("int/lang", lang.key(langSelectBox->currentText()));
@@ -208,13 +224,8 @@ void SettingsDialog::applySettings()
}
// http://www.informit.com/articles/article.aspx?p=1405555&seqNum=3
-QHash<QString, QString> SettingsDialog::listLanguages() {
-
- // translate this String to language used, the language list gets
- // filled from this
-// QString locaLangName = tr("English", "Insert local name of language here. This is used for the language menu of the settingsdialog");
-
- //QStringList languages;
+QHash<QString, QString> SettingsDialog::listLanguages()
+{
QHash<QString, QString> languages;
languages.insert("", tr("System Default"));
diff --git a/settingsdialog.h b/settingsdialog.h
index 88dd424..7a87e19 100755
--- a/settingsdialog.h
+++ b/settingsdialog.h
@@ -45,6 +45,7 @@ private:
QGroupBox *iconSizeBox;
QGroupBox *iconStyleBox;
QGroupBox *windowSizeBox;
+ QGroupBox *saveCheckedKeysBox;
QDialogButtonBox *buttonBox;
QButtonGroup *iconSizeGroup;
@@ -57,12 +58,14 @@ private:
QRadioButton *iconIconsButton;
QRadioButton *iconAllButton;
QCheckBox *windowSizeCheckBox;
+ QCheckBox *saveCheckedKeysCheckBox;
QComboBox *langSelectBox;
QHash<QString, QString> lang;
QHBoxLayout *iconSizeBoxLayout;
QHBoxLayout *iconStyleBoxLayout;
QHBoxLayout *windowSizeBoxLayout;
+ QHBoxLayout *saveCheckedKeysBoxLayout;
QVBoxLayout *vbox;
void setSettings();