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

This commit is contained in:
2017-11-09 08:20:33 +00:00
parent f03264d7fb
commit bd91c2e0b7
8 changed files with 43 additions and 6 deletions

View File

@@ -1,4 +1,5 @@
#include "ribbon.h"
#include "qad_types.h"
#include <QScrollBar>
@@ -13,6 +14,8 @@ Ribbon::Ribbon(QMainWindow * parent_): QToolBar() {
if (parent_)
parent_->installEventFilter(this);
init();
setTabIconSize(preferredIconSize(2));
setIconSize(preferredIconSize(3));
}

View File

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

View File

@@ -1000,6 +1000,25 @@ void BlockView::fitInView(const QGraphicsItem * item, Qt::AspectRatioMode aspect
}
QRectF BlockView::itemsBoundingRect() const {
QList<QGraphicsItem*> 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());

View File

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

View File

@@ -125,6 +125,17 @@ QString uniqueName(QString n, const QStringList & names) {
}
int lineThickness() {
return qMax<int>(qRound(QApplication::fontMetrics().size(0, "0").height() / 15.), 1);
int fontHeight() {
return QApplication::fontMetrics().size(0, "0").height();
}
int lineThickness() {
return qMax<int>(qRound(fontHeight() / 15.), 1);
}
QSize preferredIconSize(float x) {
int s = qMax<int>(8, qRound(fontHeight() * x));
return QSize(s, s);
}

View File

@@ -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