1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2025-02-03 09:44:01 -05:00

Massive UI revamping (v7): make correction to sub windows sizes and placement at the top when loading a configuration

This commit is contained in:
f4exb 2022-04-26 19:44:18 +02:00
parent 9be0776d32
commit 69a66adf88
5 changed files with 31 additions and 9 deletions

View File

@ -107,11 +107,6 @@ bool Configuration::deserialize(const QByteArray& data)
} }
} }
int Configuration::getNumberOfWorkspaces() const
{
return m_workspaceGeometries.size();
}
void Configuration::clearData() void Configuration::clearData()
{ {
m_deviceSetPresets.clear(); m_deviceSetPresets.clear();

View File

@ -47,7 +47,7 @@ public:
void setDescription(const QString& description) { m_description = description; } void setDescription(const QString& description) { m_description = description; }
const QString& getDescription() const { return m_description; } const QString& getDescription() const { return m_description; }
int getNumberOfWorkspaces() const; int getNumberOfWorkspaceGeometries() const { return m_workspaceGeometries.size(); }
QList<QByteArray>& getWorkspaceGeometries() { return m_workspaceGeometries; } QList<QByteArray>& getWorkspaceGeometries() { return m_workspaceGeometries; }
const QList<QByteArray>& getWorkspaceGeometries() const { return m_workspaceGeometries; } const QList<QByteArray>& getWorkspaceGeometries() const { return m_workspaceGeometries; }
FeatureSetPreset& getFeatureSetPreset() { return m_featureSetPreset; } FeatureSetPreset& getFeatureSetPreset() { return m_featureSetPreset; }

View File

@ -25,6 +25,10 @@
#include <QFrame> #include <QFrame>
#include "gui/samplingdevicedialog.h" #include "gui/samplingdevicedialog.h"
#include "device/devicegui.h"
#include "channel/channelgui.h"
#include "mainspectrum/mainspectrumgui.h"
#include "feature/featuregui.h"
#include "workspace.h" #include "workspace.h"
Workspace::Workspace(int index, QWidget *parent, Qt::WindowFlags flags) : Workspace::Workspace(int index, QWidget *parent, Qt::WindowFlags flags) :
@ -313,3 +317,23 @@ void Workspace::restoreMdiGeometry(const QByteArray& blob)
{ {
m_mdi->restoreGeometry(qUncompress(blob)); m_mdi->restoreGeometry(qUncompress(blob));
} }
void Workspace::adjustSubWindowsAfterRestore()
{
QList<QMdiSubWindow *> subWindowList = m_mdi->subWindowList();
for (auto& subWindow : subWindowList)
{
if ((subWindow->y() >= 20) && (subWindow->y() < 40)) {
subWindow->move(subWindow->x(), subWindow->y() - 20);
}
if (qobject_cast<ChannelGUI*>(subWindow)) {
subWindow->resize(subWindow->width(), subWindow->height() - 22);
}
if (qobject_cast<FeatureGUI*>(subWindow)) {
subWindow->resize(subWindow->width(), subWindow->height() - 8);
}
}
}

View File

@ -49,6 +49,7 @@ public:
QByteArray saveMdiGeometry(); QByteArray saveMdiGeometry();
void restoreMdiGeometry(const QByteArray& blob); void restoreMdiGeometry(const QByteArray& blob);
QList<QMdiSubWindow *> getSubWindowList() const; QList<QMdiSubWindow *> getSubWindowList() const;
void adjustSubWindowsAfterRestore();
private: private:
int m_index; int m_index;

View File

@ -1173,7 +1173,7 @@ void MainWindow::loadConfiguration(const Configuration *configuration, bool from
qDebug("MainWindow::loadConfiguration: configuration [%s | %s] %d workspace(s) - %d device set(s) - %d feature(s)", qDebug("MainWindow::loadConfiguration: configuration [%s | %s] %d workspace(s) - %d device set(s) - %d feature(s)",
qPrintable(configuration->getGroup()), qPrintable(configuration->getGroup()),
qPrintable(configuration->getDescription()), qPrintable(configuration->getDescription()),
configuration->getNumberOfWorkspaces(), configuration->getNumberOfWorkspaceGeometries(),
configuration->getDeviceSetPresets().size(), configuration->getDeviceSetPresets().size(),
configuration->getFeatureSetPreset().getFeatureCount() configuration->getFeatureSetPreset().getFeatureCount()
); );
@ -1210,7 +1210,7 @@ void MainWindow::loadConfiguration(const Configuration *configuration, bool from
// Reconstruct // Reconstruct
// Workspaces // Workspaces
for (int i = 0; i < configuration->getNumberOfWorkspaces(); i++) { for (int i = 0; i < configuration->getNumberOfWorkspaceGeometries(); i++) {
addWorkspace(); addWorkspace();
} }
@ -1321,8 +1321,10 @@ void MainWindow::loadConfiguration(const Configuration *configuration, bool from
waitBox->setInformativeText("Finalizing..."); waitBox->setInformativeText("Finalizing...");
} }
for (int i = 0; i < configuration->getNumberOfWorkspaces(); i++) { for (int i = 0; i < configuration->getNumberOfWorkspaceGeometries(); i++)
{
m_workspaces[i]->restoreGeometry(configuration->getWorkspaceGeometries()[i]); m_workspaces[i]->restoreGeometry(configuration->getWorkspaceGeometries()[i]);
m_workspaces[i]->adjustSubWindowsAfterRestore();
} }
if (waitBox) if (waitBox)