add plugin for PIVariantEdit

This commit is contained in:
2023-08-30 15:16:45 +03:00
parent b77648aae9
commit c20a5788ca
6 changed files with 219 additions and 43 deletions

BIN
icons/pivariantedit.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -0,0 +1,70 @@
#include "pivariantedit_plugin.h"
#include "pivariant_edit.h"
#include <QtCore/QtPlugin>
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("<widget class=\"PIVariantEdit\" name=\"pivariantEdit\">\n</widget>\n");
}
QString PIVariantEditPlugin::includeFile() const {
return QLatin1String("pivariant_edit.h");
}

View File

@@ -0,0 +1,36 @@
#ifndef pivariantedit_plugin_H
#define pivariantedit_plugin_H
#include <QObject>
#if QT_VERSION >= 0x050000
# include <QtUiPlugin/QDesignerCustomWidgetInterface>
#else
# include <QDesignerCustomWidgetInterface>
#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

View File

@@ -1,9 +1,11 @@
#include "qad_piqt_utils.h" #include "qad_piqt_utils.h"
#include "pivaluetree_edit_plugin.h" #include "pivaluetree_edit_plugin.h"
#include "pivariantedit_plugin.h"
QADPiQtUtils::QADPiQtUtils(QObject * parent): QObject(parent) { QADPiQtUtils::QADPiQtUtils(QObject * parent): QObject(parent) {
m_widgets.append(new PIValueTreeEditPlugin(this)); m_widgets.append(new PIValueTreeEditPlugin(this));
m_widgets.append(new PIVariantEditPlugin(this));
} }

View File

@@ -14,5 +14,6 @@
<file>../../icons/layer-visible-off.png</file> <file>../../icons/layer-visible-off.png</file>
<file>../../icons/layer-visible-on.png</file> <file>../../icons/layer-visible-on.png</file>
<file>../../icons/valuetreeeditor.png</file> <file>../../icons/valuetreeeditor.png</file>
<file>../../icons/pivariantedit.png</file>
</qresource> </qresource>
</RCC> </RCC>

View File

@@ -1,52 +1,119 @@
#include <QApplication>
#include "qad_types.h"
#include "mainwindow.h" #include "mainwindow.h"
#include "pitime.h" #include "pitime.h"
#include <QDebug> #include "qad_types.h"
int main(int argc, char *argv[]) { #include <QApplication>
#include <QDebug>
#include <QScrollArea>
#include <QTimer>
#include <iconedlabel.h>
int main(int argc, char * argv[]) {
QApplication a(argc, argv); QApplication a(argc, argv);
enableHighDPI(); 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; MainWindow w;
w.show(); w.show();
return a.exec(); 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;*/
} }