diff --git a/kx_utils/kx_pult.cpp b/kx_utils/kx_pult.cpp index 9e77a09..246b10e 100644 --- a/kx_utils/kx_pult.cpp +++ b/kx_utils/kx_pult.cpp @@ -218,13 +218,13 @@ void KX_Pult::setControlsEnable(bool enable) { void KX_Pult::setX(const KX_X_Data & data) { if (!show_x) return; - ui->graphic->lock(); + //ui->graphic->lock(); for (int i = 0; i < KX_X_PACKET_NUM; ++i) { if (!isNormalDouble(data.x_data[i])) continue; ui->graphic->addPoint(data.x_data[i], i, false); values[i]->setText(QString("(%1): %2").arg(data.x_num[i]).arg(data.x_data[i])); } - ui->graphic->unlock(); + //ui->graphic->unlock(); if (!isPause) { need_update = true; } diff --git a/make_libs.bat b/make_libs.bat index a4047c8..3880234 100644 --- a/make_libs.bat +++ b/make_libs.bat @@ -3,4 +3,4 @@ set ARCH=%~1 set PATH=%SDK_MINGW_DIR%%ARCH%\bin;%SDK_QT4_DIR%%ARCH%\bin;%SDK_CMAKE_DIR%\bin if defined SDK_QT5_DIR set Qt5_DIR=%SDK_QT5_DIR%%ARCH% mkdir ..\libs_build_win%ARCH% -cd ../libs_build_win%ARCH% && cmake_mgw -Wno-dev ../libs && make install -j8 && cd ../libs && pause +cd ../libs_build_win%ARCH% && cmake_mgw -Wno-dev -DQGLVIEW=1 ../libs && make install -j8 && cd ../libs && pause diff --git a/qad/application/ribbon.cpp b/qad/application/ribbon.cpp index 05990d7..863b4dc 100644 --- a/qad/application/ribbon.cpp +++ b/qad/application/ribbon.cpp @@ -1,4 +1,5 @@ #include "ribbon.h" +#include "qad_types.h" #include @@ -13,6 +14,8 @@ Ribbon::Ribbon(QMainWindow * parent_): QToolBar() { if (parent_) parent_->installEventFilter(this); init(); + setTabIconSize(preferredIconSize(2)); + setIconSize(preferredIconSize(3)); } diff --git a/qad/blockview/blockbusitem.cpp b/qad/blockview/blockbusitem.cpp index 0091bb1..29f149e 100644 --- a/qad/blockview/blockbusitem.cpp +++ b/qad/blockview/blockbusitem.cpp @@ -730,6 +730,6 @@ void BlockBusItem::paint(QPainter * p, const QStyleOptionGraphicsItem * o, QWidg QRectF BlockBusItem::boundingRect() const { QPolygonF p(pol); - p << new_end; + if (new_segment) p << new_end; return enlargedRect(p.boundingRect(), 0, 0, 10.f); } diff --git a/qad/blockview/blockview.cpp b/qad/blockview/blockview.cpp index 22e6a6f..5c03477 100644 --- a/qad/blockview/blockview.cpp +++ b/qad/blockview/blockview.cpp @@ -1000,6 +1000,25 @@ void BlockView::fitInView(const QGraphicsItem * item, Qt::AspectRatioMode aspect } +QRectF BlockView::itemsBoundingRect() const { + QList gi = scene_->items(); + if (gi.isEmpty()) return QRectF(); + bool f = true; + QRectF ret; + foreach (QGraphicsItem * i, gi) + if (i->isVisible() && (i != &tmp_bus)) { + if ((i->data(1007) != "item_selection") && !i->data(1008).toBool()) { + QRectF br = i->mapRectToScene(i->boundingRect()); + //qDebug() << i << br; + if (f) ret = br; + else ret |= br; + f = false; + } + } + return ret; +} + + void BlockView::restoreSelState() { foreach (QGraphicsItem * i, sel_items) { i->setPos(i->data(1001).toPointF()); diff --git a/qad/blockview/blockview.h b/qad/blockview/blockview.h index 4cf76d6..fe05532 100644 --- a/qad/blockview/blockview.h +++ b/qad/blockview/blockview.h @@ -82,6 +82,8 @@ public: void fitInView(qreal x, qreal y, qreal w, qreal h, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio); void fitInView(const QGraphicsItem * item, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio); + QRectF itemsBoundingRect() const; + protected: void _init(); void _updateBack(); diff --git a/qad/utils/qad_types.cpp b/qad/utils/qad_types.cpp index e925f31..c09805e 100644 --- a/qad/utils/qad_types.cpp +++ b/qad/utils/qad_types.cpp @@ -125,6 +125,17 @@ QString uniqueName(QString n, const QStringList & names) { } -int lineThickness() { - return qMax(qRound(QApplication::fontMetrics().size(0, "0").height() / 15.), 1); +int fontHeight() { + return QApplication::fontMetrics().size(0, "0").height(); +} + + +int lineThickness() { + return qMax(qRound(fontHeight() / 15.), 1); +} + + +QSize preferredIconSize(float x) { + int s = qMax(8, qRound(fontHeight() * x)); + return QSize(s, s); } diff --git a/qad/utils/qad_types.h b/qad/utils/qad_types.h index 7186ff7..b909b07 100644 --- a/qad/utils/qad_types.h +++ b/qad/utils/qad_types.h @@ -117,7 +117,9 @@ inline QRectF enlargedRect(const QRectF & r, qreal dx, qreal dy, qreal v) { QVariant::Type typeFromLetter(const QString & l); QString uniqueName(QString n, const QStringList & names); +int fontHeight(); int lineThickness(); +QSize preferredIconSize(float x = 1.f); #endif // QAD_TYPES_H