Move file loading GUI element out of non-gui container class (db_*)

into GUI View widgets/*TreeView.cpp
This commit is contained in:
Christian Hohnstaedt 2021-10-30 00:42:26 +02:00 committed by Christian Hohnstädt
parent 6efba2bb3e
commit f2fe9be3f3
28 changed files with 81 additions and 98 deletions

View File

@ -19,10 +19,6 @@
#include <QFileDialog>
#include <QFileInfo>
#warning drop UI dependencies
#include "widgets/ImportMulti.h"
#include "ui_ImportMulti.h"
void db_base::restart_timer()
{
if (!IS_GUI_APP)
@ -275,16 +271,6 @@ QString db_base::pem2QString(QModelIndexList indexes) const
return bba.qstring();
}
void db_base::pem2clipboard(QModelIndexList indexes) const
{
QString msg = pem2QString(indexes);
QClipboard *cb = QApplication::clipboard();
if (cb->supportsSelection())
cb->setText(msg, QClipboard::Selection);
cb->setText(msg);
}
void db_base::deletePKI(QModelIndex idx)
{
pki_base *pki = fromIndex(idx);
@ -625,33 +611,6 @@ void db_base::timerEvent(QTimerEvent *event)
}
}
void db_base::load_default(load_base &load)
{
QString s;
QStringList slist = QFileDialog::getOpenFileNames(NULL, load.caption,
Settings["workingdir"], load.filter);
if (!slist.count())
return;
update_workingdir(slist[0]);
ImportMulti *dlgi = new ImportMulti(NULL);
foreach(s, slist) {
pki_base *item = NULL;
try {
item = load.loadItem(s);
dlgi->addItem(item);
}
catch (errorEx &err) {
XCA_ERROR(err);
delete item;
}
}
dlgi->execute();
delete dlgi;
}
bool db_base::columnHidden(int col) const
{
if (!isValidCol(col))

View File

@ -92,7 +92,6 @@ class db_base: public QAbstractItemModel
{
return dynamic_cast<T*>(fromIndex(index));
}
void load_default(load_base &load);
void insertChild(pki_base *child, pki_base *parent = NULL);
int rownumber(const pki_base *child) const;
void createSuccess(const pki_base *pki) const;
@ -117,7 +116,6 @@ class db_base: public QAbstractItemModel
dbheaderList getAllHeaders() {
return allHeaders;
}
void pem2clipboard(QModelIndexList indexes) const;
QString pem2QString(QModelIndexList indexes) const;
void deletePKI(QModelIndex idx);
@ -128,7 +126,6 @@ class db_base: public QAbstractItemModel
public slots:
virtual void newItem() { }
virtual void load() { }
void columnResetDefaults();
void sectionResized(int i, int, int newSize);
void sortIndicatorChanged(int, Qt::SortOrder);

View File

@ -44,12 +44,6 @@ pki_base *db_crl::newPKI(enum pki_type type)
return new pki_crl();
}
void db_crl::load()
{
load_crl l;
load_default(l);
}
void db_crl::revokeCerts(pki_crl *crl)
{
db_x509 *certs = Database.model<db_x509>();

View File

@ -24,7 +24,6 @@ class db_crl: public db_x509name
pki_base *insert(pki_base *item);
void removeSigner(pki_base *signer);
void store(QModelIndex index);
void load();
void updateCertView();
pki_crl *newCrl(const crljob &crljob);
};

View File

@ -188,13 +188,6 @@ pki_key *db_key::newKey(const keyjob &task, const QString &name)
return key;
}
void db_key::load(void)
{
load_key l;
load_default(l);
}
void db_key::store(QModelIndex index)
{
QString title = tr("Export public key [%1]");

View File

@ -34,7 +34,6 @@ class db_key: public db_base
pki_key *newKey(const keyjob &task, const QString &name);
public slots:
void load();
void store(QModelIndex index);
signals:

View File

@ -107,12 +107,6 @@ bool db_temp::alterTemp(pki_temp *temp)
return true;
}
void db_temp::load()
{
load_temp l;
load_default(l);
}
void db_temp::store(QModelIndex index)
{
pki_temp *temp = fromIndex<pki_temp>(index);

View File

@ -25,7 +25,6 @@ class db_temp: public db_x509name
pki_base *newPKI(enum pki_type type = none);
void fillContextMenu(QMenu *menu, const QModelIndex &index);
QList<pki_temp*> getPredefs() const;
void load();
void store(QModelIndex index);
bool alterTemp(pki_temp *temp);
};

View File

@ -333,12 +333,6 @@ pki_base *db_x509::insert(pki_base *item)
return insertPKI(cert);
}
void db_x509::load(void)
{
load_cert c;
load_default(c);
}
pki_x509 *db_x509::get1SelectedCert()
{
QModelIndexList indexes = mainwin->certView->getSelectedIndexes();

View File

@ -56,7 +56,6 @@ class db_x509: public db_x509super
void toRequest(QModelIndex idx);
void store(QModelIndex idx);
void store(QModelIndexList list);
void load();
void updateCaProperties(pki_x509 *cert);
void toCertificate(QModelIndex index);
void certRenewal(QModelIndexList indexes);

View File

@ -100,12 +100,6 @@ void db_x509req::newItem(pki_temp *temp, pki_x509req *orig)
}
}
void db_x509req::load(void)
{
load_req l;
load_default(l);
}
void db_x509req::store(QModelIndex index)
{
pki_x509req *req = fromIndex<pki_x509req>(index);

View File

@ -26,7 +26,6 @@ class db_x509req: public db_x509super
pki_base *newPKI(enum pki_type type = none);
void fillContextMenu(QMenu *menu, const QModelIndex &index);
void store(QModelIndex index);
void load();
QList<pki_x509req*> getAllRequests();
void resetX509count();
void setSigned(QModelIndex index, bool signe);

View File

@ -45,6 +45,8 @@
#define getch() getchar()
#endif
bool is_gui_app = false;
int console_write(FILE *fp, const QByteArray &ba)
{
if (ba.size() == 0)

View File

@ -29,12 +29,13 @@
#define COL_DIM "\x1b[2m"
#define COL_UNDER "\x1b[4m"
#define IS_GUI_APP (qobject_cast<QApplication*>(QCoreApplication::instance()))
#define IS_GUI_APP (is_gui_app)
class Validity;
class MainWindow;
class QPixmap;
extern MainWindow *mainwin;
extern bool is_gui_app;
typedef struct asn1_object_st ASN1_OBJECT;
typedef struct asn1_string_st ASN1_STRING;

View File

@ -378,6 +378,7 @@ int main(int argc, char *argv[])
{
/* On windows, always instantiate a GUI app */
coreApp = gui = new XcaApplication(argc, argv);
is_gui_app = true;
}
coreApp->setApplicationName(PACKAGE_TARNAME);

