diff --git a/HPPA/AppSettings.cpp b/HPPA/AppSettings.cpp index dc6f028..e7c07a8 100644 --- a/HPPA/AppSettings.cpp +++ b/HPPA/AppSettings.cpp @@ -11,7 +11,7 @@ const QString AppSettings::kDefaultDepthCameraDataFolder = QString(); const double AppSettings::kDefaultScanSpeed = 1.0; const double AppSettings::kDefaultReturnSpeed = 5.0; const int AppSettings::kDefaultGonggaShanRecordPort = 666; -const QString AppSettings::kDefaultHyperimgDisplayMode = QStringLiteral("full"); +const AppSettings::HyperimgDisplayMode AppSettings::kDefaultHyperimgDisplayMode = HyperimgDisplayMode::Waterfall; AppSettings::AppSettings() : m_settings(QSettings::IniFormat, QSettings::UserScope, @@ -150,12 +150,14 @@ void AppSettings::setGonggaShanRecordPort(int value) m_settings.setValue("GonggaShanRecordCtl/Port", value); } -QString AppSettings::hyperimgDisplayMode() const +AppSettings::HyperimgDisplayMode AppSettings::hyperimgDisplayMode() const { - return m_settings.value("Display/HyperimgDisplayMode", kDefaultHyperimgDisplayMode).toString(); + return static_cast( + m_settings.value("Display/HyperimgDisplayMode", + static_cast(kDefaultHyperimgDisplayMode)).toInt()); } -void AppSettings::setHyperimgDisplayMode(const QString& mode) +void AppSettings::setHyperimgDisplayMode(HyperimgDisplayMode mode) { - m_settings.setValue("Display/HyperimgDisplayMode", mode); + m_settings.setValue("Display/HyperimgDisplayMode", static_cast(mode)); } diff --git a/HPPA/AppSettings.h b/HPPA/AppSettings.h index 889f226..5fbf564 100644 --- a/HPPA/AppSettings.h +++ b/HPPA/AppSettings.h @@ -50,9 +50,12 @@ public: int gonggaShanRecordPort() const; void setGonggaShanRecordPort(int value); - // 图像显示模式(full / waterfall) - QString hyperimgDisplayMode() const; - void setHyperimgDisplayMode(const QString& mode); + // 图像显示模式枚举 + enum class HyperimgDisplayMode { Full, Waterfall }; + + // 图像显示模式 + HyperimgDisplayMode hyperimgDisplayMode() const; + void setHyperimgDisplayMode(HyperimgDisplayMode mode); // 在此处添加更多参数的 getter/setter ... private: @@ -73,5 +76,5 @@ private: static const double kDefaultScanSpeed; static const double kDefaultReturnSpeed; static const int kDefaultGonggaShanRecordPort; - static const QString kDefaultHyperimgDisplayMode; + static const HyperimgDisplayMode kDefaultHyperimgDisplayMode; }; diff --git a/HPPA/ImageViewer.cpp b/HPPA/ImageViewer.cpp index 663b6fb..0fd88db 100644 --- a/HPPA/ImageViewer.cpp +++ b/HPPA/ImageViewer.cpp @@ -79,11 +79,11 @@ void Mapcavas::SetImage(QPixmap *image) m_GraphicsPixmapItemHandle->setPixmap(*image); } - if (m_displayMode =="full") + if (m_displayMode == AppSettings::HyperimgDisplayMode::Full) { ensureSceneVisible(); } - else if (m_displayMode == "waterfall") + else if (m_displayMode == AppSettings::HyperimgDisplayMode::Waterfall) { ensureWaterfallVisible(); } diff --git a/HPPA/ImageViewer.h b/HPPA/ImageViewer.h index f9302c2..6d96f97 100644 --- a/HPPA/ImageViewer.h +++ b/HPPA/ImageViewer.h @@ -80,7 +80,7 @@ private: QGraphicsLineItem* m_hLine = nullptr; // horizontal line QGraphicsLineItem* m_vLine = nullptr; // vertical line - QString m_displayMode; + AppSettings::HyperimgDisplayMode m_displayMode; signals: void leftMouseButtonPressed(int, int, QVector, QVector); diff --git a/HPPA/setWindow.cpp b/HPPA/setWindow.cpp index 03298ca..548d93b 100644 --- a/HPPA/setWindow.cpp +++ b/HPPA/setWindow.cpp @@ -10,6 +10,7 @@ setWindow::setWindow(QWidget* parent) setWindowFlags(Qt::FramelessWindowHint); + //顺序不能更改,和AppSettings::HyperimgDisplayMode一致 ui.hyperimgDisplayMode_comboBox->addItem("full"); ui.hyperimgDisplayMode_comboBox->addItem("waterfall"); @@ -28,13 +29,17 @@ void setWindow::loadSettings() { ui.dataFolderLineEdit->setText(AppSettings::instance().dataFolder()); - ui.hyperimgDisplayMode_comboBox->setCurrentText(AppSettings::instance().hyperimgDisplayMode()); + ui.hyperimgDisplayMode_comboBox->setCurrentIndex( + static_cast(AppSettings::instance().hyperimgDisplayMode())); } void setWindow::saveSettings() { AppSettings::instance().setDataFolder(ui.dataFolderLineEdit->text()); - AppSettings::instance().setHyperimgDisplayMode(ui.hyperimgDisplayMode_comboBox->currentText()); + AppSettings::instance().setHyperimgDisplayMode( + ui.hyperimgDisplayMode_comboBox->currentIndex() == 0 + ? AppSettings::HyperimgDisplayMode::Full + : AppSettings::HyperimgDisplayMode::Waterfall); } void setWindow::onSelectDataFolder()