Handled positioning of the target package widget in the container, instead of within the widget itself

This commit is contained in:
Nav
2021-09-26 18:18:12 +01:00
parent 73d422ebd5
commit 3a12395515
7 changed files with 76 additions and 4 deletions

View File

@@ -139,6 +139,7 @@ add_executable(Bloom
src/Insight/InsightWorker/Tasks/SetTargetPinState.cpp
# Target package widgets
src/Insight/UserInterfaces/InsightWindow/Widgets/TargetWidgets/TargetPackageWidgetContainer.cpp
src/Insight/UserInterfaces/InsightWindow/Widgets/TargetWidgets/TargetPackageWidget.cpp
src/Insight/UserInterfaces/InsightWindow/Widgets/TargetWidgets/TargetPinWidget.cpp
src/Insight/UserInterfaces/InsightWindow/Widgets/TargetWidgets/TargetPinBodyWidget.cpp

View File

@@ -64,7 +64,9 @@ InsightWindow::InsightWindow(
+ "/src/Insight/UserInterfaces/InsightWindow/Images/BloomIcon.svg"
)
));
this->ioContainerWidget = this->mainWindowWidget->findChild<QWidget*>("io-container");
this->ioContainerWidget = this->mainWindowWidget->findChild<InsightTargetWidgets::TargetPackageWidgetContainer*>(
"io-container"
);
this->ioUnavailableWidget = this->mainWindowWidget->findChild<QLabel*>("io-inspection-unavailable");
this->mainMenuBar = this->mainWindowWidget->findChild<QMenuBar*>("menu-bar");
@@ -345,6 +347,7 @@ void InsightWindow::selectVariant(const TargetVariant* variant) {
this->targetPackageWidget->hide();
this->targetPackageWidget->deleteLater();
this->targetPackageWidget = nullptr;
this->ioContainerWidget->setPackageWidget(this->targetPackageWidget);
}
this->selectedVariant = variant;
@@ -369,6 +372,7 @@ void InsightWindow::selectVariant(const TargetVariant* variant) {
}
if (this->targetPackageWidget != nullptr) {
this->ioContainerWidget->setPackageWidget(this->targetPackageWidget);
this->targetPackageWidget->setTargetState(this->targetState);
if (this->targetState == TargetState::STOPPED) {
@@ -379,6 +383,13 @@ void InsightWindow::selectVariant(const TargetVariant* variant) {
});
}
this->mainWindowWidget->setMinimumSize(
this->targetPackageWidget->width() + 500,
this->targetPackageWidget->height() + 150
);
this->ioContainerWidget->resize(this->ioContainerWidget->size());
this->targetPackageWidget->show();
}
}

View File

@@ -13,6 +13,7 @@
#include "src/Targets/TargetDescriptor.hpp"
#include "src/Targets/TargetVariant.hpp"
#include "Widgets/TargetWidgets/TargetPackageWidgetContainer.hpp"
#include "Widgets/TargetWidgets/TargetPackageWidget.hpp"
#include "Widgets/TargetRegistersPane/TargetRegistersPaneWidget.hpp"
#include "AboutWindow.hpp"
@@ -48,7 +49,7 @@ namespace Bloom
Widgets::TargetRegistersPaneWidget* targetRegistersSidePane = nullptr;
QToolButton* targetRegistersButton = nullptr;
QWidget* ioContainerWidget = nullptr;
Widgets::InsightTargetWidgets::TargetPackageWidgetContainer* ioContainerWidget = nullptr;
QLabel* ioUnavailableWidget = nullptr;
Widgets::InsightTargetWidgets::TargetPackageWidget* targetPackageWidget = nullptr;

View File

@@ -209,7 +209,7 @@
</widget>
</item>
<item>
<widget class="QWidget" name="io-container">
<widget class="TargetPackageWidgetContainer" name="io-container">
<layout class="QHBoxLayout">
<item alignment="Qt::AlignHCenter">
<widget class="QLabel" name="io-inspection-unavailable">

View File

@@ -8,7 +8,7 @@
#include "Widgets/SvgToolButton.hpp"
#include "Widgets/ExpandingWidget.hpp"
#include "Widgets/ExpandingHeightScrollAreaWidget.hpp"
#include "Widgets/TargetRegistersPane/TargetRegistersPaneWidget.hpp"
#include "Widgets/TargetWidgets/TargetPackageWidgetContainer.hpp"
#include "src/Logger/Logger.hpp"
@@ -71,6 +71,15 @@ UiLoader::UiLoader(QObject* parent): QUiLoader(parent) {
return widget;
}
},
{
"TargetPackageWidgetContainer",
[this](QWidget* parent, const QString& name) {
auto widget = new InsightTargetWidgets::TargetPackageWidgetContainer(parent);
widget->setObjectName(name);
widget->setStyleSheet(parent->styleSheet());
return widget;
}
},
};
}

View File

@@ -0,0 +1,26 @@
#include "TargetPackageWidgetContainer.hpp"
using namespace Bloom;
using namespace Bloom::Widgets::InsightTargetWidgets;
TargetPackageWidgetContainer::TargetPackageWidgetContainer(QWidget* parent): QWidget(parent) {
this->packageWidget = this->findChild<TargetPackageWidget*>();
}
void TargetPackageWidgetContainer::resizeEvent(QResizeEvent* event) {
if (this->packageWidget == nullptr) {
return;
}
const auto packageSize = this->packageWidget->size();
this->packageWidget->setGeometry(
(this->width() / 2) - (packageSize.width() / 2),
(this->height() / 2) - (packageSize.height() / 2),
packageSize.width(),
packageSize.height()
);
}
void TargetPackageWidgetContainer::setPackageWidget(TargetPackageWidget* packageWidget) {
this->packageWidget = packageWidget;
}

View File

@@ -0,0 +1,24 @@
#pragma once
#include <QWidget>
#include <QResizeEvent>
#include "TargetPackageWidget.hpp"
namespace Bloom::Widgets::InsightTargetWidgets
{
class TargetPackageWidgetContainer: public QWidget
{
Q_OBJECT
private:
TargetPackageWidget* packageWidget = nullptr;
protected:
void resizeEvent(QResizeEvent* event) override;
public:
TargetPackageWidgetContainer(QWidget* parent);
void setPackageWidget(TargetPackageWidget* packageWidget);
};
}