mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-31 14:40:05 +00:00 
			
		
		
		
	Add mouse geo coordinates and UTC time to status bar
This commit is contained in:
		
							parent
							
								
									0c8d1aeb80
								
							
						
					
					
						commit
						f54f6d1b4a
					
				
					 3 changed files with 62 additions and 1 deletions
				
			
		|  | @ -34,6 +34,7 @@ | ||||||
| #include <scwx/common/products.hpp> | #include <scwx/common/products.hpp> | ||||||
| #include <scwx/common/vcp.hpp> | #include <scwx/common/vcp.hpp> | ||||||
| #include <scwx/util/logger.hpp> | #include <scwx/util/logger.hpp> | ||||||
|  | #include <scwx/util/time.hpp> | ||||||
| 
 | 
 | ||||||
| #include <boost/asio/post.hpp> | #include <boost/asio/post.hpp> | ||||||
| #include <boost/asio/thread_pool.hpp> | #include <boost/asio/thread_pool.hpp> | ||||||
|  | @ -42,6 +43,7 @@ | ||||||
| #include <QMessageBox> | #include <QMessageBox> | ||||||
| #include <QSplitter> | #include <QSplitter> | ||||||
| #include <QStandardPaths> | #include <QStandardPaths> | ||||||
|  | #include <QTimer> | ||||||
| #include <QToolButton> | #include <QToolButton> | ||||||
| 
 | 
 | ||||||
| #if !defined(_MSC_VER) | #if !defined(_MSC_VER) | ||||||
|  | @ -125,7 +127,11 @@ public: | ||||||
|          positionManager_->TrackLocation(true); |          positionManager_->TrackLocation(true); | ||||||
|       } |       } | ||||||
|    } |    } | ||||||
|    ~MainWindowImpl() { threadPool_.join(); } |    ~MainWindowImpl() | ||||||
|  |    { | ||||||
|  |       clockTimer_.stop(); | ||||||
|  |       threadPool_.join(); | ||||||
|  |    } | ||||||
| 
 | 
 | ||||||
|    void AddRadarSitePreset(const std::string& id); |    void AddRadarSitePreset(const std::string& id); | ||||||
|    void AsyncSetup(); |    void AsyncSetup(); | ||||||
|  | @ -169,6 +175,9 @@ public: | ||||||
| 
 | 
 | ||||||
|    ui::Level3ProductsWidget* level3ProductsWidget_; |    ui::Level3ProductsWidget* level3ProductsWidget_; | ||||||
| 
 | 
 | ||||||
|  |    QLabel* coordinateLabel_ {nullptr}; | ||||||
|  |    QLabel* timeLabel_ {nullptr}; | ||||||
|  | 
 | ||||||
|    ui::AlertDockWidget*     alertDockWidget_; |    ui::AlertDockWidget*     alertDockWidget_; | ||||||
|    ui::AnimationDockWidget* animationDockWidget_; |    ui::AnimationDockWidget* animationDockWidget_; | ||||||
|    ui::AboutDialog*         aboutDialog_; |    ui::AboutDialog*         aboutDialog_; | ||||||
|  | @ -179,6 +188,8 @@ public: | ||||||
|    ui::SettingsDialog*      settingsDialog_; |    ui::SettingsDialog*      settingsDialog_; | ||||||
|    ui::UpdateDialog*        updateDialog_; |    ui::UpdateDialog*        updateDialog_; | ||||||
| 
 | 
 | ||||||
|  |    QTimer clockTimer_ {}; | ||||||
|  | 
 | ||||||
|    std::shared_ptr<manager::AlertManager>     alertManager_; |    std::shared_ptr<manager::AlertManager>     alertManager_; | ||||||
|    std::shared_ptr<manager::PlacefileManager> placefileManager_; |    std::shared_ptr<manager::PlacefileManager> placefileManager_; | ||||||
|    std::shared_ptr<manager::PositionManager>  positionManager_; |    std::shared_ptr<manager::PositionManager>  positionManager_; | ||||||
|  | @ -317,6 +328,25 @@ MainWindow::MainWindow(QWidget* parent) : | ||||||
|    ui->radarToolboxScrollAreaContents->layout()->addItem( |    ui->radarToolboxScrollAreaContents->layout()->addItem( | ||||||
|       ui->radarToolboxSpacer); |       ui->radarToolboxSpacer); | ||||||
| 
 | 
 | ||||||
|  |    // Status Bar
 | ||||||
|  |    QWidget* statusBarWidget = new QWidget(this); | ||||||
|  | 
 | ||||||
|  |    p->coordinateLabel_ = new QLabel(this); | ||||||
|  |    p->coordinateLabel_->setFrameShape(QFrame::Shape::Box); | ||||||
|  |    p->coordinateLabel_->setFrameShadow(QFrame::Shadow::Sunken); | ||||||
|  |    p->coordinateLabel_->setVisible(false); | ||||||
|  | 
 | ||||||
|  |    p->timeLabel_ = new QLabel(this); | ||||||
|  |    p->timeLabel_->setFrameShape(QFrame::Shape::Box); | ||||||
|  |    p->timeLabel_->setFrameShadow(QFrame::Shadow::Sunken); | ||||||
|  |    p->timeLabel_->setVisible(false); | ||||||
|  | 
 | ||||||