View File

@ -113,18 +113,14 @@ void CertTreeView::toOtherToken()
void CertTreeView::loadPKCS12()
{
if (basemodel) {
load_pkcs12 l;
certs()->load_default(l);
}
load_pkcs12 l;
load_default(&l);
}
void CertTreeView::loadPKCS7()
{
if (basemodel) {
load_pkcs7 l;
certs()->load_default(l);
}
load_pkcs7 l;
load_default(&l);
}
void CertTreeView::genCrl()
@ -230,3 +226,9 @@ void CertTreeView::unRevoke()
if (basemodel)
certs()->unRevoke(getSelectedIndexes());
}
void CertTreeView::load()
{
load_cert c;
load_default(&c);
}

View File

@ -40,5 +40,6 @@ class CertTreeView: public X509SuperTreeView
void caProperties();
void revoke();
void unRevoke();
void load();
};
#endif

View File

@ -55,3 +55,8 @@ void CrlTreeView::newItem()
newItem(ca);
}
void CrlTreeView::load()
{
load_crl l;
load_default(&l);
}

View File

@ -29,5 +29,6 @@ class CrlTreeView: public XcaTreeView
public slots:
void newItem(pki_x509 *cert);
void newItem();
void load();
};
#endif

View File

@ -214,3 +214,9 @@ void KeyTreeView::clipboardFormat(QAction *a)
Settings["KeyFormat"] = a->data().toInt();
}
void KeyTreeView::load(void)
{
load_key l;
load_default(&l);
}

