mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-31 11:10:05 +00:00 
			
		
		
		
	Save the general state of the docks (position, size, corner, etc)
This commit is contained in:
		
							parent
							
								
									3789845a36
								
							
						
					
					
						commit
						bc62236351
					
				
					 4 changed files with 33 additions and 3 deletions
				
			
		|  | @ -460,7 +460,25 @@ void MainWindow::showEvent(QShowEvent* event) | |||
| { | ||||
|    QMainWindow::showEvent(event); | ||||
| 
 | ||||
|    resizeDocks({ui->radarToolboxDock}, {194}, Qt::Horizontal); | ||||
|    // restore the UI state
 | ||||
|    std::string uiState = | ||||
|       settings::UiSettings::Instance().main_ui_state().GetValue(); | ||||
| 
 | ||||
|    bool restored = | ||||
|       restoreState(QByteArray::fromBase64(QByteArray::fromStdString(uiState))); | ||||
|    if (!restored) | ||||
|    { | ||||
|       resizeDocks({ui->radarToolboxDock}, {194}, Qt::Horizontal); | ||||
|    } | ||||
| } | ||||
| 
 | ||||
| void MainWindow::closeEvent(QCloseEvent* event) | ||||
| { | ||||
|    // save the UI state
 | ||||
|    QByteArray uiState = saveState().toBase64(); | ||||
|    settings::UiSettings::Instance().main_ui_state().StageValue(uiState.data()); | ||||
| 
 | ||||
|    QMainWindow::closeEvent(event); | ||||
| } | ||||
| 
 | ||||
| void MainWindow::on_actionOpenNexrad_triggered() | ||||
|  |  | |||
|  | @ -29,6 +29,7 @@ public: | |||
|    void keyPressEvent(QKeyEvent* ev) override final; | ||||
|    void keyReleaseEvent(QKeyEvent* ev) override final; | ||||
|    void showEvent(QShowEvent* event) override; | ||||
|    void closeEvent(QCloseEvent *event) override; | ||||
| 
 | ||||
| signals: | ||||
|    void ActiveMapMoved(double latitude, double longitude); | ||||
|  |  | |||
|  | @ -21,6 +21,7 @@ public: | |||
|       timelineExpanded_.SetDefault(true); | ||||
|       alertDockVisible_.SetDefault(false); | ||||
|       radarToolboxDockVisible_.SetDefault(true); | ||||
|       mainUIState_.SetDefault(""); | ||||
|    } | ||||
| 
 | ||||
|    ~UiSettingsImpl() {} | ||||
|  | @ -32,6 +33,7 @@ public: | |||
|    SettingsVariable<bool> timelineExpanded_ {"timeline_expanded"}; | ||||
|    SettingsVariable<bool> alertDockVisible_ {"alert_dock_visible"}; | ||||
|    SettingsVariable<bool> radarToolboxDockVisible_ {"radar_toolbox_dock_visible"}; | ||||
|    SettingsVariable<std::string> mainUIState_ {"main_ui_state"}; | ||||
| }; | ||||
| 
 | ||||
| UiSettings::UiSettings() : | ||||
|  | @ -43,7 +45,8 @@ UiSettings::UiSettings() : | |||
|                       &p->mapSettingsExpanded_, | ||||
|                       &p->timelineExpanded_, | ||||
|                       &p->alertDockVisible_, | ||||
|                       &p->radarToolboxDockVisible_}); | ||||
|                       &p->radarToolboxDockVisible_, | ||||
|                       &p->mainUIState_}); | ||||
|    SetDefaults(); | ||||
| } | ||||
| UiSettings::~UiSettings() = default; | ||||
|  | @ -86,6 +89,11 @@ SettingsVariable<bool>& UiSettings::radar_toolbox_dock_visible() const | |||
|    return p->radarToolboxDockVisible_; | ||||
| } | ||||
| 
 | ||||
| SettingsVariable<std::string>& UiSettings::main_ui_state() const | ||||
| { | ||||
|    return p->mainUIState_; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| bool UiSettings::Shutdown() | ||||
| { | ||||
|  | @ -99,6 +107,7 @@ bool UiSettings::Shutdown() | |||
|    dataChanged |= p->timelineExpanded_.Commit(); | ||||
|    dataChanged |= p->alertDockVisible_.Commit(); | ||||
|    dataChanged |= p->radarToolboxDockVisible_.Commit(); | ||||
|    dataChanged |= p->mainUIState_.Commit(); | ||||
| 
 | ||||
|    return dataChanged; | ||||
| } | ||||
|  | @ -117,7 +126,8 @@ bool operator==(const UiSettings& lhs, const UiSettings& rhs) | |||
|            lhs.p->mapSettingsExpanded_ == rhs.p->mapSettingsExpanded_ && | ||||
|            lhs.p->timelineExpanded_ == rhs.p->timelineExpanded_ && | ||||
|            lhs.p->alertDockVisible_ == rhs.p->alertDockVisible_ && | ||||
|            lhs.p->radarToolboxDockVisible_ == rhs.p->radarToolboxDockVisible_); | ||||
|            lhs.p->radarToolboxDockVisible_ == rhs.p->radarToolboxDockVisible_ && | ||||
|            lhs.p->mainUIState_ == rhs.p->mainUIState_); | ||||
| } | ||||
| 
 | ||||
| } // namespace settings
 | ||||
|  |  | |||
|  | @ -34,6 +34,7 @@ public: | |||
|    SettingsVariable<bool>& timeline_expanded() const; | ||||
|    SettingsVariable<bool>& alert_dock_visible() const; | ||||
|    SettingsVariable<bool>& radar_toolbox_dock_visible() const; | ||||
|    SettingsVariable<std::string>& main_ui_state() const; | ||||
| 
 | ||||
|    bool Shutdown(); | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 AdenKoperczak
						AdenKoperczak