|  |    QGridLayout* statusBarLayout = new QGridLayout(statusBarWidget); | ||||||
|  |    statusBarLayout->setContentsMargins(0, 0, 0, 0); | ||||||
|  |    statusBarLayout->addWidget(p->coordinateLabel_, 0, 0); | ||||||
|  |    statusBarLayout->addWidget(p->timeLabel_, 0, 1); | ||||||
|  |    ui->statusbar->addPermanentWidget(statusBarWidget); | ||||||
|  | 
 | ||||||
|    // ImGui Debug Dialog
 |    // ImGui Debug Dialog
 | ||||||
|    p->imGuiDebugDialog_ = new ui::ImGuiDebugDialog(this); |    p->imGuiDebugDialog_ = new ui::ImGuiDebugDialog(this); | ||||||
| 
 | 
 | ||||||
|  | @ -715,6 +745,21 @@ void MainWindowImpl::ConnectMapSignals() | ||||||
|                  } |                  } | ||||||
|               }); |               }); | ||||||
| 
 | 
 | ||||||
|  |       connect(mapWidget, | ||||||
|  |               &map::MapWidget::MouseCoordinateChanged, | ||||||
|  |               this, | ||||||
|  |               [this](common::Coordinate coordinate) | ||||||
|  |               { | ||||||
|  |                  const QString latitude = QString::fromStdString( | ||||||
|  |                     common::GetLatitudeString(coordinate.latitude_)); | ||||||
|  |                  const QString longitude = QString::fromStdString( | ||||||
|  |                     common::GetLongitudeString(coordinate.longitude_)); | ||||||
|  | 
 | ||||||
|  |                  coordinateLabel_->setText( | ||||||
|  |                     QString("%1, %2").arg(latitude).arg(longitude)); | ||||||
|  |                  coordinateLabel_->setVisible(true); | ||||||
|  |               }); | ||||||
|  | 
 | ||||||
|       connect( |       connect( | ||||||
|          mapWidget, |          mapWidget, | ||||||
|          &map::MapWidget::RadarSweepUpdated, |          &map::MapWidget::RadarSweepUpdated, | ||||||
|  | @ -986,6 +1031,17 @@ void MainWindowImpl::ConnectOtherSignals() | ||||||
|               updateDialog_->UpdateReleaseInfo(latestVersion, latestRelease); |               updateDialog_->UpdateReleaseInfo(latestVersion, latestRelease); | ||||||
|               updateDialog_->show(); |               updateDialog_->show(); | ||||||
|            }); |            }); | ||||||
|  | 
 | ||||||
|  |    connect(&clockTimer_, | ||||||
|  |            &QTimer::timeout, | ||||||
|  |            this, | ||||||
|  |            [this]() | ||||||
|  |            { | ||||||
|  |               timeLabel_->setText(QString("%1 UTC").arg(QString::fromStdString( | ||||||
|  |                  util::TimeString(std::chrono::system_clock::now())))); | ||||||
|  |               timeLabel_->setVisible(true); | ||||||
|  |            }); | ||||||
|  |    clockTimer_.start(1000); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void MainWindowImpl::AddRadarSitePreset(const std::string& siteId) | void MainWindowImpl::AddRadarSitePreset(const std::string& siteId) | ||||||
|  |  | ||||||
|  | @ -1231,6 +1231,9 @@ void MapWidgetImpl::RunMousePicking() | ||||||
|       util::tooltip::Hide(); |       util::tooltip::Hide(); | ||||||
|    } |    } | ||||||
| 
 | 
 | ||||||
|  |    Q_EMIT widget_->MouseCoordinateChanged( | ||||||
|  |       {coordinate.first, coordinate.second}); | ||||||
|  | 
 | ||||||
|    lastItemPicked_ = itemPicked; |    lastItemPicked_ = itemPicked; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,5 +1,6 @@ | ||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
|  | #include <scwx/common/geographic.hpp> | ||||||
| #include <scwx/common/products.hpp> | #include <scwx/common/products.hpp> | ||||||
| #include <scwx/qt/config/radar_site.hpp> | #include <scwx/qt/config/radar_site.hpp> | ||||||
| #include <scwx/qt/types/map_types.hpp> | #include <scwx/qt/types/map_types.hpp> | ||||||
|  | @ -147,6 +148,7 @@ signals: | ||||||
|                              double bearing, |                              double bearing, | ||||||
|                              double pitch); |                              double pitch); | ||||||
|    void MapStyleChanged(const std::string& styleName); |    void MapStyleChanged(const std::string& styleName); | ||||||
|  |    void MouseCoordinateChanged(common::Coordinate coordinate); | ||||||
|    void RadarSiteRequested(const std::string& id); |    void RadarSiteRequested(const std::string& id); | ||||||
|    void RadarSiteUpdated(std::shared_ptr<config::RadarSite> radarSite); |    void RadarSiteUpdated(std::shared_ptr<config::RadarSite> radarSite); | ||||||
|    void RadarSweepUpdated(); |    void RadarSweepUpdated(); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Dan Paulat
						Dan Paulat