diff --git a/qad/application/edockwidget.cpp b/qad/application/edockwidget.cpp index ed01283..cd99ee2 100644 --- a/qad/application/edockwidget.cpp +++ b/qad/application/edockwidget.cpp @@ -31,7 +31,7 @@ void EDockWidget::setWindowIcon(const QIcon & icon) { bool EDockWidget::event(QEvent * e) { if (e->type() == QEvent::FontChange || e->type() == QEvent::Polish) { - lbl_icon->setFixedSize(preferredIconSize(1.5, this)); + updateStyle(); } return QDockWidget::event(e); } @@ -54,7 +54,6 @@ void EDockWidget::init() { #endif*/ //qDebug() << windowTitle() << wi.pixmap(QSize(256,256)).size(); lbl_icon->setScaledContents(true); - lbl_icon->setFixedSize(preferredIconSize(1.5)); } lbl_icon->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); //#endif @@ -62,21 +61,11 @@ void EDockWidget::init() { lbl_title->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); btn_dock = new QToolButton(); //btn_dock->setIconSize(QSize(16, 16)); - int btn_wh = style()->pixelMetric(QStyle::PM_SmallIconSize); - QSize icon_size(btn_wh, btn_wh); - btn_wh += 2 * style()->pixelMetric(QStyle::PM_DockWidgetTitleBarButtonMargin, 0, this); - QSize btn_size(btn_wh, btn_wh); - btn_dock->setIcon(style()->standardIcon(QStyle::SP_TitleBarNormalButton)); - btn_dock->setIconSize(icon_size); - btn_dock->setFixedSize(btn_size); btn_dock->setAutoRaise(true); btn_dock->setFocusPolicy(Qt::NoFocus); btn_dock->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); btn_hide = new QToolButton(); //btn_hide->setIconSize(QSize(16, 16)); - btn_hide->setIcon(style()->standardIcon(QStyle::SP_DockWidgetCloseButton)); - btn_hide->setIconSize(icon_size); - btn_hide->setFixedSize(btn_size); btn_hide->setAutoRaise(true); btn_hide->setFocusPolicy(Qt::NoFocus); btn_hide->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); @@ -87,5 +76,21 @@ void EDockWidget::init() { lay->addWidget(btn_dock); lay->addWidget(btn_hide); header->setLayout(lay); + updateStyle(); setTitleBarWidget(header); } + + +void EDockWidget::updateStyle() { + QSize icon_size = preferredIconSize(0.75, this); + int bm = 2 * style()->pixelMetric(QStyle::PM_DockWidgetTitleBarButtonMargin, 0, this); + QSize btn_size = icon_size; + btn_size += QSize(bm, bm); + btn_dock->setIcon(style()->standardIcon(QStyle::SP_TitleBarNormalButton)); + btn_dock->setIconSize(icon_size); + btn_dock->setFixedSize(btn_size); + btn_hide->setIcon(style()->standardIcon(QStyle::SP_TitleBarCloseButton)); + btn_hide->setIconSize(icon_size); + btn_hide->setFixedSize(btn_size); + lbl_icon->setFixedSize(preferredIconSize(1.5, this)); +} diff --git a/qad/application/edockwidget.h b/qad/application/edockwidget.h index c7ac5dd..e5a3a15 100644 --- a/qad/application/edockwidget.h +++ b/qad/application/edockwidget.h @@ -25,6 +25,7 @@ public: private: bool event(QEvent * e); void init(); + void updateStyle(); QFrame * header; QLabel * lbl_title, * lbl_icon; diff --git a/qad/blockview/blockview.cpp b/qad/blockview/blockview.cpp index 85200c1..2b24556 100644 --- a/qad/blockview/blockview.cpp +++ b/qad/blockview/blockview.cpp @@ -187,13 +187,15 @@ bool BlockView::eventFilter(QObject * o, QEvent * e) { mil = scene_->items(scene_point); foreach (QGraphicsItem * i, mil) { if (i->data(1006) == "item") { - emit blockDoubleClicked((BlockItem * )i); - break; + //emit blockDoubleClicked((BlockItem * )i); + QMetaObject::invokeMethod(this, "blockDoubleClicked", Qt::QueuedConnection, Q_ARG(BlockItem * , (BlockItem*)i)); + return true; } if (i->data(1005) == "connection") { if (qgraphicsitem_cast(i)->isBusSelected()) { - emit busDoubleClicked(qgraphicsitem_cast(i)); - break; + //emit busDoubleClicked(qgraphicsitem_cast(i)); + QMetaObject::invokeMethod(this, "busDoubleClicked", Qt::QueuedConnection, Q_ARG(BlockBusItem * , (BlockBusItem*)i)); + return true; } } }