Fixing font problem on Windows.
Calc start label scale based on start font size and minimal visible font size. --HG-- branch : develop
This commit is contained in:
parent
72dde072af
commit
104a491a67
|
@ -36,6 +36,7 @@
|
|||
static const qreal defPointRadiusPixel = (2./*mm*/ / 25.4) * PrintDPI;
|
||||
const qreal widthMainLine = (1.2/*mm*/ / 25.4) * PrintDPI;
|
||||
const qreal widthHairLine = widthMainLine/3.0;
|
||||
const qreal minVisibleFontSize = 5;
|
||||
|
||||
qreal SceneScale(QGraphicsScene *scene)
|
||||
{
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
|
||||
extern const qreal widthMainLine;
|
||||
extern const qreal widthHairLine;
|
||||
extern const qreal minVisibleFontSize;
|
||||
|
||||
class QGraphicsScene;
|
||||
class QGraphicsItem;
|
||||
|
|
|
@ -54,19 +54,12 @@
|
|||
* @param parent parent object.
|
||||
*/
|
||||
VGraphicsSimpleTextItem::VGraphicsSimpleTextItem(QGraphicsItem * parent)
|
||||
:QGraphicsSimpleTextItem(parent), m_fontSize(0), selectionType(SelectionType::ByMouseRelease),
|
||||
m_oldScale(VMainGraphicsView::MinScale())
|
||||
: QGraphicsSimpleTextItem(parent),
|
||||
m_fontSize(0),
|
||||
selectionType(SelectionType::ByMouseRelease),
|
||||
m_oldScale(1)
|
||||
{
|
||||
this->setFlag(QGraphicsItem::ItemIsMovable, true);
|
||||
this->setFlag(QGraphicsItem::ItemIsSelectable, true);
|
||||
this->setFlag(QGraphicsItem::ItemSendsGeometryChanges, true);
|
||||
this->setFlag(QGraphicsItem::ItemIsFocusable, true);// For keyboard input focus
|
||||
this->setAcceptHoverEvents(true);
|
||||
QFont font = this->font();
|
||||
font.setPointSize(font.pointSize()+20);
|
||||
m_fontSize = font.pointSize();
|
||||
this->setFont(font);
|
||||
setScale(m_oldScale);
|
||||
Init();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
|
@ -76,14 +69,12 @@ VGraphicsSimpleTextItem::VGraphicsSimpleTextItem(QGraphicsItem * parent)
|
|||
* @param parent parent object.
|
||||
*/
|
||||
VGraphicsSimpleTextItem::VGraphicsSimpleTextItem( const QString & text, QGraphicsItem * parent )
|
||||
:QGraphicsSimpleTextItem(text, parent), m_fontSize(0), selectionType(SelectionType::ByMouseRelease),
|
||||
m_oldScale(VMainGraphicsView::MinScale())
|
||||
: QGraphicsSimpleTextItem(text, parent),
|
||||
m_fontSize(0),
|
||||
selectionType(SelectionType::ByMouseRelease),
|
||||
m_oldScale(1)
|
||||
{
|
||||
this->setFlag(QGraphicsItem::ItemIsMovable, true);
|
||||
this->setFlag(QGraphicsItem::ItemIsSelectable, true);
|
||||
this->setFlag(QGraphicsItem::ItemSendsGeometryChanges, true);
|
||||
this->setAcceptHoverEvents(true);
|
||||
setScale(m_oldScale);
|
||||
Init();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
|
@ -319,3 +310,19 @@ void VGraphicsSimpleTextItem::keyReleaseEvent(QKeyEvent *event)
|
|||
}
|
||||
QGraphicsSimpleTextItem::keyReleaseEvent ( event );
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
void VGraphicsSimpleTextItem::Init()
|
||||
{
|
||||
this->setFlag(QGraphicsItem::ItemIsMovable, true);
|
||||
this->setFlag(QGraphicsItem::ItemIsSelectable, true);
|
||||
this->setFlag(QGraphicsItem::ItemSendsGeometryChanges, true);
|
||||
this->setFlag(QGraphicsItem::ItemIsFocusable, true);// For keyboard input focus
|
||||
this->setAcceptHoverEvents(true);
|
||||
QFont font = this->font();
|
||||
font.setPointSize(font.pointSize()+20);
|
||||
m_fontSize = font.pointSize();
|
||||
this->setFont(font);
|
||||
m_oldScale = minVisibleFontSize / m_fontSize;
|
||||
setScale(m_oldScale);
|
||||
}
|
||||
|
|
|
@ -88,6 +88,8 @@ private:
|
|||
qint32 m_fontSize;
|
||||
SelectionType selectionType;
|
||||
qreal m_oldScale;
|
||||
|
||||
void Init();
|
||||
};
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
|
|
|
@ -63,7 +63,7 @@ void VScenePoint::paint(QPainter *painter, const QStyleOptionGraphicsItem *optio
|
|||
{
|
||||
const qreal scale = SceneScale(scene());
|
||||
|
||||
if (m_namePoint->BaseFontSize()*scale < 5)
|
||||
if (m_namePoint->BaseFontSize()*scale < minVisibleFontSize)
|
||||
{
|
||||
m_namePoint->setVisible(false);
|
||||
m_lineName->setVisible(false);
|
||||
|
|
Loading…
Reference in New Issue
Block a user