Add Indicator for PositionLocked state

This commit is contained in:
wandererfan
2019-03-28 11:15:51 -04:00
committed by wmayer
parent 3f88badb6d
commit 3a37fed62a
7 changed files with 42 additions and 1 deletions

View File

@@ -60,6 +60,7 @@
#include "QGCustomText.h"
#include "QGICaption.h"
#include "QGCustomClip.h"
#include "QGCustomImage.h"
#include "QGIViewClip.h"
#include "ViewProviderDrawingView.h"
#include "MDIViewPage.h"
@@ -106,6 +107,13 @@ QGIView::QGIView()
addToGroup(m_border);
m_caption = new QGICaption();
addToGroup(m_caption);
m_lock = new QGCustomImage();
m_lock->setParentItem(m_label);
m_lock->load(QString::fromUtf8(":/icons/techdraw-lock.png"));
QSize sizeLock = m_lock->imageSize();
m_lockWidth = (double) sizeLock.width();
m_lockHeight = (double) sizeLock.height();
m_lock->hide();
isVisible(true);
}
@@ -393,12 +401,18 @@ void QGIView::drawCaption()
void QGIView::drawBorder()
{
auto feat = getViewObject();
if (feat == nullptr) {
return;
}
drawCaption();
//show neither
auto vp = static_cast<ViewProviderDrawingView*>(getViewProvider(getViewObject()));
if (!borderVisible && !vp->KeepLabel.getValue()) {
m_label->hide();
m_border->hide();
m_lock->hide();
return;
}
@@ -406,6 +420,7 @@ void QGIView::drawBorder()
//double margin = 2.0;
m_label->hide();
m_border->hide();
m_lock->hide();
m_label->setDefaultTextColor(m_colCurrent);
m_font.setFamily(getPrefFont());
@@ -439,6 +454,17 @@ void QGIView::drawBorder()
displayArea.top(),
frameWidth,
frameHeight);
double lockX = labelArea.left();
double lockY = labelArea.bottom() - (2 * m_lockHeight);
if (feat->isLocked()) {
m_lock->setZValue(ZVALUE::LOCK);
m_lock->setPos(lockX,lockY);
m_lock->show();
} else {
m_lock->hide();
}
prepareGeometryChange();
m_border->setRect(frameArea.adjusted(-2,-2,2,2));
m_border->setPos(0.,0.);