From 1eec1d895e102f64e0db98cad38ab634abf5c053 Mon Sep 17 00:00:00 2001 From: ubbo Date: Wed, 16 Oct 2013 00:49:02 +0000 Subject: rename qmlpage to widgets/keydetailswidget and add licence git-svn-id: http://cpunk.de/svn/src/gpg4usb/trunk@1070 34ebc366-c3a9-4b3c-9f84-69acf7962910 --- gpg4usb.pro | 4 +- qmlpage.cpp | 72 ---------------------------------- qmlpage.h | 28 ------------- textedit.cpp | 4 +- widgets/keydetailswidget.cpp | 93 ++++++++++++++++++++++++++++++++++++++++++++ widgets/keydetailswidget.h | 49 +++++++++++++++++++++++ 6 files changed, 146 insertions(+), 104 deletions(-) delete mode 100644 qmlpage.cpp delete mode 100644 qmlpage.h create mode 100644 widgets/keydetailswidget.cpp create mode 100644 widgets/keydetailswidget.h diff --git a/gpg4usb.pro b/gpg4usb.pro index bba4bad..65c3001 100644 --- a/gpg4usb.pro +++ b/gpg4usb.pro @@ -46,7 +46,7 @@ HEADERS += attachments.h \ helppage.h \ gpgconstants.h \ findwidget.h \ - qmlpage.h + widgets/keydetailswidget.h SOURCES += attachments.cpp \ gpgcontext.cpp \ @@ -71,7 +71,7 @@ SOURCES += attachments.cpp \ helppage.cpp \ gpgconstants.cpp \ findwidget.cpp \ - qmlpage.cpp + widgets/keydetailswidget.cpp RC_FILE = gpg4usb.rc diff --git a/qmlpage.cpp b/qmlpage.cpp deleted file mode 100644 index d9ca178..0000000 --- a/qmlpage.cpp +++ /dev/null @@ -1,72 +0,0 @@ -#include "qmlpage.h" -#include -#include -#include -#include -#include -#include -#include "kgpg/core/convert.h" - -QMLPage::QMLPage(GpgME::GpgContext *ctx, KgpgCore::KgpgKey key, QWidget *parent) : - QWidget(parent), mCtx(ctx) -{ - - // http://harmattan-dev.nokia.com/docs/library/html/qt4/qml-integration.html - // http://qt-project.org/doc/qt-4.8/qtbinding.html - // http://jryannel.wordpress.com/ - // http://stackoverflow.com/questions/5594769/normal-desktop-user-interface-controls-with-qml - - QDeclarativeView *qmlView = new QDeclarativeView; - qmlView->setResizeMode(QDeclarativeView::SizeRootObjectToView); - context = qmlView->rootContext(); - - QDeclarativePropertyMap keymap; - keymap.insert("id", key.id()); - keymap.insert("email", key.email()); - keymap.insert("name", key.name()); - keymap.insert("comment", key.comment()); - keymap.insert("size", key.size()); - keymap.insert("encryptionSize", key.encryptionSize()); - keymap.insert("algorithm",KgpgCore::Convert::toString(key.algorithm())); - keymap.insert("encryptionAlgorithm", KgpgCore::Convert::toString(key.encryptionAlgorithm())); - keymap.insert("creationDate", KgpgCore::Convert::toString(key.creationDate().date())); - keymap.insert("expirationDate",KgpgCore::Convert::toString(key.expirationDate().date())); - keymap.insert("fingerprint",key.fingerprintBeautified()); - keymap.insert("isSecret",ctx->isSecretKey(key.id())); - keymap.insert("expired", (key.expirationDate().date() < QDate::currentDate() &! key.expirationDate().isNull())); - keymap.insert("revoked", !key.valid()); - context->setContextProperty("keymap", &keymap); - - qmlView->setSource(QUrl("qrc:/qml/keydetails.qml")); - - obj = qmlView->rootObject(); - //connect( obj, SIGNAL(clicked()), this, SLOT(qmlClicked())); - connect( obj, SIGNAL(exportPublicKeyClicked()), this, SLOT(slotExportPublicKey())); - connect( obj, SIGNAL(exportPrivateKeyClicked()), this, SLOT(slotExportPrivateKey())); - - QHBoxLayout *mainLayout = new QHBoxLayout(this); - mainLayout->setSpacing(0); - mainLayout->setContentsMargins(0,0,0,0); - mainLayout->addWidget(qmlView); - -} - -void QMLPage::qmlClicked() { - - // http://stackoverflow.com/questions/9062189/how-to-modify-a-qml-text-from-c - qDebug() << "c++, click recieved from qml"; - qDebug() << "text1" << obj->property("tf1Text").toString(); - - //QObject *text2 = obj->findChild("tf2"); - qDebug() << "text2 "<< obj->property("tf2Text"); -} - -void QMLPage::slotExportPublicKey() { - QString id=obj->property("keyid").toString(); - mCtx->exportKeyToFile(QStringList(id)); -} - -void QMLPage::slotExportPrivateKey() { - QString id=obj->property("keyid").toString(); - mCtx->exportPrivateKey(id); -} diff --git a/qmlpage.h b/qmlpage.h deleted file mode 100644 index 1dc1c6d..0000000 --- a/qmlpage.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef QMLPAGE_H -#define QMLPAGE_H - -#include -#include -#include -#include "kgpg/core/kgpgkey.h" -#include "gpgcontext.h" - -class QMLPage : public QWidget -{ - - Q_OBJECT - -public: - QMLPage(GpgME::GpgContext *ctx, KgpgCore::KgpgKey key, QWidget *parent = 0); - -public slots: - void qmlClicked(); - void slotExportPublicKey(); - void slotExportPrivateKey(); -private: - QDeclarativeContext *context; - QGraphicsObject *obj; - GpgME::GpgContext *mCtx; -}; - -#endif // QMLPAGE_H diff --git a/textedit.cpp b/textedit.cpp index 3f743a0..1a987bf 100644 --- a/textedit.cpp +++ b/textedit.cpp @@ -20,7 +20,7 @@ */ #include "textedit.h" -#include "qmlpage.h" +#include "widgets/keydetailswidget.h" TextEdit::TextEdit() { @@ -67,7 +67,7 @@ void TextEdit::slotNewHelpTab(QString title, QString path) } void TextEdit::slotNewQMLTab(QString title, GpgME::GpgContext *ctx, KgpgCore::KgpgKey key) { - QMLPage *page = new QMLPage(ctx, key); + KeyDetailsWidget *page = new KeyDetailsWidget(ctx, key); // todo: should parent also be given? tabWidget->addTab(page, title); tabWidget->setCurrentIndex(tabWidget->count() - 1); diff --git a/widgets/keydetailswidget.cpp b/widgets/keydetailswidget.cpp new file mode 100644 index 0000000..2276570 --- /dev/null +++ b/widgets/keydetailswidget.cpp @@ -0,0 +1,93 @@ +/* + * keydetailswidget.cpp + * + * Copyright 2013 gpg4usb-team + * + * This file is part of gpg4usb. + * + * Gpg4usb is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Gpg4usb is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with gpg4usb. If not, see + */ + +#include "keydetailswidget.h" +#include +#include +#include +#include +#include +#include +#include "kgpg/core/convert.h" + +KeyDetailsWidget::KeyDetailsWidget(GpgME::GpgContext *ctx, KgpgCore::KgpgKey key, QWidget *parent) : + QWidget(parent), mCtx(ctx) +{ + + // http://harmattan-dev.nokia.com/docs/library/html/qt4/qml-integration.html + // http://qt-project.org/doc/qt-4.8/qtbinding.html + // http://jryannel.wordpress.com/ + // http://stackoverflow.com/questions/5594769/normal-desktop-user-interface-controls-with-qml + + QDeclarativeView *qmlView = new QDeclarativeView; + qmlView->setResizeMode(QDeclarativeView::SizeRootObjectToView); + context = qmlView->rootContext(); + + QDeclarativePropertyMap keymap; + keymap.insert("id", key.id()); + keymap.insert("email", key.email()); + keymap.insert("name", key.name()); + keymap.insert("comment", key.comment()); + keymap.insert("size", key.size()); + keymap.insert("encryptionSize", key.encryptionSize()); + keymap.insert("algorithm",KgpgCore::Convert::toString(key.algorithm())); + keymap.insert("encryptionAlgorithm", KgpgCore::Convert::toString(key.encryptionAlgorithm())); + keymap.insert("creationDate", KgpgCore::Convert::toString(key.creationDate().date())); + keymap.insert("expirationDate",KgpgCore::Convert::toString(key.expirationDate().date())); + keymap.insert("fingerprint",key.fingerprintBeautified()); + keymap.insert("isSecret",ctx->isSecretKey(key.id())); + keymap.insert("expired", (key.expirationDate().date() < QDate::currentDate() &! key.expirationDate().isNull())); + keymap.insert("revoked", !key.valid()); + context->setContextProperty("keymap", &keymap); + + qmlView->setSource(QUrl("qrc:/qml/keydetails.qml")); + + obj = qmlView->rootObject(); + //connect( obj, SIGNAL(clicked()), this, SLOT(qmlClicked())); + connect( obj, SIGNAL(exportPublicKeyClicked()), this, SLOT(slotExportPublicKey())); + connect( obj, SIGNAL(exportPrivateKeyClicked()), this, SLOT(slotExportPrivateKey())); + + QHBoxLayout *mainLayout = new QHBoxLayout(this); + mainLayout->setSpacing(0); + mainLayout->setContentsMargins(0,0,0,0); + mainLayout->addWidget(qmlView); + +} + +void KeyDetailsWidget::qmlClicked() { + + // http://stackoverflow.com/questions/9062189/how-to-modify-a-qml-text-from-c + qDebug() << "c++, click recieved from qml"; + qDebug() << "text1" << obj->property("tf1Text").toString(); + + //QObject *text2 = obj->findChild("tf2"); + qDebug() << "text2 "<< obj->property("tf2Text"); +} + +void KeyDetailsWidget::slotExportPublicKey() { + QString id=obj->property("keyid").toString(); + mCtx->exportKeyToFile(QStringList(id)); +} + +void KeyDetailsWidget::slotExportPrivateKey() { + QString id=obj->property("keyid").toString(); + mCtx->exportPrivateKey(id); +} diff --git a/widgets/keydetailswidget.h b/widgets/keydetailswidget.h new file mode 100644 index 0000000..0491336 --- /dev/null +++ b/widgets/keydetailswidget.h @@ -0,0 +1,49 @@ +/* + * keydetailswidget.h + * + * Copyright 2013 gpg4usb-team + * + * This file is part of gpg4usb. + * + * Gpg4usb is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Gpg4usb is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with gpg4usb. If not, see + */ + +#ifndef KEYDETAILSWIDGET_H +#define KEYDETAILSWIDGET_H + +#include +#include +#include +#include "kgpg/core/kgpgkey.h" +#include "gpgcontext.h" + +class KeyDetailsWidget : public QWidget +{ + + Q_OBJECT + +public: + KeyDetailsWidget(GpgME::GpgContext *ctx, KgpgCore::KgpgKey key, QWidget *parent = 0); + +public slots: + void qmlClicked(); + void slotExportPublicKey(); + void slotExportPrivateKey(); +private: + QDeclarativeContext *context; + QGraphicsObject *obj; + GpgME::GpgContext *mCtx; +}; + +#endif // KEYDETAILSWIDGET_H -- cgit v1.2.3