mirror of
				https://github.com/f4exb/sdrangel.git
				synced 2025-10-31 13:00:26 -04:00 
			
		
		
		
	Main Window: added option to hide or show the main spectrum in the central widget. Fixes #1152
This commit is contained in:
		
							parent
							
								
									dc9c60d48e
								
							
						
					
					
						commit
						8e79cd7ff2
					
				
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 1.0 MiB After Width: | Height: | Size: 1.0 MiB | 
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB | 
										
											Binary file not shown.
										
									
								
							| @ -36,6 +36,7 @@ Preset::Preset(const Preset& other) : | |||||||
| 	m_iqImbalanceCorrection(other.m_iqImbalanceCorrection), | 	m_iqImbalanceCorrection(other.m_iqImbalanceCorrection), | ||||||
| 	m_channelConfigs(other.m_channelConfigs), | 	m_channelConfigs(other.m_channelConfigs), | ||||||
| 	m_deviceConfigs(other.m_deviceConfigs), | 	m_deviceConfigs(other.m_deviceConfigs), | ||||||
|  | 	m_showSpectrum(other.m_showSpectrum), | ||||||
| 	m_layout(other.m_layout) | 	m_layout(other.m_layout) | ||||||
| {} | {} | ||||||
| 
 | 
 | ||||||
| @ -50,6 +51,7 @@ void Preset::resetToDefaults() | |||||||
| 	m_channelConfigs.clear(); | 	m_channelConfigs.clear(); | ||||||
| 	m_dcOffsetCorrection = false; | 	m_dcOffsetCorrection = false; | ||||||
| 	m_iqImbalanceCorrection = false; | 	m_iqImbalanceCorrection = false; | ||||||
|  | 	m_showSpectrum = true; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| QByteArray Preset::serialize() const | QByteArray Preset::serialize() const | ||||||
| @ -69,6 +71,7 @@ QByteArray Preset::serialize() const | |||||||
| 	s.writeBlob(5, m_spectrumConfig); | 	s.writeBlob(5, m_spectrumConfig); | ||||||
|     s.writeBool(6, m_presetType == PresetSource); |     s.writeBool(6, m_presetType == PresetSource); | ||||||
| 	s.writeS32(7, (int) m_presetType); | 	s.writeS32(7, (int) m_presetType); | ||||||
|  | 	s.writeBool(8, m_showSpectrum); | ||||||
| 
 | 
 | ||||||
| 	s.writeS32(20, m_deviceConfigs.size()); | 	s.writeS32(20, m_deviceConfigs.size()); | ||||||
| 
 | 
 | ||||||
| @ -126,6 +129,7 @@ bool Preset::deserialize(const QByteArray& data) | |||||||
| 		d.readBlob(5, &m_spectrumConfig); | 		d.readBlob(5, &m_spectrumConfig); | ||||||
| 		d.readBool(6, &tmpBool, true); | 		d.readBool(6, &tmpBool, true); | ||||||
|         d.readS32(7, &tmp, PresetSource); |         d.readS32(7, &tmp, PresetSource); | ||||||
|  | 		d.readBool(8, &m_showSpectrum, true); | ||||||
|         m_presetType = tmp < (int) PresetSource ? PresetSource : tmp > (int) PresetMIMO ? PresetMIMO : (PresetType) tmp; |         m_presetType = tmp < (int) PresetSource ? PresetSource : tmp > (int) PresetMIMO ? PresetMIMO : (PresetType) tmp; | ||||||
| 
 | 
 | ||||||
