git-svn-id: svn://db.shs.com.ru/libs@466 a8b55f48-bf90-11e4-a774-851b48703e85

This commit is contained in:
2018-12-10 14:20:15 +00:00
parent eac8babcf6
commit 6d3dab9324
3 changed files with 24 additions and 16 deletions

View File

@@ -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));
}

View File

@@ -25,6 +25,7 @@ public:
private:
bool event(QEvent * e);
void init();
void updateStyle();
QFrame * header;
QLabel * lbl_title, * lbl_icon;

View File

@@ -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<BlockBusItem*>(i)->isBusSelected()) {
emit busDoubleClicked(qgraphicsitem_cast<BlockBusItem*>(i));
break;
//emit busDoubleClicked(qgraphicsitem_cast<BlockBusItem*>(i));
QMetaObject::invokeMethod(this, "busDoubleClicked", Qt::QueuedConnection, Q_ARG(BlockBusItem * , (BlockBusItem*)i));
return true;
}
}
}