View File

@ -35,6 +35,7 @@ class KeyTreeView: public XcaTreeView
void changeSoPin();
void toToken();
void newItem();
void load();
void newItem(const QString &name);
void clipboardFormat(QAction*);
};

View File

@ -219,9 +219,7 @@ void MainWindow::init_images()
void MainWindow::loadPem()
{
load_pem l;
db_key *keys = Database.model<db_key>();
if (keys)
keys->load_default(l);
keyView->load_default(&l);
}
bool MainWindow::pastePem(QString text, bool silent)

View File

@ -60,3 +60,9 @@ void ReqTreeView::unmarkSigned()
if (basemodel)
reqs()->setSigned(currentIndex(), false);
}
void ReqTreeView::load(void)
{
load_req l;
load_default(&l);
}

View File

@ -30,5 +30,6 @@ class ReqTreeView: public X509SuperTreeView
void signReq();
void markSigned();
void unmarkSigned();
void load();
};
#endif

View File

@ -107,3 +107,9 @@ bool TempTreeView::alterTemp(pki_temp *temp)
temps()->alterTemp(temp);
return true;
}
void TempTreeView::load()
{
load_temp l;
load_default(&l);
}

View File

@ -34,6 +34,7 @@ class TempTreeView: public XcaTreeView
void reqFromTemp();
void duplicateTemp();
void newItem();
void load();
signals:
void newReq(pki_temp *);

View File

@ -12,6 +12,7 @@
#include <QVariant>
#include <QRegExp>
#include <QFileDialog>
#include <QClipboard>
#include "OidResolver.h"
#include "XcaHeaderView.h"
@ -21,6 +22,7 @@
#include "XcaWarning.h"
#include "XcaDialog.h"
#include "XcaApplication.h"
#include "ImportMulti.h"
#include "ui_ItemProperties.h"
@ -303,10 +305,31 @@ void XcaTreeView::newItem()
basemodel->newItem();
}
void XcaTreeView::load()
void XcaTreeView::load_default(load_base *load)
{
if (basemodel)
basemodel->load();
QString s;
QStringList slist = QFileDialog::getOpenFileNames(NULL, load->caption,
Settings["workingdir"], load->filter);
if (!slist.count())
return;
update_workingdir(slist[0]);
ImportMulti *dlgi = new ImportMulti(NULL);
foreach(s, slist) {
pki_base *item = NULL;
try {
item = load->loadItem(s);
dlgi->addItem(item);
}
catch (errorEx &err) {
XCA_ERROR(err);
delete item;
}
}
dlgi->execute();
delete dlgi;
}
void XcaTreeView::doubleClick(const QModelIndex &m)
@ -337,8 +360,15 @@ void XcaTreeView::editComment()
void XcaTreeView::pem2clipboard()
{
if (basemodel)
basemodel->pem2clipboard(getSelectedIndexes());
if (!basemodel)
return;
QString msg = basemodel->pem2QString(getSelectedIndexes());
QClipboard *cb = QApplication::clipboard();
if (cb->supportsSelection())
cb->setText(msg, QClipboard::Selection);
cb->setText(msg);
}
void XcaTreeView::headerDetails()

View File

@ -22,6 +22,7 @@ class pki_base;
class QKeyEvent;
class QContextMenuEvent;
class QMenu;
class load_base;
class XcaTreeView: public QTreeView
{
@ -58,6 +59,7 @@ class XcaTreeView: public QTreeView
void keyPressEvent(QKeyEvent *event);
virtual void showPki(pki_base *) {};
virtual void storeItems(QModelIndexList indexes);
virtual void load_default(load_base *load);
public slots:
void changeView();
@ -71,7 +73,6 @@ class XcaTreeView: public QTreeView
void showItems();
void newItem();
void doubleClick(const QModelIndex &m);
void load();
void pem2clipboard();
void headerDetails();
void columnRemove();