diff --git a/icons/pivariantedit.png b/icons/pivariantedit.png new file mode 100644 index 0000000..fd5f0bd Binary files /dev/null and b/icons/pivariantedit.png differ diff --git a/libs/piqt_utils/plugin/pivariantedit_plugin.cpp b/libs/piqt_utils/plugin/pivariantedit_plugin.cpp new file mode 100644 index 0000000..8d87880 --- /dev/null +++ b/libs/piqt_utils/plugin/pivariantedit_plugin.cpp @@ -0,0 +1,70 @@ +#include "pivariantedit_plugin.h" + +#include "pivariant_edit.h" + +#include + + +PIVariantEditPlugin::PIVariantEditPlugin(QObject * parent): QObject(parent) { + m_initialized = m_designer = false; +} + + +void PIVariantEditPlugin::initialize(QDesignerFormEditorInterface * /* core */) { + m_designer = true; + if (m_initialized) return; + + // Add extension registrations, etc. here + + m_initialized = true; +} + + +bool PIVariantEditPlugin::isInitialized() const { + return m_initialized; +} + + +QWidget * PIVariantEditPlugin::createWidget(QWidget * parent) { + return new PIVariantEdit(parent); +} + + +QString PIVariantEditPlugin::name() const { + return QLatin1String("PIVariantEdit"); +} + + +QString PIVariantEditPlugin::group() const { + return QLatin1String("Input Widgets"); +} + + +QIcon PIVariantEditPlugin::icon() const { + return QIcon(":/icons/pivariantedit.png"); +} + + +QString PIVariantEditPlugin::toolTip() const { + return QLatin1String(""); // QLatin1String("Widget for display any math graphics with grid and navigation"); +} + + +QString PIVariantEditPlugin::whatsThis() const { + return QLatin1String(""); +} + + +bool PIVariantEditPlugin::isContainer() const { + return false; +} + + +QString PIVariantEditPlugin::domXml() const { + return QLatin1String("\n\n"); +} + + +QString PIVariantEditPlugin::includeFile() const { + return QLatin1String("pivariant_edit.h"); +} diff --git a/libs/piqt_utils/plugin/pivariantedit_plugin.h b/libs/piqt_utils/plugin/pivariantedit_plugin.h new file mode 100644 index 0000000..3dff706 --- /dev/null +++ b/libs/piqt_utils/plugin/pivariantedit_plugin.h @@ -0,0 +1,36 @@ +#ifndef pivariantedit_plugin_H +#define pivariantedit_plugin_H + +#include +#if QT_VERSION >= 0x050000 +# include +#else +# include +#endif + +class PIVariantEditPlugin + : public QObject + , public QDesignerCustomWidgetInterface { + Q_OBJECT + Q_INTERFACES(QDesignerCustomWidgetInterface) + +public: + PIVariantEditPlugin(QObject * parent = 0); + + bool isContainer() const; + bool isInitialized() const; + QIcon icon() const; + QString domXml() const; + QString group() const; + QString includeFile() const; + QString name() const; + QString toolTip() const; + QString whatsThis() const; + QWidget * createWidget(QWidget * parent); + void initialize(QDesignerFormEditorInterface * core); + +private: + bool m_initialized, m_designer; +}; + +#endif diff --git a/libs/piqt_utils/plugin/qad_piqt_utils.cpp b/libs/piqt_utils/plugin/qad_piqt_utils.cpp index ba999e3..719fb47 100644 --- a/libs/piqt_utils/plugin/qad_piqt_utils.cpp +++ b/libs/piqt_utils/plugin/qad_piqt_utils.cpp @@ -1,9 +1,11 @@ #include "qad_piqt_utils.h" #include "pivaluetree_edit_plugin.h" +#include "pivariantedit_plugin.h" QADPiQtUtils::QADPiQtUtils(QObject * parent): QObject(parent) { m_widgets.append(new PIValueTreeEditPlugin(this)); + m_widgets.append(new PIVariantEditPlugin(this)); } diff --git a/libs/piqt_utils/qad_piqt_widgets.qrc b/libs/piqt_utils/qad_piqt_widgets.qrc index 21dc5bf..0138933 100644 --- a/libs/piqt_utils/qad_piqt_widgets.qrc +++ b/libs/piqt_utils/qad_piqt_widgets.qrc @@ -14,5 +14,6 @@ ../../icons/layer-visible-off.png ../../icons/layer-visible-on.png ../../icons/valuetreeeditor.png + ../../icons/pivariantedit.png diff --git a/utils/qpicalculator/main.cpp b/utils/qpicalculator/main.cpp index 9ec99c8..4f6f689 100644 --- a/utils/qpicalculator/main.cpp +++ b/utils/qpicalculator/main.cpp @@ -1,52 +1,119 @@ -#include -#include "qad_types.h" #include "mainwindow.h" - #include "pitime.h" -#include +#include "qad_types.h" -int main(int argc, char *argv[]) { +#include +#include +#include +#include +#include + +int main(int argc, char * argv[]) { QApplication a(argc, argv); enableHighDPI(); + /*struct { + QStyle::StandardPixmap v; + const char * n; + } list[] = { + {QStyle::SP_TitleBarMenuButton, "TitleBarMenuButton, "}, + {QStyle::SP_TitleBarMinButton, "TitleBarMinButton, "}, + {QStyle::SP_TitleBarMaxButton, "TitleBarMaxButton, "}, + {QStyle::SP_TitleBarCloseButton, "TitleBarCloseButton, "}, + {QStyle::SP_TitleBarNormalButton, "TitleBarNormalButton, "}, + {QStyle::SP_TitleBarShadeButton, "TitleBarShadeButton, "}, + {QStyle::SP_TitleBarUnshadeButton, "TitleBarUnshadeButton, "}, + {QStyle::SP_TitleBarContextHelpButton, "TitleBarContextHelpButton, "}, + {QStyle::SP_DockWidgetCloseButton, "DockWidgetCloseButton, "}, + {QStyle::SP_MessageBoxInformation, "MessageBoxInformation, "}, + {QStyle::SP_MessageBoxWarning, "MessageBoxWarning, "}, + {QStyle::SP_MessageBoxCritical, "MessageBoxCritical, "}, + {QStyle::SP_MessageBoxQuestion, "MessageBoxQuestion, "}, + {QStyle::SP_DesktopIcon, "DesktopIcon, "}, + {QStyle::SP_TrashIcon, "TrashIcon, "}, + {QStyle::SP_ComputerIcon, "ComputerIcon, "}, + {QStyle::SP_DriveFDIcon, "DriveFDIcon, "}, + {QStyle::SP_DriveHDIcon, "DriveHDIcon, "}, + {QStyle::SP_DriveCDIcon, "DriveCDIcon, "}, + {QStyle::SP_DriveDVDIcon, "DriveDVDIcon, "}, + {QStyle::SP_DriveNetIcon, "DriveNetIcon, "}, + {QStyle::SP_DirOpenIcon, "DirOpenIcon, "}, + {QStyle::SP_DirClosedIcon, "DirClosedIcon, "}, + {QStyle::SP_DirLinkIcon, "DirLinkIcon, "}, + {QStyle::SP_DirLinkOpenIcon, "DirLinkOpenIcon, "}, + {QStyle::SP_FileIcon, "FileIcon, "}, + {QStyle::SP_FileLinkIcon, "FileLinkIcon, "}, + {QStyle::SP_ToolBarHorizontalExtensionButton, "ToolBarHorizontalExtensionButton,"}, + {QStyle::SP_ToolBarVerticalExtensionButton, "ToolBarVerticalExtensionButton, "}, + {QStyle::SP_FileDialogStart, "FileDialogStart, "}, + {QStyle::SP_FileDialogEnd, "FileDialogEnd, "}, + {QStyle::SP_FileDialogToParent, "FileDialogToParent, "}, + {QStyle::SP_FileDialogNewFolder, "FileDialogNewFolder, "}, + {QStyle::SP_FileDialogDetailedView, "FileDialogDetailedView, "}, + {QStyle::SP_FileDialogInfoView, "FileDialogInfoView, "}, + {QStyle::SP_FileDialogContentsView, "FileDialogContentsView, "}, + {QStyle::SP_FileDialogListView, "FileDialogListView, "}, + {QStyle::SP_FileDialogBack, "FileDialogBack, "}, + {QStyle::SP_DirIcon, "DirIcon, "}, + {QStyle::SP_DialogOkButton, "DialogOkButton, "}, + {QStyle::SP_DialogCancelButton, "DialogCancelButton, "}, + {QStyle::SP_DialogHelpButton, "DialogHelpButton, "}, + {QStyle::SP_DialogOpenButton, "DialogOpenButton, "}, + {QStyle::SP_DialogSaveButton, "DialogSaveButton, "}, + {QStyle::SP_DialogCloseButton, "DialogCloseButton, "}, + {QStyle::SP_DialogApplyButton, "DialogApplyButton, "}, + {QStyle::SP_DialogResetButton, "DialogResetButton, "}, + {QStyle::SP_DialogDiscardButton, "DialogDiscardButton, "}, + {QStyle::SP_DialogYesButton, "DialogYesButton, "}, + {QStyle::SP_DialogNoButton, "DialogNoButton, "}, + {QStyle::SP_ArrowUp, "ArrowUp, "}, + {QStyle::SP_ArrowDown, "ArrowDown, "}, + {QStyle::SP_ArrowLeft, "ArrowLeft, "}, + {QStyle::SP_ArrowRight, "ArrowRight, "}, + {QStyle::SP_ArrowBack, "ArrowBack, "}, + {QStyle::SP_ArrowForward, "ArrowForward, "}, + {QStyle::SP_DirHomeIcon, "DirHomeIcon, "}, + {QStyle::SP_CommandLink, "CommandLink, "}, + {QStyle::SP_VistaShield, "VistaShield, "}, + {QStyle::SP_BrowserReload, "BrowserReload, "}, + {QStyle::SP_BrowserStop, "BrowserStop, "}, + {QStyle::SP_MediaPlay, "MediaPlay, "}, + {QStyle::SP_MediaStop, "MediaStop, "}, + {QStyle::SP_MediaPause, "MediaPause, "}, + {QStyle::SP_MediaSkipForward, "MediaSkipForward, "}, + {QStyle::SP_MediaSkipBackward, "MediaSkipBackward, "}, + {QStyle::SP_MediaSeekForward, "MediaSeekForward, "}, + {QStyle::SP_MediaSeekBackward, "MediaSeekBackward, "}, + {QStyle::SP_MediaVolume, "MediaVolume, "}, + {QStyle::SP_MediaVolumeMuted, "MediaVolumeMuted, "}, + {QStyle::SP_LineEditClearButton, "LineEditClearButton, "}, + {QStyle::SP_DialogYesToAllButton, "DialogYesToAllButton, "}, + {QStyle::SP_DialogNoToAllButton, "DialogNoToAllButton, "}, + {QStyle::SP_DialogSaveAllButton, "DialogSaveAllButton, "}, + {QStyle::SP_DialogAbortButton, "DialogAbortButton, "}, + {QStyle::SP_DialogRetryButton, "DialogRetryButton, "}, + {QStyle::SP_DialogIgnoreButton, "DialogIgnoreButton, "}, + {QStyle::SP_RestoreDefaultsButton, "RestoreDefaultsButton, "}, + {QStyle::SP_CustomBase, nullptr } + }; + QScrollArea area; + auto * lay = new QBoxLayout(QBoxLayout::TopToBottom); + area.setWidget(new QWidget()); + area.widget()->setLayout(lay); + QTimer::singleShot(500, [lay, list] { + auto * s = qApp->style(); + for (int i = 0;; ++i) { + if (!list[i].n) break; + auto * r = new IconedLabel(); + r->setIcon(s->standardIcon(list[i].v)); + r->setText(list[i].n); + lay->addWidget(r); + r->show(); + } + }); + area.setWidgetResizable(true); + area.show(); +*/ MainWindow w; w.show(); return a.exec(); - - /*PITimeMeasurer tm; - int cnt = 1000000; - int el_o = 0, el_n = 0, el_q = 0; - double v = 0.; - NO_UNUSED(v); - - PIStringList nums({"", "1", "123456789", "12.3456789", ".01E+12", "-12345.6789E+123", "-E+100", "-", "-0", "-.", "-0."}); - for (PIString s: nums) { - piCout << "\nstring \"" << s << "\""; - const char * data = s.dataAscii(); - QString qs(data); - - tm.reset(); - piForTimes (cnt) { - v = atof(data); - } - el_o = tm.elapsed_u(); - piCout << v << "," << el_o << "us"; - - tm.reset(); - piForTimes (cnt) { - v = s.toDouble(); - } - el_n = tm.elapsed_u(); - piCout << v << "," << el_n << "us"; - - tm.reset(); - piForTimes (cnt) { - v = qs.toDouble(); - } - el_q = tm.elapsed_u(); - qDebug() << v << "," << el_q << "us"; - - piCout << "atof/PIP =" << (double)el_o / el_n; - piCout << " Qt/PIP =" << (double)el_q / el_n; - } - return 0;*/ }