From bd91c2e0b7b152028ab3c07b30becb7ef687eede Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D0=B5=D0=BB=D0=B8=D0=BF=D0=B5=D0=BD=D0=BA=D0=BE=20?= =?UTF-8?q?=D0=98=D0=B2=D0=B0=D0=BD?= Date: Thu, 9 Nov 2017 08:20:33 +0000 Subject: [PATCH] git-svn-id: svn://db.shs.com.ru/libs@311 a8b55f48-bf90-11e4-a774-851b48703e85 --- kx_utils/kx_pult.cpp | 4 ++-- make_libs.bat | 2 +- qad/application/ribbon.cpp | 3 +++ qad/blockview/blockbusitem.cpp | 2 +- qad/blockview/blockview.cpp | 19 +++++++++++++++++++ qad/blockview/blockview.h | 2 ++ qad/utils/qad_types.cpp | 15 +++++++++++++-- qad/utils/qad_types.h | 2 ++ 8 files changed, 43 insertions(+), 6 deletions(-) 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