add Map inverse geocoding

add minimum/maximum to ScrollSpinBox
This commit is contained in:
2023-02-05 21:24:30 +03:00
parent 29aa0bda29
commit 3c29b7b566
9 changed files with 238 additions and 5 deletions

View File

@@ -37,6 +37,8 @@ ScrollSpinBox::ScrollSpinBox(QWidget * parent): QWidget(parent) {
connect(ui->spin, SIGNAL(valueChanged(double)), this, SIGNAL(valueChanged(double)));
last_value = 0.;
sensivity_ = 0.2;
m_maximum = 2147483647;
m_minimum = -m_maximum;
scroll_scale = sensivity_ / 10;
canceled = false;
}
@@ -108,12 +110,24 @@ void ScrollSpinBox::mouseMove(QMouseEvent * e) {
double dv = (down_pos.y() - e->pos().y()) * scroll_scale;
if (dv != 0.) {
QCursor::setPos(ui->handle->mapToGlobal(down_pos));
ui->spin->setValue(ui->spin->value() + last_value * dv);
setValue(ui->spin->value() + last_value * dv);
}
}
}
void ScrollSpinBox::setValue(double v) {
ui->spin->setValue(v);
ui->spin->setValue(qBound(m_minimum, v, m_maximum));
}
void ScrollSpinBox::setMinimum(int minimum) {
m_minimum = minimum;
setValue(value());
}
void ScrollSpinBox::setMaximum(int maximum) {
m_maximum = maximum;
setValue(value());
}

View File

@@ -37,6 +37,8 @@ class QAD_WIDGETS_EXPORT ScrollSpinBox: public QWidget {
Q_OBJECT
Q_PROPERTY(double sensivity READ sensivity WRITE setSensivity)
Q_PROPERTY(double value READ value WRITE setValue)
Q_PROPERTY(int minimum READ minimum WRITE setMinimum)
Q_PROPERTY(int maximum READ maximum WRITE setMaximum)
public:
explicit ScrollSpinBox(QWidget * parent = 0);
@@ -44,6 +46,8 @@ public:
EvalSpinBox * spin();
double value() const;
double sensivity() const { return sensivity_; }
int minimum() const { return m_minimum; }
int maximum() const { return m_maximum; }
protected:
void changeEvent(QEvent * e);
@@ -57,11 +61,14 @@ protected:
QPoint down_pos;
QString last_text;
double last_value, scroll_scale, sensivity_;
double m_minimum, m_maximum;
bool canceled;
public slots:
void setSensivity(double s) { sensivity_ = s; }
void setValue(double v);
void setMinimum(int minimum);
void setMaximum(int maximum);
signals:
void valueChanged(double);