diff options
author | ubbo <ubbo@34ebc366-c3a9-4b3c-9f84-69acf7962910> | 2008-09-20 12:56:06 +0000 |
---|---|---|
committer | ubbo <ubbo@34ebc366-c3a9-4b3c-9f84-69acf7962910> | 2008-09-20 12:56:06 +0000 |
commit | 33da48f0bb4b2eb2b61374c4822d5fd7ea4cd7cf (patch) | |
tree | 85559386cb462c605228b45c3cfcfdf704f3ed4a | |
parent | gpgwin.*, ported r157 (simple fix for 'NO DATA'-error) from trunk (diff) | |
download | gpg4usb-33da48f0bb4b2eb2b61374c4822d5fd7ea4cd7cf.tar.gz gpg4usb-33da48f0bb4b2eb2b61374c4822d5fd7ea4cd7cf.zip |
ported r159-r162 (QTableWidget in Keylist, fix for undefined int in keylist) from trunk
git-svn-id: http://cpunk.de/svn/src/gpg4usb/branches/0.1@168 34ebc366-c3a9-4b3c-9f84-69acf7962910
-rw-r--r-- | context.cpp | 2 | ||||
-rw-r--r-- | context.h | 5 | ||||
-rw-r--r-- | gpgwin.cpp | 88 | ||||
-rw-r--r-- | gpgwin.h | 3 | ||||
-rw-r--r-- | keylist.cpp | 68 | ||||
-rw-r--r-- | keylist.h | 5 |
6 files changed, 97 insertions, 74 deletions
diff --git a/context.cpp b/context.cpp index 9db8aad..820ea57 100644 --- a/context.cpp +++ b/context.cpp @@ -150,7 +150,7 @@ GpgKeyList Context::listKeys() GpgKeyList::iterator it = keys.begin(); while (it != keys.end()) { if (key->subkeys->keyid == it->id.toStdString()) - it->privkey = 1; + it->privkey = true; it++; } @@ -30,10 +30,13 @@ class GpgKey { public: + GpgKey() { + privkey=false; + } QString id; QString name; QString email; - int privkey; + bool privkey; }; typedef QLinkedList< GpgKey > GpgKeyList; @@ -183,16 +183,16 @@ void GpgWin::createMenus() editMenu->addAction(pasteAct); editMenu->addAction(selectallAct); - cryptMenu = menuBar()->addMenu(tr("&Crypt")); + cryptMenu = menuBar()->addMenu(tr("&Crypt")); cryptMenu->addAction(encryptAct); cryptMenu->addAction(decryptAct); cryptMenu->addSeparator(); - importKeyMenu = cryptMenu->addMenu(tr("&Import key from...")); + importKeyMenu = cryptMenu->addMenu(tr("&Import key from...")); importKeyMenu->addAction(importKeyFromFileAct); importKeyMenu->addAction(importKeyFromEditAct); - importKeyMenu->addAction(importKeyFromClipboardAct); - + importKeyMenu->addAction(importKeyFromClipboardAct); + helpMenu = menuBar()->addMenu(tr("&Help")); helpMenu->addAction(aboutAct); } @@ -203,8 +203,6 @@ void GpgWin::createToolBars() cryptToolBar->addAction(encryptAct); cryptToolBar->addAction(decryptAct); cryptToolBar->addAction(importKeyDialogAct); - - editToolBar = addToolBar(tr("Edit")); editToolBar->addAction(copyAct); @@ -386,7 +384,7 @@ void GpgWin::decrypt() QByteArray *tmp = new QByteArray(); QByteArray text = edit->toPlainText().toAscii(); preventNoDataErr(&text); - myCtx->decrypt(text, tmp); + myCtx->decrypt(text, tmp); if (!tmp->isEmpty()) { QString *tmp2 = new QString(*tmp); edit->setPlainText(*tmp2); @@ -404,7 +402,7 @@ void GpgWin::preventNoDataErr(QByteArray *in) if(block_start > 0 && in->at(block_start - 1) != '\n') { in->insert(block_start, '\n'); } -} +} void GpgWin::importKeyFromEdit() { @@ -416,7 +414,7 @@ void GpgWin::importKeyFromClipboard() { QClipboard *cb = QApplication::clipboard(); myCtx->importKey(cb->text(QClipboard::Clipboard).toAscii()); - m_keyList->refresh(); + m_keyList->refresh(); } void GpgWin::importKeyFromFile() @@ -436,40 +434,40 @@ void GpgWin::importKeyFromFile() } void GpgWin::importKeyDialog() { - - QDialog *dialog = new QDialog(); - - dialog->setWindowTitle(tr("Import Key")); - dialog->setModal(true); - - QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok|QDialogButtonBox::Cancel); - - connect(buttonBox,SIGNAL(accepted()),dialog, SLOT(accept())); - connect(buttonBox,SIGNAL(rejected()), dialog, SLOT(reject())); - - QGroupBox *groupBox = new QGroupBox(tr("Import Key From...")); - QRadioButton *radio1 = new QRadioButton(tr("&File")); - QRadioButton *radio2 = new QRadioButton(tr("&Editor")); - QRadioButton *radio3 = new QRadioButton(tr("&Clipboard")); - radio1->setChecked(true); - - QVBoxLayout *vbox1 = new QVBoxLayout(); - vbox1->addWidget(radio1); - vbox1->addWidget(radio2); - vbox1->addWidget(radio3); - - groupBox->setLayout(vbox1); - - QVBoxLayout *vbox2 = new QVBoxLayout(); - vbox2->addWidget(groupBox); - vbox2->addWidget(buttonBox); - - dialog->setLayout(vbox2); - - if(dialog->exec() == QDialog::Accepted ) { - if (radio1->isChecked()) importKeyFromFile(); - if (radio2->isChecked()) importKeyFromEdit(); - if (radio3->isChecked()) importKeyFromClipboard(); - } - + + QDialog *dialog = new QDialog(); + + dialog->setWindowTitle(tr("Import Key")); + dialog->setModal(true); + + QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok|QDialogButtonBox::Cancel); + + connect(buttonBox,SIGNAL(accepted()),dialog, SLOT(accept())); + connect(buttonBox,SIGNAL(rejected()), dialog, SLOT(reject())); + + QGroupBox *groupBox = new QGroupBox(tr("Import Key From...")); + QRadioButton *radio1 = new QRadioButton(tr("&File")); + QRadioButton *radio2 = new QRadioButton(tr("&Editor")); + QRadioButton *radio3 = new QRadioButton(tr("&Clipboard")); + radio1->setChecked(true); + + QVBoxLayout *vbox1 = new QVBoxLayout(); + vbox1->addWidget(radio1); + vbox1->addWidget(radio2); + vbox1->addWidget(radio3); + + groupBox->setLayout(vbox1); + + QVBoxLayout *vbox2 = new QVBoxLayout(); + vbox2->addWidget(groupBox); + vbox2->addWidget(buttonBox); + + dialog->setLayout(vbox2); + + if(dialog->exec() == QDialog::Accepted ) { + if (radio1->isChecked()) importKeyFromFile(); + if (radio2->isChecked()) importKeyFromEdit(); + if (radio3->isChecked()) importKeyFromClipboard(); + } + } @@ -80,9 +80,6 @@ private: QToolBar *editToolBar; QPushButton *browseButton; QWidget *keywindow; - QGroupBox *prStyGroup; - QRadioButton *prsty1; - QRadioButton *prsty2; QAction *openAct; QAction *saveAct; diff --git a/keylist.cpp b/keylist.cpp index 710afc7..c4a62a0 100644 --- a/keylist.cpp +++ b/keylist.cpp @@ -20,7 +20,7 @@ */ #include <QWidget> #include <QVBoxLayout> -#include <QListWidgetItem> +#include <QTableWidgetItem> #include <QLabel> #include <QMessageBox> #include <QtGui> @@ -29,9 +29,17 @@ KeyList::KeyList(QWidget *parent) : QWidget(parent) { - m_keyList = new QListWidget(); - m_idList = new QList<QString>(); - m_deleteButton = new QPushButton(tr("Delete Selected Keys")); + m_keyList = new QTableWidget(this); + m_keyList->setColumnCount(5); + m_keyList->verticalHeader()->hide(); + m_keyList->setShowGrid(false); + m_keyList->setColumnWidth(0, 24); + m_keyList->setColumnWidth(1, 20); + m_keyList->sortByColumn(2,Qt::AscendingOrder); + m_keyList->setSelectionBehavior(QAbstractItemView::SelectRows); + m_keyList->setColumnHidden(4, true); + + m_deleteButton = new QPushButton(tr("Delete Checked Keys")); connect(m_deleteButton, SIGNAL(clicked()), this, SLOT(deleteKeys())); @@ -64,31 +72,48 @@ void KeyList::contextMenuEvent(QContextMenuEvent *event) void KeyList::refresh() { m_keyList->clear(); - m_idList->clear(); - + + QStringList labels; + labels << "" << "" << "Name" << "EMail" << "id"; + m_keyList->setHorizontalHeaderLabels(labels); + GpgKeyList keys = m_ctx->listKeys(); + m_keyList->setRowCount(keys.size()); + QTableWidgetItem *tmp; + int row=0; GpgKeyList::iterator it = keys.begin(); while (it != keys.end()) { - QListWidgetItem *tmp = new QListWidgetItem( - it->name + " <" + it->email + ">" - ); - tmp->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable); + + tmp = new QTableWidgetItem(); + tmp->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable); tmp->setCheckState(Qt::Unchecked); - if (it->privkey == 1) tmp->setIcon(QIcon(iconPath + "kgpg_key2.png")); - m_keyList->addItem(tmp); - - *m_idList << QString(it->id); + m_keyList->setItem(row, 0, tmp); + + if(it->privkey) { + tmp = new QTableWidgetItem(QIcon(iconPath + "kgpg_key2.png"),""); + m_keyList->setItem(row, 1, tmp); + } + tmp = new QTableWidgetItem(it->name); + tmp->setToolTip(it->name); + m_keyList->setItem(row, 2, tmp); + tmp = new QTableWidgetItem(it->email); + tmp->setToolTip(it->email); + m_keyList->setItem(row, 3, tmp); + tmp = new QTableWidgetItem(it->id); + m_keyList->setItem(row, 4, tmp); it++; + ++row; } + m_keyList->setSortingEnabled(true); } QList<QString> *KeyList::getChecked() { QList<QString> *ret = new QList<QString>(); - for (int i = 0; i < m_keyList->count(); i++) { - if (m_keyList->item(i)->checkState() == Qt::Checked) { - *ret << m_idList->at(i); + for (int i = 0; i < m_keyList->rowCount(); i++) { + if (m_keyList->item(i,0)->checkState() == Qt::Checked) { + *ret << m_keyList->item(i,4)->text(); } } return ret; @@ -97,9 +122,10 @@ QList<QString> *KeyList::getChecked() QList<QString> *KeyList::getSelected() { QList<QString> *ret = new QList<QString>(); - for (int i = 0; i < m_keyList->count(); i++) { - if (m_keyList->item(i)->isSelected() == 1) { - *ret << m_idList->at(i); + + for (int i = 0; i < m_keyList->rowCount(); i++) { + if (m_keyList->item(i,0)->isSelected() == 1) { + *ret << m_keyList->item(i,4)->text(); } } return ret; @@ -124,6 +150,6 @@ void KeyList::deleteKey() void KeyList::createActions() { deleteKeyAct = new QAction(tr("Delete Key"), this); - deleteKeyAct->setStatusTip(tr("Delete the selected keys")); + deleteKeyAct->setStatusTip(tr("Delete the checked keys")); connect(deleteKeyAct, SIGNAL(triggered()), this, SLOT(deleteKey())); } @@ -19,7 +19,7 @@ * MA 02110-1301, USA. */ #include <QWidget> -#include <QListWidget> +#include <QTableWidget> #include <QPushButton> #include "context.h" @@ -43,8 +43,7 @@ public: private: GpgME::Context *m_ctx; - QListWidget *m_keyList; - QList<QString> *m_idList; + QTableWidget *m_keyList; QPushButton *m_deleteButton; QAction *deleteKeyAct; void createActions(); |