Add Indicator for PositionLocked state
This commit is contained in:
@@ -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.);
|
||||
|
||||
Reference in New Issue
Block a user