diff --git a/importDigiKey/cimportdigikey.cpp b/importDigiKey/cimportdigikey.cpp index b5599d4..ee55c31 100644 --- a/importDigiKey/cimportdigikey.cpp +++ b/importDigiKey/cimportdigikey.cpp @@ -1,11 +1,25 @@ #include "cimportdigikey.h" +#include "csearchdialog.h" + +//LM741CNNS/NOPB-ND + +#define CLIENT_ID "ZpFbDx5TQEltK8SoBUFx0iwCyITCWsnH" +#define CLIENT_SECRET "Oklw6XsXaPu2h6cT" QString cImportDigikey::pluginName() { return(PLUGIN_NAME); } + qint16 cImportDigikey::pluginVersion() { return(PLUGIN_VERSION); } + +bool cImportDigikey::showSearch(QWidget* parent) +{ + cSearchDialog* searchDialog = new cSearchDialog(parent); + searchDialog->show(); + return(true); +} diff --git a/importDigiKey/cimportdigikey.h b/importDigiKey/cimportdigikey.h index 20f89dc..e421808 100644 --- a/importDigiKey/cimportdigikey.h +++ b/importDigiKey/cimportdigikey.h @@ -19,6 +19,8 @@ class cImportDigikey : public QObject, cImportInterface public: QString pluginName() override; qint16 pluginVersion() override; + + bool showSearch(QWidget* parent) override; }; #endif diff --git a/importDigiKey/csearchdialog.cpp b/importDigiKey/csearchdialog.cpp new file mode 100644 index 0000000..bb0a01e --- /dev/null +++ b/importDigiKey/csearchdialog.cpp @@ -0,0 +1,14 @@ +#include "csearchdialog.h" +#include "ui_csearchdialog.h" + +cSearchDialog::cSearchDialog(QWidget *parent) : + QDialog(parent), + ui(new Ui::cSearchDialog) +{ + ui->setupUi(this); +} + +cSearchDialog::~cSearchDialog() +{ + delete ui; +} diff --git a/importDigiKey/csearchdialog.h b/importDigiKey/csearchdialog.h new file mode 100644 index 0000000..54d9bc9 --- /dev/null +++ b/importDigiKey/csearchdialog.h @@ -0,0 +1,22 @@ +#ifndef CSEARCHDIALOG_H +#define CSEARCHDIALOG_H + +#include + +namespace Ui { +class cSearchDialog; +} + +class cSearchDialog : public QDialog +{ + Q_OBJECT + + public: + explicit cSearchDialog(QWidget *parent = nullptr); + ~cSearchDialog(); + + private: + Ui::cSearchDialog *ui; +}; + +#endif // CSEARCHDIALOG_H diff --git a/importDigiKey/csearchdialog.ui b/importDigiKey/csearchdialog.ui new file mode 100644 index 0000000..c196cad --- /dev/null +++ b/importDigiKey/csearchdialog.ui @@ -0,0 +1,86 @@ + + + cSearchDialog + + + + 0 + 0 + 400 + 332 + + + + Dialog + + + + + 30 + 280 + 341 + 32 + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + 20 + 20 + 131 + 41 + + + + + + + :/logo/digikeySmall.png + + + + + + + + + buttonBox + accepted() + cSearchDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + cSearchDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/importDigiKey/importDigiKey.pro b/importDigiKey/importDigiKey.pro index fd435f5..bccd56f 100644 --- a/importDigiKey/importDigiKey.pro +++ b/importDigiKey/importDigiKey.pro @@ -1,15 +1,15 @@ -#! [0] TEMPLATE = lib CONFIG += plugin QT += widgets INCLUDEPATH += ../inventryParts HEADERS = \ - cimportdigikey.h + cimportdigikey.h \ + csearchdialog.h SOURCES = \ - cimportdigikey.cpp + cimportdigikey.cpp \ + csearchdialog.cpp TARGET = $$qtLibraryTarget(importDigiKey) DESTDIR = ../plugins -#! [0] EXAMPLE_FILES = importDigiKey.json @@ -18,3 +18,9 @@ EXAMPLE_FILES = importDigiKey.json #INSTALLS += target CONFIG += install_ok # Do not cargo-cult this! + +FORMS += \ + csearchdialog.ui + +RESOURCES += \ + importDigiKey.qrc diff --git a/importDigiKey/importDigiKey.qrc b/importDigiKey/importDigiKey.qrc new file mode 100644 index 0000000..9fa67f5 --- /dev/null +++ b/importDigiKey/importDigiKey.qrc @@ -0,0 +1,6 @@ + + + logo/digikeySmall.png + logo/digikey.png + + diff --git a/importDigiKey/logo/digikey.png b/importDigiKey/logo/digikey.png new file mode 100644 index 0000000..61ef55a Binary files /dev/null and b/importDigiKey/logo/digikey.png differ diff --git a/importDigiKey/logo/digikeySmall.png b/importDigiKey/logo/digikeySmall.png new file mode 100644 index 0000000..61b289a Binary files /dev/null and b/importDigiKey/logo/digikeySmall.png differ diff --git a/importMouser/cimportmouser.cpp b/importMouser/cimportmouser.cpp new file mode 100644 index 0000000..202a439 --- /dev/null +++ b/importMouser/cimportmouser.cpp @@ -0,0 +1,20 @@ +#include "cimportmouser.h" +#include "csearchdialog.h" + + +QString cImportMouser::pluginName() +{ + return(PLUGIN_NAME); +} + +qint16 cImportMouser::pluginVersion() +{ + return(PLUGIN_VERSION); +} + +bool cImportMouser::showSearch(QWidget* parent) +{ + cSearchDialog* searchDialog = new cSearchDialog(parent); + searchDialog->show(); + return(true); +} diff --git a/importMouser/cimportmouser.h b/importMouser/cimportmouser.h new file mode 100644 index 0000000..61f8bdd --- /dev/null +++ b/importMouser/cimportmouser.h @@ -0,0 +1,26 @@ +#ifndef CIMPORTDIGIKEY_H +#define CIMPORTDIGIKEY_H + + +#include +#include +#include "cimportinterface.h" + +#define PLUGIN_NAME "Import Mouser" +#define PLUGIN_VERSION 1 + + +class cImportMouser : public QObject, cImportInterface +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID "at.windesign.importInterface" FILE "importMouser.json") + Q_INTERFACES(cImportInterface) + +public: + QString pluginName() override; + qint16 pluginVersion() override; + + bool showSearch(QWidget* parent) override; +}; + +#endif diff --git a/importMouser/csearchdialog.cpp b/importMouser/csearchdialog.cpp new file mode 100644 index 0000000..bb0a01e --- /dev/null +++ b/importMouser/csearchdialog.cpp @@ -0,0 +1,14 @@ +#include "csearchdialog.h" +#include "ui_csearchdialog.h" + +cSearchDialog::cSearchDialog(QWidget *parent) : + QDialog(parent), + ui(new Ui::cSearchDialog) +{ + ui->setupUi(this); +} + +cSearchDialog::~cSearchDialog() +{ + delete ui; +} diff --git a/importMouser/csearchdialog.h b/importMouser/csearchdialog.h new file mode 100644 index 0000000..54d9bc9 --- /dev/null +++ b/importMouser/csearchdialog.h @@ -0,0 +1,22 @@ +#ifndef CSEARCHDIALOG_H +#define CSEARCHDIALOG_H + +#include + +namespace Ui { +class cSearchDialog; +} + +class cSearchDialog : public QDialog +{ + Q_OBJECT + + public: + explicit cSearchDialog(QWidget *parent = nullptr); + ~cSearchDialog(); + + private: + Ui::cSearchDialog *ui; +}; + +#endif // CSEARCHDIALOG_H diff --git a/importMouser/csearchdialog.ui b/importMouser/csearchdialog.ui new file mode 100644 index 0000000..89beab6 --- /dev/null +++ b/importMouser/csearchdialog.ui @@ -0,0 +1,86 @@ + + + cSearchDialog + + + + 0 + 0 + 400 + 332 + + + + Dialog + + + + + 30 + 280 + 341 + 32 + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + 20 + 20 + 131 + 41 + + + + + + + :/logo/mouserSmall.jpg + + + + + + + + + buttonBox + accepted() + cSearchDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + cSearchDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/importMouser/importMouser.json b/importMouser/importMouser.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/importMouser/importMouser.json @@ -0,0 +1 @@ +{} diff --git a/importMouser/importMouser.pro b/importMouser/importMouser.pro new file mode 100644 index 0000000..589a9ef --- /dev/null +++ b/importMouser/importMouser.pro @@ -0,0 +1,26 @@ +TEMPLATE = lib +CONFIG += plugin +QT += widgets +INCLUDEPATH += ../inventryParts +HEADERS = \ + cimportmouser.h \ + csearchdialog.h +SOURCES = \ + cimportmouser.cpp \ + csearchdialog.cpp +TARGET = $$qtLibraryTarget(importMouser) +DESTDIR = ../plugins + +EXAMPLE_FILES = importMouser.json + +# install +#target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/importMouser/plugins +#INSTALLS += target + +CONFIG += install_ok # Do not cargo-cult this! + +FORMS += \ + csearchdialog.ui + +RESOURCES += \ + importMouser.qrc diff --git a/importMouser/importMouser.qrc b/importMouser/importMouser.qrc new file mode 100644 index 0000000..6fea7ff --- /dev/null +++ b/importMouser/importMouser.qrc @@ -0,0 +1,6 @@ + + + logo/mouser.jpg + logo/mouserSmall.jpg + + diff --git a/importMouser/logo/mouser.jpg b/importMouser/logo/mouser.jpg new file mode 100644 index 0000000..c6c3848 Binary files /dev/null and b/importMouser/logo/mouser.jpg differ diff --git a/importMouser/logo/mouserSmall.jpg b/importMouser/logo/mouserSmall.jpg new file mode 100644 index 0000000..99b65ce Binary files /dev/null and b/importMouser/logo/mouserSmall.jpg differ diff --git a/inventryParts.pro b/inventryParts.pro index b960b67..5818016 100644 --- a/inventryParts.pro +++ b/inventryParts.pro @@ -1,3 +1,4 @@ TEMPLATE = subdirs SUBDIRS = inventryParts \ - importDigiKey + importDigiKey \ + importMouser diff --git a/inventryParts/cimportinterface.h b/inventryParts/cimportinterface.h index 973962e..9268054 100644 --- a/inventryParts/cimportinterface.h +++ b/inventryParts/cimportinterface.h @@ -9,6 +9,8 @@ public: virtual ~cImportInterface() = default; virtual QString pluginName() = 0; virtual qint16 pluginVersion() = 0; + + virtual bool showSearch(QWidget* parent) = 0; }; QT_BEGIN_NAMESPACE diff --git a/inventryParts/cmainwindow.cpp b/inventryParts/cmainwindow.cpp index dab2082..41a314b 100644 --- a/inventryParts/cmainwindow.cpp +++ b/inventryParts/cmainwindow.cpp @@ -50,7 +50,7 @@ bool cMainWindow::loadPlugin() #endif pluginsDir.cd("plugins"); - const QStringList entries = pluginsDir.entryList(QDir::Files); + const QStringList entries = pluginsDir.entryList(QStringList() << "*.dll", QDir::Files); for(const QString &fileName : entries) { @@ -59,19 +59,26 @@ bool cMainWindow::loadPlugin() if(plugin) { - m_importInterface = qobject_cast(plugin); - - if(m_importInterface) - { - qDebug() << m_importInterface->pluginName(); - qDebug() << m_importInterface->pluginVersion(); - - return true; - } - - pluginLoader.unload(); + cImportInterface* importInterface = qobject_cast(plugin); + if(importInterface) + m_importInterfaceList.append(importInterface); + else + pluginLoader.unload(); } } - return false; + return(true); +} + +void cMainWindow::on_m_test_clicked() +{ + for(int i = 0;i < m_importInterfaceList.count();i++) + { + qDebug() << m_importInterfaceList.at(i)->pluginName(); + if(!m_importInterfaceList.at(i)->pluginName().compare("Import Mouser", Qt::CaseSensitive)) + { + m_importInterfaceList.at(i)->showSearch(this); + return; + } + } } diff --git a/inventryParts/cmainwindow.h b/inventryParts/cmainwindow.h index 9a58340..c46e76e 100644 --- a/inventryParts/cmainwindow.h +++ b/inventryParts/cmainwindow.h @@ -5,6 +5,8 @@ #include "cimportinterface.h" #include +#include +#include QT_BEGIN_NAMESPACE @@ -19,11 +21,14 @@ public: cMainWindow(QWidget *parent = nullptr); ~cMainWindow(); -private: - Ui::cMainWindow* ui; - cImportInterface* m_importInterface; + private slots: + void on_m_test_clicked(); - void createGUI(); - bool loadPlugin(); + private: + Ui::cMainWindow* ui; + QList m_importInterfaceList; + + void createGUI(); + bool loadPlugin(); }; #endif // CMAINWINDOW_H diff --git a/inventryParts/cmainwindow.ui b/inventryParts/cmainwindow.ui index 7dddbe4..7dd1115 100644 --- a/inventryParts/cmainwindow.ui +++ b/inventryParts/cmainwindow.ui @@ -13,8 +13,31 @@ cMainWindow - - + + + + + 50 + 40 + 75 + 24 + + + + test + + + + + + + 0 + 0 + 800 + 22 + + +