Compare commits
3 Commits
8df58026c4
...
b8e8a1300e
| Author | SHA1 | Date | |
|---|---|---|---|
| b8e8a1300e | |||
| 26396a4f72 | |||
| 2cb43ab411 |
@@ -4,7 +4,9 @@
|
|||||||
#include "osm_math_p.h"
|
#include "osm_math_p.h"
|
||||||
|
|
||||||
|
|
||||||
MapItemBase::MapItemBase() {}
|
MapItemBase::MapItemBase() {
|
||||||
|
m_hints = QPainter::Antialiasing | QPainter::SmoothPixmapTransform;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
MapItemBase::~MapItemBase() {
|
MapItemBase::~MapItemBase() {
|
||||||
@@ -19,6 +21,18 @@ void MapItemBase::setInteracive(bool newInteracive) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void MapItemBase::setRenderHints(QPainter::RenderHints h) {
|
||||||
|
m_hints = h;
|
||||||
|
updateParent();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void MapItemBase::setRenderHint(QPainter::RenderHint h, bool on) {
|
||||||
|
m_hints.setFlag(h, on);
|
||||||
|
updateParent();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void MapItemBase::setVisible(bool newVisible) {
|
void MapItemBase::setVisible(bool newVisible) {
|
||||||
m_visible = newVisible;
|
m_visible = newVisible;
|
||||||
updateParent();
|
updateParent();
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
QAD - Qt ADvanced
|
QAD - Qt ADvanced
|
||||||
|
|
||||||
Ivan Pelipenko peri4ko@yandex.ru
|
Ivan Pelipenko peri4ko@yandex.ru
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
@@ -38,10 +38,13 @@ public:
|
|||||||
explicit MapItemBase();
|
explicit MapItemBase();
|
||||||
virtual ~MapItemBase();
|
virtual ~MapItemBase();
|
||||||
|
|
||||||
|
|
||||||
bool isInteracive() const { return m_interacive; }
|
bool isInteracive() const { return m_interacive; }
|
||||||
void setInteracive(bool newInteracive);
|
void setInteracive(bool newInteracive);
|
||||||
|
|
||||||
|
QPainter::RenderHints renderHints() const { return m_hints; }
|
||||||
|
void setRenderHints(QPainter::RenderHints h);
|
||||||
|
void setRenderHint(QPainter::RenderHint h, bool on = true);
|
||||||
|
|
||||||
bool isVisible() const { return m_visible; }
|
bool isVisible() const { return m_visible; }
|
||||||
void setVisible(bool newVisible);
|
void setVisible(bool newVisible);
|
||||||
bool isHidden() const { return !isVisible(); }
|
bool isHidden() const { return !isVisible(); }
|
||||||
@@ -97,6 +100,7 @@ private:
|
|||||||
QPointF m_position, m_scale = {1., 1.}, m_offset;
|
QPointF m_position, m_scale = {1., 1.}, m_offset;
|
||||||
QRectF m_bounding;
|
QRectF m_bounding;
|
||||||
QCursor m_cursor;
|
QCursor m_cursor;
|
||||||
|
QPainter::RenderHints m_hints;
|
||||||
QMap<int, QVariant> data_;
|
QMap<int, QVariant> data_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -320,8 +320,7 @@ void MapView::drawBackground() {
|
|||||||
|
|
||||||
void MapView::drawItems(QPainter & p) {
|
void MapView::drawItems(QPainter & p) {
|
||||||
auto src_tr = p.transform();
|
auto src_tr = p.transform();
|
||||||
p.setRenderHint(QPainter::Antialiasing);
|
QPainter::RenderHints cur_hints;
|
||||||
p.setRenderHint(QPainter::SmoothPixmapTransform);
|
|
||||||
QPoint mouse = mapFromGlobal(QCursor::pos());
|
QPoint mouse = mapFromGlobal(QCursor::pos());
|
||||||
MapItemBase * hover = nullptr;
|
MapItemBase * hover = nullptr;
|
||||||
for (auto * i: items_) {
|
for (auto * i: items_) {
|
||||||
@@ -332,6 +331,10 @@ void MapView::drawItems(QPainter & p) {
|
|||||||
p.translate(i->m_offset.x(), -i->m_offset.y());
|
p.translate(i->m_offset.x(), -i->m_offset.y());
|
||||||
p.rotate(i->getRotation());
|
p.rotate(i->getRotation());
|
||||||
if (!i->ignore_scale) p.scale(i->getScale().x(), i->getScale().y());
|
if (!i->ignore_scale) p.scale(i->getScale().x(), i->getScale().y());
|
||||||
|
if (cur_hints != i->renderHints()) {
|
||||||
|
cur_hints = i->renderHints();
|
||||||
|
p.setRenderHints(cur_hints);
|
||||||
|
}
|
||||||
i->draw(&p);
|
i->draw(&p);
|
||||||
QTransform mtr;
|
QTransform mtr;
|
||||||
mtr.rotate(-i->getRotation());
|
mtr.rotate(-i->getRotation());
|
||||||
|
|||||||
@@ -887,6 +887,32 @@ inline PICout operator<<(PICout s, const QColor & v) {
|
|||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline PICout operator<<(PICout s, const QVector2D & v) {
|
||||||
|
s << PIMathVectorT2d({v[0], v[1]});
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline PICout operator<<(PICout s, const QVector3D & v) {
|
||||||
|
s << PIMathVectorT3d({v[0], v[1], v[2]});
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline PICout operator<<(PICout s, const QVector4D & v) {
|
||||||
|
s << PIMathVectorT4d({v[0], v[1], v[2], v[3]});
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<int N, int M, typename T>
|
||||||
|
inline PICout operator<<(PICout s, const QGenericMatrix<N, M, T> & v) {
|
||||||
|
s << Q2PIMathMatrixT(v);
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline PICout operator<<(PICout s, const QMatrix4x4 & v) {
|
||||||
|
s << Q2PIMathMatrixT(v);
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef PIQT_HAS_GEOPOSITION
|
#ifdef PIQT_HAS_GEOPOSITION
|
||||||
inline PICout operator<<(PICout s, const QGeoCoordinate & v) {
|
inline PICout operator<<(PICout s, const QGeoCoordinate & v) {
|
||||||
s << Q2PIGeoPosition(v);
|
s << Q2PIGeoPosition(v);
|
||||||
|
|||||||
@@ -97,6 +97,8 @@ void SessionManager::save() {
|
|||||||
sr.setValue(buttons[i].first, buttons[i].second->isChecked(), false);
|
sr.setValue(buttons[i].first, buttons[i].second->isChecked(), false);
|
||||||
for (int i = 0; i < stacks.size(); ++i)
|
for (int i = 0; i < stacks.size(); ++i)
|
||||||
sr.setValue(stacks[i].first, stacks[i].second->currentIndex(), false);
|
sr.setValue(stacks[i].first, stacks[i].second->currentIndex(), false);
|
||||||
|
for (int i = 0; i < sliders.size(); ++i)
|
||||||
|
sr.setValue(sliders[i].first, sliders[i].second->value(), false);
|
||||||
for (int i = 0; i < actions.size(); ++i)
|
for (int i = 0; i < actions.size(); ++i)
|
||||||
sr.setValue(actions[i].first, actions[i].second->isChecked(), false);
|
sr.setValue(actions[i].first, actions[i].second->isChecked(), false);
|
||||||
for (int i = 0; i < stringlists.size(); ++i)
|
for (int i = 0; i < stringlists.size(); ++i)
|
||||||
@@ -221,6 +223,8 @@ void SessionManager::load(bool onlyMainwindow) {
|
|||||||
for (int i = 0; i < stacks.size(); ++i)
|
for (int i = 0; i < stacks.size(); ++i)
|
||||||
stacks[i].second->setCurrentIndex(
|
stacks[i].second->setCurrentIndex(
|
||||||
qMin<int>(sr.getValue(stacks[i].first, stacks[i].second->currentIndex()).toInt(), stacks[i].second->count()));
|
qMin<int>(sr.getValue(stacks[i].first, stacks[i].second->currentIndex()).toInt(), stacks[i].second->count()));
|
||||||
|
for (int i = 0; i < sliders.size(); ++i)
|
||||||
|
sliders[i].second->setValue(sr.getValue(sliders[i].first, sliders[i].second->value()).toInt());
|
||||||
for (int i = 0; i < actions.size(); ++i)
|
for (int i = 0; i < actions.size(); ++i)
|
||||||
actions[i].second->setChecked(sr.getValue(actions[i].first, actions[i].second->isChecked()).toBool());
|
actions[i].second->setChecked(sr.getValue(actions[i].first, actions[i].second->isChecked()).toBool());
|
||||||
for (int i = 0; i < stringlists.size(); ++i)
|
for (int i = 0; i < stringlists.size(); ++i)
|
||||||
@@ -267,6 +271,7 @@ void SessionManager::clear(bool with_filename) {
|
|||||||
tabs.clear();
|
tabs.clear();
|
||||||
buttons.clear();
|
buttons.clear();
|
||||||
stacks.clear();
|
stacks.clear();
|
||||||
|
sliders.clear();
|
||||||
actions.clear();
|
actions.clear();
|
||||||
stringlists.clear();
|
stringlists.clear();
|
||||||
strings.clear();
|
strings.clear();
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ public:
|
|||||||
void addEntry(QAction * e) { addEntry(e->objectName(), e); }
|
void addEntry(QAction * e) { addEntry(e->objectName(), e); }
|
||||||
void addEntry(QAbstractButton * e) { addEntry(e->objectName(), e); }
|
void addEntry(QAbstractButton * e) { addEntry(e->objectName(), e); }
|
||||||
void addEntry(QStackedWidget * e) { addEntry(e->objectName(), e); }
|
void addEntry(QStackedWidget * e) { addEntry(e->objectName(), e); }
|
||||||
|
void addEntry(QSlider * e) { addEntry(e->objectName(), e); }
|
||||||
void addMainWidget(QWidget * e) { addMainWidget(e->objectName(), e); }
|
void addMainWidget(QWidget * e) { addMainWidget(e->objectName(), e); }
|
||||||
void removeMainWidget(QWidget * e);
|
void removeMainWidget(QWidget * e);
|
||||||
|
|
||||||
@@ -81,6 +82,7 @@ public:
|
|||||||
void addEntry(const QString & name, QGroupBox * e) { groups.push_back(QPair<QString, QGroupBox *>(name, e)); }
|
void addEntry(const QString & name, QGroupBox * e) { groups.push_back(QPair<QString, QGroupBox *>(name, e)); }
|
||||||
void addEntry(const QString & name, QAbstractButton * e) { buttons.push_back(QPair<QString, QAbstractButton *>(name, e)); }
|
void addEntry(const QString & name, QAbstractButton * e) { buttons.push_back(QPair<QString, QAbstractButton *>(name, e)); }
|
||||||
void addEntry(const QString & name, QStackedWidget * e) { stacks.push_back(QPair<QString, QStackedWidget *>(name, e)); }
|
void addEntry(const QString & name, QStackedWidget * e) { stacks.push_back(QPair<QString, QStackedWidget *>(name, e)); }
|
||||||
|
void addEntry(const QString & name, QSlider * e) { sliders.push_back(QPair<QString, QSlider *>(name, e)); }
|
||||||
void addEntry(const QString & name, QAction * e) { actions.push_back(QPair<QString, QAction *>(name, e)); }
|
void addEntry(const QString & name, QAction * e) { actions.push_back(QPair<QString, QAction *>(name, e)); }
|
||||||
void addEntry(const QString & name, QStringList * e) { stringlists.push_back(QPair<QString, QStringList *>(name, e)); }
|
void addEntry(const QString & name, QStringList * e) { stringlists.push_back(QPair<QString, QStringList *>(name, e)); }
|
||||||
void addEntry(const QString & name, QString * e) { strings.push_back(QPair<QString, QString *>(name, e)); }
|
void addEntry(const QString & name, QString * e) { strings.push_back(QPair<QString, QString *>(name, e)); }
|
||||||
@@ -106,6 +108,7 @@ private:
|
|||||||
QVector<QPair<QString, QGroupBox *>> groups;
|
QVector<QPair<QString, QGroupBox *>> groups;
|
||||||
QVector<QPair<QString, QAbstractButton *>> buttons;
|
QVector<QPair<QString, QAbstractButton *>> buttons;
|
||||||
QVector<QPair<QString, QStackedWidget *>> stacks;
|
QVector<QPair<QString, QStackedWidget *>> stacks;
|
||||||
|
QVector<QPair<QString, QSlider *>> sliders;
|
||||||
QVector<QPair<QString, QAction *>> actions;
|
QVector<QPair<QString, QAction *>> actions;
|
||||||
QVector<QPair<QString, QStringList *>> stringlists;
|
QVector<QPair<QString, QStringList *>> stringlists;
|
||||||
QVector<QPair<QString, QString *>> strings;
|
QVector<QPair<QString, QString *>> strings;
|
||||||
|
|||||||
Reference in New Issue
Block a user