Commit c9da580c984ae46c8581cd6fae1bdc456a1b550f
Committed by
David Gräff
1 parent
9676c169
Fix settings loader, change LevelSlider needle shape
Showing
6 changed files
with
37 additions
and
34 deletions
openhantek/src/dsowidget.cpp
| @@ -217,6 +217,7 @@ DsoWidget::DsoWidget(DsoSettings *settings, QWidget *parent, Qt::WindowFlags fla | @@ -217,6 +217,7 @@ DsoWidget::DsoWidget(DsoSettings *settings, QWidget *parent, Qt::WindowFlags fla | ||
| 217 | mainScope->update(); | 217 | mainScope->update(); |
| 218 | zoomScope->update(); | 218 | zoomScope->update(); |
| 219 | }); | 219 | }); |
| 220 | + updateTriggerSource(); | ||
| 220 | } | 221 | } |
| 221 | 222 | ||
| 222 | void DsoWidget::showNewData(std::unique_ptr<DataAnalyzerResult> data) { | 223 | void DsoWidget::showNewData(std::unique_ptr<DataAnalyzerResult> data) { |
openhantek/src/hantek/hantekdsocontrol.cpp
| @@ -220,7 +220,6 @@ HantekDsoControl::HantekDsoControl(USBDevice *device) : device(device) { | @@ -220,7 +220,6 @@ HantekDsoControl::HantekDsoControl(USBDevice *device) : device(device) { | ||
| 220 | break; | 220 | break; |
| 221 | 221 | ||
| 222 | case MODEL_DSO5200A: | 222 | case MODEL_DSO5200A: |
| 223 | - [[clang::fallthrough]]; | ||
| 224 | case MODEL_DSO5200: | 223 | case MODEL_DSO5200: |
| 225 | // Instantiate additional commands for the DSO-5200 | 224 | // Instantiate additional commands for the DSO-5200 |
| 226 | command[BULK_CSETTRIGGERORSAMPLERATE] = new BulkSetSamplerate5200(); | 225 | command[BULK_CSETTRIGGERORSAMPLERATE] = new BulkSetSamplerate5200(); |
openhantek/src/main.cpp
| @@ -162,8 +162,7 @@ int main(int argc, char *argv[]) { | @@ -162,8 +162,7 @@ int main(int argc, char *argv[]) { | ||
| 162 | QObject::connect(&dsoControl, &HantekDsoControl::samplesAvailable, &dataAnalyser, &DataAnalyzer::samplesAvailable); | 162 | QObject::connect(&dsoControl, &HantekDsoControl::samplesAvailable, &dataAnalyser, &DataAnalyzer::samplesAvailable); |
| 163 | 163 | ||
| 164 | //////// Create settings object //////// | 164 | //////// Create settings object //////// |
| 165 | - DsoSettings settings; | ||
| 166 | - settings.setChannelCount(dsoControl.getChannelCount()); | 165 | + DsoSettings settings(dsoControl.getChannelCount()); |
| 167 | dataAnalyser.applySettings(&settings.scope); | 166 | dataAnalyser.applySettings(&settings.scope); |
| 168 | 167 | ||
| 169 | //////// Create main window //////// | 168 | //////// Create main window //////// |
openhantek/src/settings.cpp
| @@ -33,7 +33,10 @@ | @@ -33,7 +33,10 @@ | ||
| 33 | 33 | ||
| 34 | /// \brief Set the number of channels. | 34 | /// \brief Set the number of channels. |
| 35 | /// \param channels The new channel count, that will be applied to lists. | 35 | /// \param channels The new channel count, that will be applied to lists. |
| 36 | -DsoSettings::DsoSettings() { load(); } | 36 | +DsoSettings::DsoSettings(unsigned int channels) { |
| 37 | + setChannelCount(channels); | ||
| 38 | + load(); | ||
| 39 | +} | ||
| 37 | 40 | ||
| 38 | bool DsoSettings::setFilename(const QString &filename) { | 41 | bool DsoSettings::setFilename(const QString &filename) { |
| 39 | std::unique_ptr<QSettings> local = std::unique_ptr<QSettings>(new QSettings(filename, QSettings::IniFormat)); | 42 | std::unique_ptr<QSettings> local = std::unique_ptr<QSettings>(new QSettings(filename, QSettings::IniFormat)); |
openhantek/src/settings.h
| @@ -23,7 +23,7 @@ struct DsoSettingsOptions { | @@ -23,7 +23,7 @@ struct DsoSettingsOptions { | ||
| 23 | /// \brief Holds the settings of the program. | 23 | /// \brief Holds the settings of the program. |
| 24 | class DsoSettings { | 24 | class DsoSettings { |
| 25 | public: | 25 | public: |
| 26 | - DsoSettings(); | 26 | + explicit DsoSettings(unsigned int channels); |
| 27 | bool setFilename(const QString &filename); | 27 | bool setFilename(const QString &filename); |
| 28 | 28 | ||
| 29 | void setChannelCount(unsigned int channels); | 29 | void setChannelCount(unsigned int channels); |
openhantek/src/widgets/levelslider.cpp
| @@ -40,7 +40,7 @@ LevelSlider::LevelSlider(Qt::ArrowType direction, QWidget *parent) : QWidget(par | @@ -40,7 +40,7 @@ LevelSlider::LevelSlider(Qt::ArrowType direction, QWidget *parent) : QWidget(par | ||
| 40 | this->setFont(font); | 40 | this->setFont(font); |
| 41 | 41 | ||
| 42 | this->pressedSlider = -1; | 42 | this->pressedSlider = -1; |
| 43 | - this->sliderWidth = 8; | 43 | + this->sliderWidth = 12; |
| 44 | 44 | ||
| 45 | this->setDirection(direction); | 45 | this->setDirection(direction); |
| 46 | } | 46 | } |
| @@ -381,44 +381,45 @@ void LevelSlider::paintEvent(QPaintEvent *event) { | @@ -381,44 +381,45 @@ void LevelSlider::paintEvent(QPaintEvent *event) { | ||
| 381 | painter.setPen((*slider)->color); | 381 | painter.setPen((*slider)->color); |
| 382 | 382 | ||
| 383 | if ((*slider)->text.isEmpty()) { | 383 | if ((*slider)->text.isEmpty()) { |
| 384 | - int needlePoints[6]; | 384 | + QVector<QPoint> needlePoints; |
| 385 | + QRect& sRect = (*slider)->rect; | ||
| 386 | + const int W = this->sliderWidth; | ||
| 385 | 387 | ||
| 386 | switch (this->_direction) { | 388 | switch (this->_direction) { |
| 387 | case Qt::LeftArrow: | 389 | case Qt::LeftArrow: |
| 388 | - needlePoints[0] = (*slider)->rect.left() + 4; | ||
| 389 | - needlePoints[1] = (*slider)->rect.top(); | ||
| 390 | - needlePoints[2] = (*slider)->rect.left() + 1; | ||
| 391 | - needlePoints[3] = (*slider)->rect.top() + 3; | ||
| 392 | - needlePoints[4] = (*slider)->rect.left() + 4; | ||
| 393 | - needlePoints[5] = (*slider)->rect.top() + 6; | 390 | + needlePoints << QPoint(sRect.left() + 4, sRect.top() ) |
| 391 | + << QPoint(sRect.left() + 1, sRect.top() + 3) | ||
| 392 | + << QPoint(sRect.left() + 4, sRect.top() + 6) | ||
| 393 | + << QPoint(sRect.left() + W, sRect.top() + 6) | ||
| 394 | + << QPoint(sRect.left() + W, sRect.top() ); | ||
| 394 | break; | 395 | break; |
| 395 | case Qt::UpArrow: | 396 | case Qt::UpArrow: |
| 396 | - needlePoints[0] = (*slider)->rect.left(); | ||
| 397 | - needlePoints[1] = (*slider)->rect.top() + 4; | ||
| 398 | - needlePoints[2] = (*slider)->rect.left() + 3; | ||
| 399 | - needlePoints[3] = (*slider)->rect.top() + 1; | ||
| 400 | - needlePoints[4] = (*slider)->rect.left() + 6; | ||
| 401 | - needlePoints[5] = (*slider)->rect.top() + 4; | 397 | + needlePoints << QPoint(sRect.left(), sRect.top() + 4) |
| 398 | + << QPoint(sRect.left() + 3, sRect.top() + 1) | ||
| 399 | + << QPoint(sRect.left() + 6, sRect.top() + 4) | ||
| 400 | + << QPoint(sRect.left() + 6, sRect.top() + W) | ||
| 401 | + << QPoint(sRect.left(), sRect.top() + W); | ||
| 402 | break; | 402 | break; |
| 403 | case Qt::DownArrow: | 403 | case Qt::DownArrow: |
| 404 | - needlePoints[0] = (*slider)->rect.left(); | ||
| 405 | - needlePoints[1] = (*slider)->rect.top() + this->sliderWidth - 5; | ||
| 406 | - needlePoints[2] = (*slider)->rect.left() + 3; | ||
| 407 | - needlePoints[3] = (*slider)->rect.top() + this->sliderWidth - 2; | ||
| 408 | - needlePoints[4] = (*slider)->rect.left() + 6; | ||
| 409 | - needlePoints[5] = (*slider)->rect.top() + this->sliderWidth - 5; | 404 | + needlePoints << QPoint(sRect.left(), sRect.top() + W - 5) |
| 405 | + << QPoint(sRect.left() + 3, sRect.top() + W - 2) | ||
| 406 | + << QPoint(sRect.left() + 6, sRect.top() + W - 5) | ||
| 407 | + << QPoint(sRect.left() + 6, sRect.top() ) | ||
| 408 | + << QPoint(sRect.left(), sRect.top() ); | ||
| 409 | + break; | ||
| 410 | + case Qt::RightArrow: | ||
| 411 | + needlePoints << QPoint(sRect.left() + W - 5, sRect.top() ) | ||
| 412 | + << QPoint(sRect.left() + W - 2, sRect.top() + 3) | ||
| 413 | + << QPoint(sRect.left() + W - 5, sRect.top() + 6) | ||
| 414 | + << QPoint(sRect.left(), sRect.top() + 6) | ||
| 415 | + << QPoint(sRect.left(), sRect.top() ); | ||
| 410 | break; | 416 | break; |
| 411 | default: | 417 | default: |
| 412 | - needlePoints[0] = (*slider)->rect.left() + this->sliderWidth - 5; | ||
| 413 | - needlePoints[1] = (*slider)->rect.top(); | ||
| 414 | - needlePoints[2] = (*slider)->rect.left() + this->sliderWidth - 2; | ||
| 415 | - needlePoints[3] = (*slider)->rect.top() + 3; | ||
| 416 | - needlePoints[4] = (*slider)->rect.left() + this->sliderWidth - 5; | ||
| 417 | - needlePoints[5] = (*slider)->rect.top() + 6; | 418 | + break; |
| 418 | } | 419 | } |
| 419 | 420 | ||
| 420 | painter.setBrush(QBrush((*slider)->color, Qt::SolidPattern)); | 421 | painter.setBrush(QBrush((*slider)->color, Qt::SolidPattern)); |
| 421 | - painter.drawPolygon(QPolygon(3, needlePoints)); | 422 | + painter.drawPolygon(QPolygon(needlePoints)); |
| 422 | painter.setBrush(Qt::NoBrush); | 423 | painter.setBrush(Qt::NoBrush); |
| 423 | } else { | 424 | } else { |
| 424 | // Get rect for text and draw needle | 425 | // Get rect for text and draw needle |
| @@ -539,8 +540,8 @@ QRect LevelSlider::calculateRect(int sliderId) { | @@ -539,8 +540,8 @@ QRect LevelSlider::calculateRect(int sliderId) { | ||
| 539 | /// \brief Search for the widest slider element. | 540 | /// \brief Search for the widest slider element. |
| 540 | /// \return The calculated width of the slider. | 541 | /// \return The calculated width of the slider. |
| 541 | int LevelSlider::calculateWidth() { | 542 | int LevelSlider::calculateWidth() { |
| 542 | - // At least 8 px for the needles | ||
| 543 | - this->sliderWidth = 8; | 543 | + // At least 12 px for the needles |
| 544 | + this->sliderWidth = 12; | ||
| 544 | 545 | ||
| 545 | // Is it a vertical slider? | 546 | // Is it a vertical slider? |
| 546 | if (this->_direction == Qt::RightArrow || this->_direction == Qt::LeftArrow) { | 547 | if (this->_direction == Qt::RightArrow || this->_direction == Qt::LeftArrow) { |