|         if (m_presetType != PresetMIMO) { |         if (m_presetType != PresetMIMO) { | ||||||
|  | |||||||
| @ -96,6 +96,8 @@ public: | |||||||
| 	bool hasIQImbalanceCorrection() const { return m_iqImbalanceCorrection; } | 	bool hasIQImbalanceCorrection() const { return m_iqImbalanceCorrection; } | ||||||
|     void setIQImbalanceCorrection(bool iqImbalanceCorrection) { m_iqImbalanceCorrection = iqImbalanceCorrection; } |     void setIQImbalanceCorrection(bool iqImbalanceCorrection) { m_iqImbalanceCorrection = iqImbalanceCorrection; } | ||||||
| 
 | 
 | ||||||
|  | 	void setShowSpectrum(bool show) { m_showSpectrum = show; } | ||||||
|  | 	bool getShowSpectrum() const { return m_showSpectrum; } | ||||||
| 	void setLayout(const QByteArray& data) { m_layout = data; } | 	void setLayout(const QByteArray& data) { m_layout = data; } | ||||||
| 	const QByteArray& getLayout() const { return m_layout; } | 	const QByteArray& getLayout() const { return m_layout; } | ||||||
| 
 | 
 | ||||||
| @ -164,6 +166,7 @@ protected: | |||||||
| 	DeviceeConfigs m_deviceConfigs; | 	DeviceeConfigs m_deviceConfigs; | ||||||
| 
 | 
 | ||||||
| 	// screen and dock layout
 | 	// screen and dock layout
 | ||||||
|  | 	bool m_showSpectrum; | ||||||
| 	QByteArray m_layout; | 	QByteArray m_layout; | ||||||
| 
 | 
 | ||||||
| private: | private: | ||||||
|  | |||||||
| @ -139,13 +139,13 @@ MainWindow::MainWindow(qtwebapp::LoggerWithFile *logger, const MainParser& parse | |||||||
| 
 | 
 | ||||||
| 	// work around broken Qt dock widget ordering
 | 	// work around broken Qt dock widget ordering
 | ||||||
|     removeDockWidget(ui->inputViewDock); |     removeDockWidget(ui->inputViewDock); | ||||||
| 	removeDockWidget(ui->spectraDisplayDock); | 	removeDockWidget(ui->spectraControlDock); | ||||||
| 	removeDockWidget(ui->presetDock); | 	removeDockWidget(ui->presetDock); | ||||||
|     removeDockWidget(ui->commandsDock); |     removeDockWidget(ui->commandsDock); | ||||||
| 	removeDockWidget(ui->channelDock); | 	removeDockWidget(ui->channelDock); | ||||||
|     removeDockWidget(ui->featureDock); |     removeDockWidget(ui->featureDock); | ||||||
|     addDockWidget(Qt::LeftDockWidgetArea, ui->inputViewDock); |     addDockWidget(Qt::LeftDockWidgetArea, ui->inputViewDock); | ||||||
| 	addDockWidget(Qt::LeftDockWidgetArea, ui->spectraDisplayDock); | 	addDockWidget(Qt::LeftDockWidgetArea, ui->spectraControlDock); | ||||||
| 	addDockWidget(Qt::LeftDockWidgetArea, ui->presetDock); | 	addDockWidget(Qt::LeftDockWidgetArea, ui->presetDock); | ||||||
|     addDockWidget(Qt::LeftDockWidgetArea, ui->commandsDock); |     addDockWidget(Qt::LeftDockWidgetArea, ui->commandsDock); | ||||||
|     tabifyDockWidget(ui->presetDock, ui->commandsDock); |     tabifyDockWidget(ui->presetDock, ui->commandsDock); | ||||||
| @ -153,21 +153,27 @@ MainWindow::MainWindow(qtwebapp::LoggerWithFile *logger, const MainParser& parse | |||||||
| 	addDockWidget(Qt::RightDockWidgetArea, ui->featureDock); | 	addDockWidget(Qt::RightDockWidgetArea, ui->featureDock); | ||||||
| 
 | 
 | ||||||
| 	ui->inputViewDock->show(); | 	ui->inputViewDock->show(); | ||||||
| 	ui->spectraDisplayDock->show(); | 	ui->spectraControlDock->show(); | ||||||
| 	ui->presetDock->show(); | 	ui->presetDock->show(); | ||||||
| 	ui->commandsDock->show(); | 	ui->commandsDock->show(); | ||||||
| 	ui->channelDock->show(); | 	ui->channelDock->show(); | ||||||
|     ui->featureDock->show(); |     ui->featureDock->show(); | ||||||
| 
 | 
 | ||||||
|  |     m_spectrumToggleViewAction = new QAction(tr("Spectrum display")); | ||||||
|  |     m_spectrumToggleViewAction->setCheckable(true); | ||||||
|  |     m_spectrumToggleViewAction->setChecked(true); | ||||||
|  |     connect(m_spectrumToggleViewAction, SIGNAL(toggled(bool)), this, SLOT(toggleSpectrumView(bool))); | ||||||
|  | 
 | ||||||
|     ui->menu_Window->addAction(ui->inputViewDock->toggleViewAction()); |     ui->menu_Window->addAction(ui->inputViewDock->toggleViewAction()); | ||||||
| 	ui->menu_Window->addAction(ui->spectraDisplayDock->toggleViewAction()); | 	ui->menu_Window->addAction(ui->spectraControlDock->toggleViewAction()); | ||||||
|  |     ui->menu_Window->addAction(m_spectrumToggleViewAction); | ||||||
| 	ui->menu_Window->addAction(ui->presetDock->toggleViewAction()); | 	ui->menu_Window->addAction(ui->presetDock->toggleViewAction()); | ||||||
|     ui->menu_Window->addAction(ui->commandsDock->toggleViewAction()); |     ui->menu_Window->addAction(ui->commandsDock->toggleViewAction()); | ||||||
| 	ui->menu_Window->addAction(ui->channelDock->toggleViewAction()); | 	ui->menu_Window->addAction(ui->channelDock->toggleViewAction()); | ||||||
|     ui->menu_Window->addAction(ui->featureDock->toggleViewAction()); |     ui->menu_Window->addAction(ui->featureDock->toggleViewAction()); | ||||||
| 
 | 
 | ||||||
|     ui->spectraDisplayDock->setStyleSheet("QAbstractButton#qt_dockwidget_closebutton{qproperty-toolTip: \"Close\";}"); |     ui->spectraControlDock->setStyleSheet("QAbstractButton#qt_dockwidget_closebutton{qproperty-toolTip: \"Close\";}"); | ||||||
|     ui->spectraDisplayDock->setStyleSheet("QAbstractButton#qt_dockwidget_floatbutton{qproperty-toolTip: \"Dock/undock\";}"); |     ui->spectraControlDock->setStyleSheet("QAbstractButton#qt_dockwidget_floatbutton{qproperty-toolTip: \"Dock/undock\";}"); | ||||||
|     ui->presetDock->setStyleSheet("QAbstractButton#qt_dockwidget_closebutton{qproperty-toolTip: \"Close\";}"); |     ui->presetDock->setStyleSheet("QAbstractButton#qt_dockwidget_closebutton{qproperty-toolTip: \"Close\";}"); | ||||||
|     ui->presetDock->setStyleSheet("QAbstractButton#qt_dockwidget_floatbutton{qproperty-toolTip: \"Dock/undock\";}"); |     ui->presetDock->setStyleSheet("QAbstractButton#qt_dockwidget_floatbutton{qproperty-toolTip: \"Dock/undock\";}"); | ||||||
| 
 | 
 | ||||||
| @ -323,6 +329,7 @@ MainWindow::~MainWindow() | |||||||
|     removeAllFeatureSets(); |     removeAllFeatureSets(); | ||||||
| 
 | 
 | ||||||
| 	delete ui; | 	delete ui; | ||||||
|  |     delete m_spectrumToggleViewAction; | ||||||
| 
 | 
 | ||||||
| 	qDebug() << "MainWindow::~MainWindow: end"; | 	qDebug() << "MainWindow::~MainWindow: end"; | ||||||
| 	delete m_commandKeyReceiver; | 	delete m_commandKeyReceiver; | ||||||
| @ -788,6 +795,8 @@ void MainWindow::loadPresetSettings(const Preset* preset, int tabIndex) | |||||||
|         } |         } | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  |     m_spectrumToggleViewAction->setChecked(preset->getShowSpectrum()); | ||||||
|  | 
 | ||||||
| 	// has to be last step
 | 	// has to be last step
 | ||||||
|     if (!preset->getLayout().isEmpty()) { |     if (!preset->getLayout().isEmpty()) { | ||||||
| 	    restoreState(preset->getLayout()); | 	    restoreState(preset->getLayout()); | ||||||
| @ -832,6 +841,7 @@ void MainWindow::savePresetSettings(Preset* preset, int tabIndex) | |||||||
|         deviceUI->m_deviceAPI->saveSamplingDeviceSettings(preset); |         deviceUI->m_deviceAPI->saveSamplingDeviceSettings(preset); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     preset->setShowSpectrum(m_spectrumToggleViewAction->isChecked()); | ||||||
|     preset->setLayout(saveState()); |     preset->setLayout(saveState()); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -1912,6 +1922,15 @@ void MainWindow::fftWisdomProcessFinished(int exitCode, QProcess::ExitStatus exi | |||||||
|     m_fftWisdomProcess = nullptr; |     m_fftWisdomProcess = nullptr; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | void MainWindow::toggleSpectrumView(bool checked) | ||||||
|  | { | ||||||
|  |     if (checked) { | ||||||
|  |         ui->centralWidget->show(); | ||||||
|  |     } else { | ||||||
|  |         ui->centralWidget->hide(); | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
| void MainWindow::on_action_AMBE_triggered() | void MainWindow::on_action_AMBE_triggered() | ||||||
| { | { | ||||||
|     qDebug("MainWindow::on_action_AMBE_triggered"); |     qDebug("MainWindow::on_action_AMBE_triggered"); | ||||||
|  | |||||||
| @ -117,6 +117,7 @@ private: | |||||||
| 	WebAPIAdapter *m_apiAdapter; | 	WebAPIAdapter *m_apiAdapter; | ||||||
| 	QString m_apiHost; | 	QString m_apiHost; | ||||||
| 	int m_apiPort; | 	int m_apiPort; | ||||||
|  | 	QAction *m_spectrumToggleViewAction; | ||||||
| 
 | 
 | ||||||
| 	CommandKeyReceiver *m_commandKeyReceiver; | 	CommandKeyReceiver *m_commandKeyReceiver; | ||||||
| 
 | 
 | ||||||
| @ -200,6 +201,7 @@ private slots: | |||||||
| 	void tabFeaturesIndexChanged(); | 	void tabFeaturesIndexChanged(); | ||||||
| 	void commandKeyPressed(Qt::Key key, Qt::KeyboardModifiers keyModifiers, bool release); | 	void commandKeyPressed(Qt::Key key, Qt::KeyboardModifiers keyModifiers, bool release); | ||||||
| 	void fftWisdomProcessFinished(int exitCode, QProcess::ExitStatus exitStatus); | 	void fftWisdomProcessFinished(int exitCode, QProcess::ExitStatus exitStatus); | ||||||
|  | 	void toggleSpectrumView(bool checked); | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| #endif // INCLUDE_MAINWINDOW_H
 | #endif // INCLUDE_MAINWINDOW_H
 | ||||||
|  | |||||||
| @ -64,7 +64,7 @@ | |||||||
|      <x>0</x> |      <x>0</x> | ||||||
|      <y>0</y> |      <y>0</y> | ||||||
|      <width>1012</width> |      <width>1012</width> | ||||||
|      <height>20</height> |      <height>27</height> | ||||||
|     </rect> |     </rect> | ||||||
|    </property> |    </property> | ||||||
|    <widget class="QMenu" name="menu_File"> |    <widget class="QMenu" name="menu_File"> | ||||||
| @ -193,9 +193,9 @@ | |||||||
|     </layout> |     </layout> | ||||||
|    </widget> |    </widget> | ||||||
|   </widget> |   </widget> | ||||||
|   <widget class="QDockWidget" name="spectraDisplayDock"> |   <widget class="QDockWidget" name="spectraControlDock"> | ||||||
|    <property name="windowTitle"> |    <property name="windowTitle"> | ||||||
|     <string>Spectrum Display</string> |     <string>Spectrum Control</string> | ||||||
|    </property> |    </property> | ||||||
|    <attribute name="dockWidgetArea"> |    <attribute name="dockWidgetArea"> | ||||||
|     <number>1</number> |     <number>1</number> | ||||||
|  | |||||||
| @ -49,7 +49,8 @@ The following items are presented hierarchically from left to right: | |||||||
|   - Window: presents the list of dockable windows. Check to make it visible. Uncheck to hide. These windows are: |   - Window: presents the list of dockable windows. Check to make it visible. Uncheck to hide. These windows are: | ||||||
|     - _Sampling devices control_: control of which sampling devices is used and add channels |     - _Sampling devices control_: control of which sampling devices is used and add channels | ||||||
|     - _Sampling devices_: the sampling devices UIs |     - _Sampling devices_: the sampling devices UIs | ||||||
|     - _Spectrum display_: the main spectrum displays (output from the sampling devices) |     - _Spectrum control_: the main spectrum displays control | ||||||
|  |     - _Spectrum display_: the main spectrum displays. Note this is not a dockable window but occupies the central widget | ||||||
|     - _Presets_: the saved presets |     - _Presets_: the saved presets | ||||||
|     - _Commands_: the defined commands |     - _Commands_: the defined commands | ||||||
|     - _Channels_: the channels active for each device |     - _Channels_: the channels active for each device | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user