1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2024-11-29 03:09:14 -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()
{
m_deviceSetPresets.clear();

View File

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

View File

@ -25,6 +25,10 @@
#include <QFrame>
#include "gui/samplingdevicedialog.h"
#include "device/devicegui.h"
#include "channel/channelgui.h"
#include "mainspectrum/mainspectrumgui.h"
#include "feature/featuregui.h"
#include "workspace.h"
Workspace::Workspace(int index, QWidget *parent, Qt::WindowFlags flags) :
@ -313,3 +317,23 @@ void Workspace::restoreMdiGeometry(const QByteArray& 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();
void restoreMdiGeometry(const QByteArray& blob);
QList<QMdiSubWindow *> getSubWindowList() const;
void adjustSubWindowsAfterRestore();
private:
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)",
qPrintable(configuration->getGroup()),
qPrintable(configuration->getDescription()),
configuration->getNumberOfWorkspaces(),
configuration->getNumberOfWorkspaceGeometries(),
configuration->getDeviceSetPresets().size(),
configuration->getFeatureSetPreset().getFeatureCount()
);
@ -1210,7 +1210,7 @@ void MainWindow::loadConfiguration(const Configuration *configuration, bool from
// Reconstruct
// Workspaces
for (int i = 0; i < configuration->getNumberOfWorkspaces(); i++) {
for (int i = 0; i < configuration->getNumberOfWorkspaceGeometries(); i++) {
addWorkspace();
}
@ -1321,8 +1321,10 @@ void MainWindow::loadConfiguration(const Configuration *configuration, bool from
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]->adjustSubWindowsAfterRestore();
}
if (waitBox)