diff --git a/qad/CMakeLists.txt b/qad/CMakeLists.txt index ead7f85..77e3200 100644 --- a/qad/CMakeLists.txt +++ b/qad/CMakeLists.txt @@ -7,12 +7,27 @@ if (NOT LIBPROJECT) option(LIB "System install" 1) option(DEBUG "Build with -g3" 0) option(DESIGNER_PLUGINS "Build qt designer plugins" 1) + option(STATIC_LIB OFF) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -Wall") if (DEBUG) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3") endif () endif() +include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) + +set(EXPORT_HEADER "${CMAKE_CURRENT_SOURCE_DIR}/qad_export.h") + +if(STATIC_LIB) + set(QAD_LIB_TYPE STATIC) + add_definitions(-DQAD_STATIC_DEFINE) + message(STATUS "Building QAD static libraries") +else() + set(QAD_LIB_TYPE SHARED) + add_definitions(-DQAD_SHARED_DEFINE) + message(STATUS "Building QAD shared libraries") +endif() + if (NOT DEFINED ANDROID_PLATFORM) find_package(OpenGL REQUIRED) endif() @@ -36,9 +51,18 @@ if (NOT LIBPROJECT) message(STATUS "Install ${PROJECT_NAME} to local \"bin\"") endif() endif() + set(CMAKES "FindQAD.cmake" "QtWraps.cmake") install(FILES ${CMAKES} DESTINATION ${CMAKE_ROOT}/Modules) +if (LIB) + if (WIN32) + install(FILES ${EXPORT_HEADER} DESTINATION ${MINGW_INCLUDE}/qad) + else() + install(FILES ${EXPORT_HEADER} DESTINATION ${CMAKE_INSTALL_PREFIX}/include/qad) + endif() +endif() + macro(qad_install _TARGET _H_FILES _QM_FILES) #message("qad_install ${_TARGET} ${_QM_FILES}") if (LIBPROJECT) @@ -67,20 +91,22 @@ macro(qad_install _TARGET _H_FILES _QM_FILES) endmacro() macro(qad_plugin NAME _MODULES _LIBS) - if(DESIGNER_PLUGINS) - set(PROJ_NAME qad_${NAME}_plugin) - include_directories("..") - #message(${_${NAME}_PLUGIN_LIBS}) - add_definitions(-DQT_PLUGIN) - add_definitions(-DQT_NO_DEBUG) - add_definitions(-DQT_SHARED) - add_definitions(-DQDESIGNER_EXPORT_WIDGETS) - find_qt(${QtVersions} Core Designer ${_MODULES}) - qt_sources(SRC) - qt_wrap(${SRC} CPPS out_CPP QMS out_QM) - qt_add_library(${PROJ_NAME} SHARED out_CPP) - qt_target_link_libraries(${PROJ_NAME} ${_LIBS} qad_${NAME} ${_${NAME}_PLUGIN_LIBS}) - qt_install(TARGETS ${PROJ_NAME} DESTINATION QtPlugins/designer) + if (NOT STATIC_LIB) + if(DESIGNER_PLUGINS) + set(PROJ_NAME qad_${NAME}_plugin) + include_directories("..") + #message(${_${NAME}_PLUGIN_LIBS}) + add_definitions(-DQT_PLUGIN) + add_definitions(-DQT_NO_DEBUG) + add_definitions(-DQT_SHARED) + add_definitions(-DQDESIGNER_EXPORT_WIDGETS) + find_qt(${QtVersions} Core Designer ${_MODULES}) + qt_sources(SRC) + qt_wrap(${SRC} CPPS out_CPP QMS out_QM) + qt_add_library(${PROJ_NAME} SHARED out_CPP) + qt_target_link_libraries(${PROJ_NAME} ${_LIBS} qad_${NAME} ${_${NAME}_PLUGIN_LIBS}) + qt_install(TARGETS ${PROJ_NAME} DESTINATION QtPlugins/designer) + endif() endif() endmacro() @@ -89,7 +115,7 @@ macro(qad_project NAME _MODULES _LIBS) find_qt(${QtVersions} Core ${_MODULES}) qt_sources(SRC) qt_wrap(${SRC} HDRS out_HDR CPPS out_CPP QMS ${PROJ_NAME}_QM) - qt_add_library(${PROJ_NAME} SHARED out_CPP) + qt_add_library(${PROJ_NAME} ${QAD_LIB_TYPE} out_CPP ${EXPORT_HEADER}) qt_target_link_libraries(${PROJ_NAME} ${_LIBS}) qad_install(${PROJ_NAME} "${out_HDR}" ${PROJ_NAME}_QM) set(${NAME}_UTILS 1) diff --git a/qad/FindQAD.cmake b/qad/FindQAD.cmake index 0c8ba87..875609f 100644 --- a/qad/FindQAD.cmake +++ b/qad/FindQAD.cmake @@ -25,7 +25,7 @@ endif() set(_SEARCH_DIR ${MINGW_LIB} /usr/lib /usr/local/lib $ENV{SMSDK_DIR}/lib) set(_QAD_LIBS utils widgets application blockview graphic sql_table touch_widgets) if(LIBPROJECT) - set(QAD_INCLUDES) + set(QAD_INCLUDES ${QAD_DIR}) endif() foreach(_Q ${_QAD_LIBS}) string(TOUPPER ${_Q} _QU) diff --git a/qad/application/edockwidget.h b/qad/application/edockwidget.h index e5a3a15..c189c75 100644 --- a/qad/application/edockwidget.h +++ b/qad/application/edockwidget.h @@ -8,9 +8,10 @@ #include #include #include +#include "qad_export.h" -class EDockWidget: public QDockWidget +class QAD_EXPORT EDockWidget: public QDockWidget { Q_OBJECT public: diff --git a/qad/application/emainwindow.h b/qad/application/emainwindow.h index ef104c0..197a514 100644 --- a/qad/application/emainwindow.h +++ b/qad/application/emainwindow.h @@ -14,7 +14,8 @@ #include "session_manager.h" #include "ribbon.h" -class UAction: public QAction { + +class QAD_EXPORT UAction: public QAction { Q_OBJECT public: UAction(int ind,const QString & text, QObject * parent): QAction(text, parent) { @@ -47,7 +48,7 @@ signals: }; -class EMainWindow: public QMainWindow +class QAD_EXPORT EMainWindow: public QMainWindow { Q_OBJECT Q_PROPERTY(int maxRecentItems READ maxRecentItems WRITE setMaxRecentItems) diff --git a/qad/application/etabwidget.h b/qad/application/etabwidget.h index ad9f304..a51d3d5 100644 --- a/qad/application/etabwidget.h +++ b/qad/application/etabwidget.h @@ -11,9 +11,10 @@ #include #include #include +#include "qad_export.h" -class ETabWidget: public QTabWidget +class QAD_EXPORT ETabWidget: public QTabWidget { Q_OBJECT public: diff --git a/qad/application/historyview.h b/qad/application/historyview.h index e125ad3..c263b53 100644 --- a/qad/application/historyview.h +++ b/qad/application/historyview.h @@ -3,9 +3,10 @@ #include #include +#include "qad_export.h" -class HistoryView: public QListWidget +class QAD_EXPORT HistoryView: public QListWidget { Q_OBJECT Q_PROPERTY(bool active READ isActive WRITE setActive) diff --git a/qad/application/qsingleapplication.h b/qad/application/qsingleapplication.h index 45a83df..c5f83f7 100644 --- a/qad/application/qsingleapplication.h +++ b/qad/application/qsingleapplication.h @@ -3,8 +3,10 @@ #include #include +#include "qad_export.h" -class QSingleApplication: public QThread + +class QAD_EXPORT QSingleApplication: public QThread { Q_OBJECT public: diff --git a/qad/application/ribbon.h b/qad/application/ribbon.h index c2fb617..5c354a2 100644 --- a/qad/application/ribbon.h +++ b/qad/application/ribbon.h @@ -14,7 +14,7 @@ #include "etabwidget.h" -class Ribbon: public QToolBar +class QAD_EXPORT Ribbon: public QToolBar { Q_OBJECT public: diff --git a/qad/blockview/alignedtextitem.h b/qad/blockview/alignedtextitem.h index b0df285..cdd2b72 100644 --- a/qad/blockview/alignedtextitem.h +++ b/qad/blockview/alignedtextitem.h @@ -5,9 +5,10 @@ #include #include #include +#include "qad_export.h" -class AlignedTextItem: public QGraphicsItem { +class QAD_EXPORT AlignedTextItem: public QGraphicsItem { public: AlignedTextItem(QGraphicsItem * parent = 0); AlignedTextItem(const QString & text, QGraphicsItem * parent = 0); diff --git a/qad/blockview/blockbase.h b/qad/blockview/blockbase.h index c88b84d..5f3da49 100644 --- a/qad/blockview/blockbase.h +++ b/qad/blockview/blockbase.h @@ -50,11 +50,11 @@ enum BlockviewItemType { bvitItemText, }; -QDataStream & operator <<(QDataStream & s, const QGraphicsItem * item); -QDataStream & operator >>(QDataStream & s, QGraphicsItem *& item); +QAD_EXPORT QDataStream & operator <<(QDataStream & s, const QGraphicsItem * item); +QAD_EXPORT QDataStream & operator >>(QDataStream & s, QGraphicsItem *& item); -class BlockItemBase: public QObject +class QAD_EXPORT BlockItemBase: public QObject { Q_OBJECT Q_ENUMS(Action) diff --git a/qad/blockview/blockbusitem.h b/qad/blockview/blockbusitem.h index e53fd13..dac017e 100644 --- a/qad/blockview/blockbusitem.h +++ b/qad/blockview/blockbusitem.h @@ -4,7 +4,7 @@ #include "blockitem.h" -class BlockBusItem: public QGraphicsObject, public PropertyStorage { +class QAD_EXPORT BlockBusItem: public QGraphicsObject, public PropertyStorage { Q_OBJECT Q_INTERFACES(QGraphicsItem) Q_PROPERTY(double pointSize READ pointSize WRITE setPointSize DESIGNABLE false SCRIPTABLE false) diff --git a/qad/blockview/blockeditor.h b/qad/blockview/blockeditor.h index c2d3f71..9a54d78 100644 --- a/qad/blockview/blockeditor.h +++ b/qad/blockview/blockeditor.h @@ -12,7 +12,7 @@ class BlockEditor; } -class BlockEditor : public QWidget +class QAD_EXPORT BlockEditor : public QWidget { Q_OBJECT Q_PROPERTY(bool editorMode READ editorMode WRITE setEditorMode) @@ -64,7 +64,7 @@ private: -class PinAlignDelegate: public QStyledItemDelegate { +class QAD_EXPORT PinAlignDelegate: public QStyledItemDelegate { Q_OBJECT public: PinAlignDelegate(QObject * parent = 0): QStyledItemDelegate(parent) {} @@ -75,7 +75,7 @@ public: }; -class PinBusDelegate: public QStyledItemDelegate { +class QAD_EXPORT PinBusDelegate: public QStyledItemDelegate { Q_OBJECT public: PinBusDelegate(QObject * parent = 0): QStyledItemDelegate(parent) {} diff --git a/qad/blockview/blockitem.h b/qad/blockview/blockitem.h index 422f9ae..1058679 100644 --- a/qad/blockview/blockitem.h +++ b/qad/blockview/blockitem.h @@ -5,7 +5,7 @@ #include -class BlockItem: public QGraphicsObject, public PropertyStorage +class QAD_EXPORT BlockItem: public QGraphicsObject, public PropertyStorage { friend class BlockView; friend class BlockItemPin; diff --git a/qad/blockview/blockitempin.h b/qad/blockview/blockitempin.h index 4599299..c2c6700 100644 --- a/qad/blockview/blockitempin.h +++ b/qad/blockview/blockitempin.h @@ -19,7 +19,7 @@ class BlockItem; class BlockBusItem; -class BlockItemPin: public QGraphicsObject, public PropertyStorage +class QAD_EXPORT BlockItemPin: public QGraphicsObject, public PropertyStorage { friend class BlockView; friend class BlockItem; diff --git a/qad/blockview/blockview.h b/qad/blockview/blockview.h index 253c458..a305f77 100644 --- a/qad/blockview/blockview.h +++ b/qad/blockview/blockview.h @@ -13,15 +13,12 @@ #include "blockbusitem.h" -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - Q_DECLARE_METATYPE(BlockItem*) Q_DECLARE_METATYPE(BlockItemPin*) Q_DECLARE_METATYPE(BlockBusItem*) -class BlockView: public QGraphicsView + +class QAD_EXPORT BlockView: public QGraphicsView { Q_OBJECT Q_ENUMS(SelectionMode) @@ -249,8 +246,4 @@ signals: }; -QT_END_NAMESPACE - -QT_END_HEADER - #endif // BLOCKVIEW_H diff --git a/qad/blockview/blockviewwavetrace.h b/qad/blockview/blockviewwavetrace.h index 7592f57..2dfa7b7 100644 --- a/qad/blockview/blockviewwavetrace.h +++ b/qad/blockview/blockviewwavetrace.h @@ -3,7 +3,8 @@ #include "blockitem.h" -class BlockViewWavetrace { + +class QAD_EXPORT BlockViewWavetrace { public: BlockViewWavetrace(int width = 1, int height = 1); diff --git a/qad/blockview/drawtools.h b/qad/blockview/drawtools.h index 98d2d2d..0c99bdb 100644 --- a/qad/blockview/drawtools.h +++ b/qad/blockview/drawtools.h @@ -9,9 +9,11 @@ #include #include "blockview.h" + class QComboBox; -class _DTSizeItem: public QGraphicsObject + +class QAD_EXPORT _DTSizeItem: public QGraphicsObject { Q_OBJECT public: @@ -45,11 +47,13 @@ signals: }; + namespace Ui { class DrawTools; } -class DrawTools: public QObject + +class QAD_EXPORT DrawTools: public QObject { Q_OBJECT Q_PROPERTY(bool resizeHandlesEnabled READ isResizeHandlesEnabled WRITE setResizeHandlesEnabled) diff --git a/qad/graphic/graphic.h b/qad/graphic/graphic.h index 314a4a0..46431c9 100644 --- a/qad/graphic/graphic.h +++ b/qad/graphic/graphic.h @@ -6,7 +6,6 @@ #include #include #include -///#include #include #include #include @@ -18,20 +17,19 @@ #include "graphic_conf.h" #include "evalspinbox.h" -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - namespace Ui { class Graphic; } + class UGLWidget; + Q_DECLARE_METATYPE(QVector) -class Graphic: public QFrame + +class QAD_EXPORT Graphic: public QFrame { Q_OBJECT Q_FLAGS(Buttons) @@ -436,13 +434,16 @@ signals: }; + Q_DECLARE_METATYPE(Graphic::GraphicsData) Q_DECLARE_OPERATORS_FOR_FLAGS(Graphic::Buttons) + inline QDataStream & operator <<(QDataStream & s, const Graphic::Graduation & v) {s << (int)v; return s;} inline QDataStream & operator >>(QDataStream & s, Graphic::Graduation & v) {s >> *((int*)(&v)); return s;} + class __GraphicRegistrator__ { public: __GraphicRegistrator__() { @@ -452,8 +453,4 @@ public: } }; -QT_END_NAMESPACE - -QT_END_HEADER - #endif // GRAPHIC_H diff --git a/qad/graphic/graphic_conf.h b/qad/graphic/graphic_conf.h index dd5305c..6721883 100644 --- a/qad/graphic/graphic_conf.h +++ b/qad/graphic/graphic_conf.h @@ -5,14 +5,15 @@ #include #include #include +#include "qad_export.h" namespace Ui { class GraphicConf; -}; +} -struct GraphicType { +struct QAD_EXPORT GraphicType { GraphicType(QString name_ = "y(x)", QColor color = Qt::red, Qt::PenStyle style = Qt::SolidLine, double width = 0., bool visible_ = true) { pen.setColor(color); pen.setStyle(style); @@ -53,7 +54,7 @@ inline QDataStream & operator <<(QDataStream & s, const GraphicType & v) {s << v inline QDataStream & operator >>(QDataStream & s, GraphicType & v) {s >> v.name >> v.pen >> v.fill_color >> v.lines >> v.points >> v.fill >> v.pointWidth >> v.visible; return s;} -class GraphicConf: public QDialog +class QAD_EXPORT GraphicConf: public QDialog { Q_OBJECT friend class Graphic; diff --git a/qad/sql_table/sql_record_widget.h b/qad/sql_table/sql_record_widget.h index 68903fa..2094d5c 100644 --- a/qad/sql_table/sql_record_widget.h +++ b/qad/sql_table/sql_record_widget.h @@ -7,8 +7,10 @@ #include #include #include +#include "qad_export.h" -class SQLRecordWidget: public QWidget { + +class QAD_EXPORT SQLRecordWidget: public QWidget { Q_OBJECT public: SQLRecordWidget(QWidget * parent = 0); diff --git a/qad/sql_table/sql_table_widget.h b/qad/sql_table/sql_table_widget.h index b518ee0..9d63183 100644 --- a/qad/sql_table/sql_table_widget.h +++ b/qad/sql_table/sql_table_widget.h @@ -28,7 +28,7 @@ #include "qpiconfig.h" -struct ColumnProperties { +struct QAD_EXPORT ColumnProperties { enum DataType {Unknown, Int, Float, Chars, Text, Binary, Date, Time, DateTime}; ColumnProperties(const QString & table_, const QString & type_, const QString & name_, const QString & def_, bool auto_, bool prim_, bool option_); bool isRelation() const {return (!relation_key.isEmpty() && !relation_column.isEmpty());} @@ -58,7 +58,7 @@ struct ColumnProperties { -struct TableColumns { +struct QAD_EXPORT TableColumns { int mapColumn(int abs_ind) const {if (abs_ind <= 0 || abs_ind >= column_indexes.size() + 1) return 0; return column_indexes[abs_ind - 1];} QVector column_indexes; QList columns; @@ -67,7 +67,7 @@ struct TableColumns { -class SQLQueryModel: public QSqlQueryModel { +class QAD_EXPORT SQLQueryModel: public QSqlQueryModel { Q_OBJECT public: explicit SQLQueryModel(QString & t, QString & conn, QList & cp, QVector & ci, QObject* parent = 0): QSqlQueryModel(parent), table_(t), column_props(cp), column_indexes(ci), conn_name(conn) {;} @@ -88,7 +88,7 @@ signals: -class SQLUniEdit: public QWidget { +class QAD_EXPORT SQLUniEdit: public QWidget { Q_OBJECT public: explicit SQLUniEdit(const ColumnProperties & prop, const QString & conn_name, QWidget * parent = 0); @@ -128,7 +128,7 @@ signals: -class SQLNewEdit: public QWidget { +class QAD_EXPORT SQLNewEdit: public QWidget { Q_OBJECT friend class SQLTableWidget; public: @@ -147,7 +147,7 @@ private: -class SQLFilterEdit: public QWidget { +class QAD_EXPORT SQLFilterEdit: public QWidget { Q_OBJECT friend class SQLTableWidget; public: @@ -171,7 +171,7 @@ signals: -class SQLItemDelegate: public QStyledItemDelegate { +class QAD_EXPORT SQLItemDelegate: public QStyledItemDelegate { Q_OBJECT public: explicit SQLItemDelegate(QList & cp, QVector & ci, bool & ro, const QString & conn_name, QObject * parent = 0); @@ -192,14 +192,12 @@ signals: }; - - namespace Ui { class SQLTableWidget; -}; +} -class SQLTableWidget: public QWidget +class QAD_EXPORT SQLTableWidget: public QWidget { Q_OBJECT Q_PROPERTY(QString tableName READ tableName WRITE setTableName) diff --git a/qad/touch_widgets/touchbuttframe.h b/qad/touch_widgets/touchbuttframe.h index 1d695d8..8d129c8 100644 --- a/qad/touch_widgets/touchbuttframe.h +++ b/qad/touch_widgets/touchbuttframe.h @@ -7,7 +7,7 @@ #include "touchbutton.h" -class TouchButtFrame: public QFrame +class QAD_EXPORT TouchButtFrame: public QFrame { Q_OBJECT Q_PROPERTY(QColor colorYes READ colorYes WRITE setColorYes) diff --git a/qad/touch_widgets/touchbutton.h b/qad/touch_widgets/touchbutton.h index 0733b1c..0a0af4f 100644 --- a/qad/touch_widgets/touchbutton.h +++ b/qad/touch_widgets/touchbutton.h @@ -6,10 +6,10 @@ #include #include #include +#include "qad_export.h" -QT_BEGIN_NAMESPACE -class TouchButton: public QToolButton +class QAD_EXPORT TouchButton: public QToolButton { Q_OBJECT Q_ENUMS(State) @@ -149,6 +149,4 @@ signals: }; -QT_END_NAMESPACE - #endif // TOUCHBUTTON_H diff --git a/qad/touch_widgets/touchslider.h b/qad/touch_widgets/touchslider.h index 97c2b92..61c1210 100644 --- a/qad/touch_widgets/touchslider.h +++ b/qad/touch_widgets/touchslider.h @@ -3,12 +3,15 @@ #include #include +#include "qad_export.h" + namespace Ui { class TouchSlider; } -class TouchSlider: public QGroupBox + +class QAD_EXPORT TouchSlider: public QGroupBox { Q_OBJECT Q_PROPERTY(bool readOnly READ readOnly WRITE setReadOnly) diff --git a/qad/utils/chunkstream.h b/qad/utils/chunkstream.h index 575bcbe..7da344b 100644 --- a/qad/utils/chunkstream.h +++ b/qad/utils/chunkstream.h @@ -5,9 +5,10 @@ #include #include #include +#include "qad_export.h" -class ChunkStream +class QAD_EXPORT ChunkStream { public: enum Version { diff --git a/qad/utils/propertystorage.h b/qad/utils/propertystorage.h index f8e4490..65a0277 100644 --- a/qad/utils/propertystorage.h +++ b/qad/utils/propertystorage.h @@ -10,7 +10,7 @@ #include "chunkstream.h" -class PropertyStorage { +class QAD_EXPORT PropertyStorage { public: PropertyStorage() {} diff --git a/qad/utils/qad_types.h b/qad/utils/qad_types.h index 3803578..4b59ed6 100644 --- a/qad/utils/qad_types.h +++ b/qad/utils/qad_types.h @@ -2,18 +2,21 @@ #define QAD_TYPES_H #include "propertystorage.h" +#include "qad_export.h" + class QMetaEnum; + namespace QAD { - struct Enumerator { + struct QAD_EXPORT Enumerator { Enumerator(int v = 0, const QString & n = QString()): value(v), name(n) {} int value; QString name; }; - struct Enum { + struct QAD_EXPORT Enum { Enum(const QString & n = QString()): enum_name(n) {} Enum(const QMetaEnum & meta, int selected = 0); QString toString() const {return selected;} // obsolete, use selectedName() @@ -34,7 +37,7 @@ namespace QAD { Enum & operator <<(const QStringList & v); }; - struct File { + struct QAD_EXPORT File { File(const QString & p = QString(), const QString & f = QString(), bool abs = false): file(p), filter(f), is_abs(abs) {} QString toString() const {return file;} QString file; @@ -42,14 +45,14 @@ namespace QAD { bool is_abs; }; - struct Dir { + struct QAD_EXPORT Dir { Dir(const QString & d = QString(), bool abs = false): dir(d), is_abs(abs) {} QString toString() const {return dir;} QString dir; bool is_abs; }; - struct IODevice { + struct QAD_EXPORT IODevice { IODevice(const QString & device_prefix = QString(), const PropertyStorage & device_properties = PropertyStorage(), int open_mode = QIODevice::ReadWrite, int device_options = 0) : prefix(device_prefix), mode(open_mode), options(device_options), props(device_properties) {} @@ -61,12 +64,12 @@ namespace QAD { PropertyStorage props; }; - struct MathVector { + struct QAD_EXPORT MathVector { MathVector(const QVector & vec = QVector()) {v = vec;} QVector v; }; - struct MathMatrix { + struct QAD_EXPORT MathMatrix { MathMatrix(const QVector > & mat = QVector > ()) {m = mat;} QVector > m; // [Row][Column] }; @@ -109,7 +112,7 @@ inline QDataStream & operator >>(QDataStream & s, QAD::MathMatrix & v) {s >> v.m inline QDebug operator <<(QDebug s, const QAD::MathMatrix & v) {s.nospace() << "Matrix " << v.m; return s.space();} -class __QADTypesRegistrator__ { +class QAD_EXPORT __QADTypesRegistrator__ { public: __QADTypesRegistrator__(int); static __QADTypesRegistrator__ * instance(); @@ -136,13 +139,13 @@ inline QRectF enlargedRect(const QRectF & r, qreal dx, qreal dy, qreal v) { return QRectF(r.left() - v + dx, r.top() - v + dy, r.width() + v+v, r.height() + v+v); } -QVariant::Type typeFromLetter(const QString & l); -QString uniqueName(QString n, const QStringList & names); +QAD_EXPORT QVariant::Type typeFromLetter(const QString & l); +QAD_EXPORT QString uniqueName(QString n, const QStringList & names); -int fontHeight(const QWidget * w = 0); -int lineThickness(const QWidget * w = 0); -QSize preferredIconSize(float x = 1.f, const QWidget * w = 0); -double appScale(const QWidget * w = 0); +QAD_EXPORT int fontHeight(const QWidget * w = 0); +QAD_EXPORT int lineThickness(const QWidget * w = 0); +QAD_EXPORT QSize preferredIconSize(float x = 1.f, const QWidget * w = 0); +QAD_EXPORT double appScale(const QWidget * w = 0); #endif // QAD_TYPES_H diff --git a/qad/utils/qpiconfig.h b/qad/utils/qpiconfig.h index fe574ef..ac06116 100644 --- a/qad/utils/qpiconfig.h +++ b/qad/utils/qpiconfig.h @@ -11,22 +11,23 @@ #include #include #include +#include "qad_export.h" inline QByteArray QString2QByteArray(const QString & string) {return string.isEmpty() ? QByteArray() : qUncompress(QByteArray::fromBase64(string.toLatin1()));} -int QString2int(const QString & string); +QAD_EXPORT int QString2int(const QString & string); inline QColor QString2QColor(const QString & string) {return (string.left(1) == "#" ? QColor(string.right(string.length() - 1).toInt(0, 16)) : QColor(QString2int(string)));} -QRect QString2QRect(const QString & string); -QRectF QString2QRectF(const QString & string); -QPoint QString2QPoint(const QString & string); -QPointF QString2QPointF(const QString & string); +QAD_EXPORT QRect QString2QRect(const QString & string); +QAD_EXPORT QRectF QString2QRectF(const QString & string); +QAD_EXPORT QPoint QString2QPoint(const QString & string); +QAD_EXPORT QPointF QString2QPointF(const QString & string); inline QString QColor2QString(const QColor & color) {QString s = color.name(); return "0x" + QString::number(color.alpha(), 16).rightJustified(2, '0') + s.right(s.length() - 1);} inline QString QPoint2QString(const QPoint & point) {return QString::number(point.x()) + ";" + QString::number(point.y());} inline QString QPointF2QString(const QPointF & point) {return QString::number(point.x()) + ";" + QString::number(point.y());} inline QString QByteArray2QString(const QByteArray & array) {return array.isEmpty() ? QString() : QString(qCompress(array, 9).toBase64());} -QString QRect2QString(const QRect & rect); -QString QRectF2QString(const QRectF & rect); +QAD_EXPORT QString QRect2QString(const QRect & rect); +QAD_EXPORT QString QRectF2QString(const QRectF & rect); #define QPICONFIG_GET_VALUE \ Entry & getValue(const QString & vname, const char * def, bool * exist = 0) {return getValue(vname, QString(def), exist);} \ @@ -49,7 +50,7 @@ QString QRectF2QString(const QRectF & rect); Entry & getValue(const QString & vname, const QPointF & def, bool * exist = 0) {return getValue(vname, QPointF2QString(def), exist);} \ Entry & getValue(const QString & vname, const QByteArray & def, bool * exist = 0) {return getValue(vname, QByteArray2QString(def), exist);} -class QPIConfig: public QFile +class QAD_EXPORT QPIConfig: public QFile { friend class Entry; friend class Branch; diff --git a/qad/utils/qpievaluator.h b/qad/utils/qpievaluator.h index d8213ad..50dec7e 100644 --- a/qad/utils/qpievaluator.h +++ b/qad/utils/qpievaluator.h @@ -7,6 +7,8 @@ #include #include #include +#include "qad_export.h" + #ifndef PIP_MATH_COMPLEX #define QPIEVALUATOR_COMPLEX @@ -40,7 +42,7 @@ namespace QPIEvaluatorTypes { bfIm, bfRe, bfArg, bfLen, bfConj, bfRad, bfDeg}; - struct Instruction { + struct QAD_EXPORT Instruction { Instruction() {;} Instruction(Operation oper, QVector opers, int out_ind, int func = -1) { operation = oper; operators = opers; out = out_ind; function = func;} @@ -48,20 +50,20 @@ namespace QPIEvaluatorTypes { QVector operators; int out; int function;}; - struct Element { + struct QAD_EXPORT Element { Element() {;} Element(eType new_type, int new_num, int new_var_num = -1) {set(new_type, new_num, new_var_num);} void set(eType new_type, int new_num, int new_var_num = -1) {type = new_type; num = new_num; var_num = new_var_num;} eType type; int num; int var_num;}; - struct Function { + struct QAD_EXPORT Function { Function() {arguments = 0; type = bfUnknown;} Function(const QString & name, int args, BaseFunctions ftype) {identifier = name; arguments = args; type = ftype;} QString identifier; BaseFunctions type; int arguments;}; - struct Variable { + struct QAD_EXPORT Variable { Variable() {value = 0.;} Variable(const QString & var_name, complexd val) {name = var_name; value = val;} QString name; @@ -71,7 +73,9 @@ namespace QPIEvaluatorTypes { return s1.name.size() > s2.name.size(); return s1.name > s2.name; } -}; +} + + /* ≠ : ≥ } @@ -79,7 +83,7 @@ namespace QPIEvaluatorTypes { ⋀ & ⋁ | */ -class QPIEvaluatorContent +class QAD_EXPORT QPIEvaluatorContent { friend class QPIEvaluator; public: @@ -116,7 +120,8 @@ private: }; -class QPIEvaluator + +class QAD_EXPORT QPIEvaluator { public: QPIEvaluator() {correct = false ;} @@ -172,6 +177,7 @@ private: }; + inline bool operator ==(QPIEvaluatorTypes::Element e1, QPIEvaluatorTypes::Element e2) {return (e1.type == e2.type && e1.num == e2.num);} inline bool operator !=(QPIEvaluatorTypes::Element e1, QPIEvaluatorTypes::Element e2) {return (e1.type != e2.type || e1.num != e2.num);} diff --git a/qad/widgets/chardialog.h b/qad/widgets/chardialog.h index 675b611..7a5631c 100644 --- a/qad/widgets/chardialog.h +++ b/qad/widgets/chardialog.h @@ -4,12 +4,15 @@ #include #include #include +#include "qad_export.h" + namespace Ui { class CharDialog; -}; +} -class CharDialog: public QDialog + +class QAD_EXPORT CharDialog: public QDialog { Q_OBJECT public: diff --git a/qad/widgets/clineedit.h b/qad/widgets/clineedit.h index 2ee32b1..1b337d0 100644 --- a/qad/widgets/clineedit.h +++ b/qad/widgets/clineedit.h @@ -5,9 +5,10 @@ #include #include #include +#include "qad_export.h" -class CLineEdit: public QLineEdit +class QAD_EXPORT CLineEdit: public QLineEdit { Q_OBJECT Q_PROPERTY(QString defaultText READ defaultText WRITE setDefaultText) diff --git a/qad/widgets/colorbutton.h b/qad/widgets/colorbutton.h index 37eb4e9..43280d8 100644 --- a/qad/widgets/colorbutton.h +++ b/qad/widgets/colorbutton.h @@ -9,9 +9,10 @@ #include #include #include +#include "qad_export.h" -class ColorButton: public QPushButton +class QAD_EXPORT ColorButton: public QPushButton { Q_OBJECT Q_PROPERTY(QColor color READ color WRITE setColor) diff --git a/qad/widgets/ecombobox.h b/qad/widgets/ecombobox.h index 4ad832a..1f08be0 100644 --- a/qad/widgets/ecombobox.h +++ b/qad/widgets/ecombobox.h @@ -8,7 +8,7 @@ #include "clineedit.h" -class EComboBox: public QComboBox +class QAD_EXPORT EComboBox: public QComboBox { Q_OBJECT public: diff --git a/qad/widgets/evalspinbox.h b/qad/widgets/evalspinbox.h index eedc03b..21b6a9d 100644 --- a/qad/widgets/evalspinbox.h +++ b/qad/widgets/evalspinbox.h @@ -5,9 +5,10 @@ #include #include "qpievaluator.h" + class QLabel; -class EvalSpinBox: public QAbstractSpinBox +class QAD_EXPORT EvalSpinBox: public QAbstractSpinBox { Q_OBJECT Q_PROPERTY(double value READ value WRITE setValue NOTIFY valueChanged USER true) diff --git a/qad/widgets/iconedlabel.h b/qad/widgets/iconedlabel.h index ab2317d..00c37f0 100644 --- a/qad/widgets/iconedlabel.h +++ b/qad/widgets/iconedlabel.h @@ -5,11 +5,8 @@ #include #include "qad_types.h" -QT_BEGIN_HEADER -QT_BEGIN_NAMESPACE - -class IconedLabel: public QFrame +class QAD_EXPORT IconedLabel: public QFrame { Q_OBJECT Q_ENUMS(Direction) @@ -46,8 +43,4 @@ signals: }; -QT_END_NAMESPACE - -QT_END_HEADER - #endif // ICONEDLABEL_H diff --git a/qad/widgets/image_view.cpp b/qad/widgets/image_view.cpp index bb72fd0..f50c0cd 100644 --- a/qad/widgets/image_view.cpp +++ b/qad/widgets/image_view.cpp @@ -87,12 +87,12 @@ void ImageView::mouseMoveEvent(QMouseEvent * e) { } -void ImageView::wheelEvent(QWheelEvent * e) { - if (!e->modifiers().testFlag(Qt::ControlModifier) || !isInteractive()) return; - double scl = 1. + e->delta() / 500.; - //autofit_ = false; - //scale(scl, scl); -} +//void ImageView::wheelEvent(QWheelEvent * e) { +// if (!e->modifiers().testFlag(Qt::ControlModifier) || !isInteractive()) return; +// double scl = 1. + e->delta() / 500.; +// //autofit_ = false; +// //scale(scl, scl); +//} bool ImageView::eventFilter(QObject * o, QEvent * e) { @@ -107,8 +107,8 @@ bool ImageView::eventFilter(QObject * o, QEvent * e) { case QEvent::MouseMove: if (!me->buttons().testFlag(Qt::RightButton) || autofit_ || !isInteractive()) break; { - double scl = 1. / qSqrt(transform().determinant()); - QPointF dp = QPointF(me->pos() - prev_pos) * scl; + //double scl = 1. / qSqrt(transform().determinant()); + //QPointF dp = QPointF(me->pos() - prev_pos) * scl; //qDebug() << dp; //translate(0.00001, 0); prev_pos = me->pos(); diff --git a/qad/widgets/image_view.h b/qad/widgets/image_view.h index 475b799..1d4a9a0 100644 --- a/qad/widgets/image_view.h +++ b/qad/widgets/image_view.h @@ -3,9 +3,10 @@ #include #include +#include "qad_export.h" -class ImageView: public QGraphicsView +class QAD_EXPORT ImageView: public QGraphicsView { Q_OBJECT Q_PROPERTY(QPixmap pixmap READ pixmap WRITE setPixmap) @@ -24,7 +25,7 @@ private: void mouseDoubleClickEvent(QMouseEvent * e); void mousePressEvent(QMouseEvent * e); void mouseMoveEvent(QMouseEvent * e); - void wheelEvent(QWheelEvent * e); +// void wheelEvent(QWheelEvent * e); bool eventFilter(QObject * o, QEvent * e); void adjustView(); diff --git a/qad/widgets/mathmatrixedit.h b/qad/widgets/mathmatrixedit.h index c4da51a..8577aa5 100644 --- a/qad/widgets/mathmatrixedit.h +++ b/qad/widgets/mathmatrixedit.h @@ -4,9 +4,11 @@ #include #include "qad_types.h" + class MatrixEdit; -class MathMatrixEdit: public QWidget { + +class QAD_EXPORT MathMatrixEdit: public QWidget { Q_OBJECT Q_PROPERTY(QVariant value READ value WRITE setValue NOTIFY valueChanged) Q_PROPERTY(bool readOnly READ isReadOnly WRITE setReadOnly) diff --git a/qad/widgets/mathvectoredit.h b/qad/widgets/mathvectoredit.h index fd41066..0fb8ee0 100644 --- a/qad/widgets/mathvectoredit.h +++ b/qad/widgets/mathvectoredit.h @@ -4,9 +4,11 @@ #include #include "qad_types.h" + class MatrixEdit; -class MathVectorEdit: public QWidget { + +class QAD_EXPORT MathVectorEdit: public QWidget { Q_OBJECT Q_PROPERTY(QVariant value READ value WRITE setValue NOTIFY valueChanged) Q_PROPERTY(bool readOnly READ isReadOnly WRITE setReadOnly) diff --git a/qad/widgets/matrixedit.h b/qad/widgets/matrixedit.h index e8c2c8d..0003a0e 100644 --- a/qad/widgets/matrixedit.h +++ b/qad/widgets/matrixedit.h @@ -2,12 +2,15 @@ #define MATRIXEDIT_H #include +#include "qad_export.h" + namespace Ui { class MatrixEdit; } -class MatrixEdit: public QWidget { + +class QAD_EXPORT MatrixEdit: public QWidget { Q_OBJECT public: explicit MatrixEdit(QWidget * parent = 0); diff --git a/qad/widgets/propertystorage_editor.h b/qad/widgets/propertystorage_editor.h index 05fa4cf..fb86b99 100644 --- a/qad/widgets/propertystorage_editor.h +++ b/qad/widgets/propertystorage_editor.h @@ -5,7 +5,7 @@ #include "propertystorage.h" -class PropertyStorageEditor: public QWidget { +class QAD_EXPORT PropertyStorageEditor: public QWidget { Q_OBJECT public: explicit PropertyStorageEditor(QWidget * parent = 0); diff --git a/qad/widgets/qcodeedit.h b/qad/widgets/qcodeedit.h index 1dc844c..49a161b 100644 --- a/qad/widgets/qcodeedit.h +++ b/qad/widgets/qcodeedit.h @@ -7,17 +7,13 @@ #include #include "iconedlabel.h" -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - namespace Ui { class QCodeEdit; } -class QCodeEdit: public QWidget +class QAD_EXPORT QCodeEdit: public QWidget { Q_OBJECT Q_PROPERTY(QString text READ text WRITE setText) @@ -154,10 +150,5 @@ signals: }; -//Q_DECLARE_OPERATORS_FOR_FLAGS(QPIConsole::Formats) - -QT_END_NAMESPACE - -QT_END_HEADER #endif // QCODEEDIT_H diff --git a/qad/widgets/qipedit.h b/qad/widgets/qipedit.h index 4d44aef..75151be 100644 --- a/qad/widgets/qipedit.h +++ b/qad/widgets/qipedit.h @@ -7,8 +7,10 @@ #include #include #include +#include "qad_export.h" -class QIPEdit: public QWidget + +class QAD_EXPORT QIPEdit: public QWidget { Q_OBJECT Q_PROPERTY(QString IP READ IP WRITE setIP) diff --git a/qad/widgets/qpiconfignewdialog.h b/qad/widgets/qpiconfignewdialog.h index ea688fd..237edfe 100644 --- a/qad/widgets/qpiconfignewdialog.h +++ b/qad/widgets/qpiconfignewdialog.h @@ -3,6 +3,7 @@ #include #include +#include "qad_export.h" namespace Ui { @@ -10,7 +11,7 @@ namespace Ui { } -class QPIConfigNewDialog: public QDialog +class QAD_EXPORT QPIConfigNewDialog: public QDialog { Q_OBJECT diff --git a/qad/widgets/qpiconfigvaluewidget.h b/qad/widgets/qpiconfigvaluewidget.h index 4e9614f..6cc5558 100644 --- a/qad/widgets/qpiconfigvaluewidget.h +++ b/qad/widgets/qpiconfigvaluewidget.h @@ -16,7 +16,7 @@ #include -class ConfigValueWidget: public QWidget +class QAD_EXPORT ConfigValueWidget: public QWidget { Q_OBJECT friend class QPIConfigWidget; diff --git a/qad/widgets/qpiconfigwidget.h b/qad/widgets/qpiconfigwidget.h index 130e13a..2ec21d1 100644 --- a/qad/widgets/qpiconfigwidget.h +++ b/qad/widgets/qpiconfigwidget.h @@ -12,7 +12,7 @@ #include -class UComboBox: public QComboBox +class QAD_EXPORT UComboBox: public QComboBox { Q_OBJECT public: @@ -24,7 +24,7 @@ signals: }; -class QPIConfigWidget: public QTreeWidget +class QAD_EXPORT QPIConfigWidget: public QTreeWidget { Q_OBJECT Q_PROPERTY(bool readOnlyName READ readOnlyName WRITE setReadOnlyName) diff --git a/qad/widgets/qpiconsole.h b/qad/widgets/qpiconsole.h index 5e72d33..01f7a60 100644 --- a/qad/widgets/qpiconsole.h +++ b/qad/widgets/qpiconsole.h @@ -7,6 +7,8 @@ #include #include #include +#include "qad_export.h" + typedef long long llong; typedef unsigned char uchar; @@ -16,11 +18,8 @@ typedef unsigned long ulong; typedef unsigned long long ullong; typedef long double ldouble; -QT_BEGIN_HEADER -QT_BEGIN_NAMESPACE - -class QPIConsole: public QTabWidget { +class QAD_EXPORT QPIConsole: public QTabWidget { Q_OBJECT public: QPIConsole(QWidget * parent = 0); @@ -180,8 +179,4 @@ public slots: Q_DECLARE_OPERATORS_FOR_FLAGS(QPIConsole::Formats) -QT_END_NAMESPACE - -QT_END_HEADER - #endif // QPICONSOLE_H diff --git a/qad/widgets/qpointedit.h b/qad/widgets/qpointedit.h index 15119c7..6cf5ca7 100644 --- a/qad/widgets/qpointedit.h +++ b/qad/widgets/qpointedit.h @@ -5,9 +5,10 @@ #include #include #include +#include "qad_export.h" -class QPointEdit: public QWidget +class QAD_EXPORT QPointEdit: public QWidget { Q_OBJECT Q_PROPERTY(QPointF value READ value WRITE setValue) diff --git a/qad/widgets/qrectedit.h b/qad/widgets/qrectedit.h index 7e4064d..8d2193c 100644 --- a/qad/widgets/qrectedit.h +++ b/qad/widgets/qrectedit.h @@ -5,9 +5,10 @@ #include #include #include +#include "qad_export.h" -class QRectEdit: public QWidget +class QAD_EXPORT QRectEdit: public QWidget { Q_OBJECT Q_PROPERTY(QRectF value READ value WRITE setValue) diff --git a/qad/widgets/qvariantedit.h b/qad/widgets/qvariantedit.h index 7954281..c153628 100644 --- a/qad/widgets/qvariantedit.h +++ b/qad/widgets/qvariantedit.h @@ -14,7 +14,7 @@ #include -class StringListEdit: public QWidget +class QAD_EXPORT StringListEdit: public QWidget { Q_OBJECT public: @@ -47,7 +47,7 @@ signals: -class PathEdit: public QWidget +class QAD_EXPORT PathEdit: public QWidget { Q_OBJECT public: @@ -81,7 +81,7 @@ signals: -class QVariantEdit: public QWidget +class QAD_EXPORT QVariantEdit: public QWidget { Q_OBJECT Q_PROPERTY(QVariant value READ value WRITE setValue) diff --git a/qad/widgets/qvariantedit_custom.h b/qad/widgets/qvariantedit_custom.h index c2b1c3b..9b04079 100644 --- a/qad/widgets/qvariantedit_custom.h +++ b/qad/widgets/qvariantedit_custom.h @@ -4,11 +4,13 @@ #include #include #include +#include "qad_export.h" + class QVariantEdit; -class QVariantEditorFactoryBase { +class QAD_EXPORT QVariantEditorFactoryBase { friend class QVariantEdit; public: QVariantEditorFactoryBase() {} @@ -18,7 +20,7 @@ private: }; -class QVariantEditorFactories { +class QAD_EXPORT QVariantEditorFactories { public: static void registerEditorFactory(int meta_id, QVariantEditorFactoryBase * f); static void unregisterEditorFactory(int meta_id); diff --git a/qad/widgets/scroll_spin_box.h b/qad/widgets/scroll_spin_box.h index 16f010c..6269a69 100644 --- a/qad/widgets/scroll_spin_box.h +++ b/qad/widgets/scroll_spin_box.h @@ -1,32 +1,19 @@ -/* - QGLView - Copyright (C) 2019 Ivan Pelipenko peri4ko@yandex.ru - - This program 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. - - This program 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 this program. If not, see . -*/ - #ifndef SCROLL_SPIN_BOX_H #define SCROLL_SPIN_BOX_H #include +#include "qad_export.h" + namespace Ui { class ScrollSpinBox; } + + class EvalSpinBox; -class ScrollSpinBox: public QWidget + +class QAD_EXPORT ScrollSpinBox: public QWidget { Q_OBJECT Q_PROPERTY(double sensivity READ sensivity WRITE setSensivity) diff --git a/qad/widgets/session_manager.h b/qad/widgets/session_manager.h index 4340904..04aaa0d 100644 --- a/qad/widgets/session_manager.h +++ b/qad/widgets/session_manager.h @@ -17,13 +17,14 @@ #include "evalspinbox.h" #include "qpiconfig.h" + /// for all children widgets of "QMainWindow"s and MainWidgets /// check for slots /// * void sessionSave(QByteArray * data); /// * void sessionLoad(QByteArray * data); -class SessionManager: public QObject +class QAD_EXPORT SessionManager: public QObject { Q_OBJECT public: diff --git a/qad/widgets/shortcuts.h b/qad/widgets/shortcuts.h index 1bddb1a..3581244 100644 --- a/qad/widgets/shortcuts.h +++ b/qad/widgets/shortcuts.h @@ -15,11 +15,8 @@ #include #include "clineedit.h" -QT_BEGIN_HEADER -QT_BEGIN_NAMESPACE - -class ShortcutEdit: public CLineEdit +class QAD_EXPORT ShortcutEdit: public CLineEdit { Q_OBJECT friend class Shortcuts; @@ -44,7 +41,7 @@ private: }; -class Shortcuts: public QTreeWidget +class QAD_EXPORT Shortcuts: public QTreeWidget { Q_OBJECT @@ -83,8 +80,4 @@ signals: }; -QT_END_NAMESPACE - -QT_END_HEADER - #endif // SPINSLIDER_H diff --git a/qad/widgets/spinslider.h b/qad/widgets/spinslider.h index ddd567f..c8bedb8 100644 --- a/qad/widgets/spinslider.h +++ b/qad/widgets/spinslider.h @@ -4,12 +4,10 @@ #include #include #include +#include "qad_export.h" -QT_BEGIN_HEADER -QT_BEGIN_NAMESPACE - -class SpinSlider: public QWidget +class QAD_EXPORT SpinSlider: public QWidget { Q_OBJECT Q_ENUMS(Direction) @@ -98,8 +96,5 @@ signals: }; -QT_END_NAMESPACE - -QT_END_HEADER #endif // SPINSLIDER_H