refactoring qad widgets part 2

c++ cast, nullptr, forward declaration, agregate ui, connect to member functions, order and clear includes
This commit is contained in:
2022-12-12 10:18:34 +03:00
parent 728c132f2b
commit 4497123421
23 changed files with 837 additions and 500 deletions

View File

@@ -1,4 +1,5 @@
#include "propertystorage_editor.h"
#include "propertystorage.h"
#include "qvariantedit.h"
#include <QGridLayout>
#include <QToolButton>
@@ -7,7 +8,7 @@
PropertyStorageEditor::PropertyStorageEditor(QWidget * parent): QWidget(parent) {
setLayout(new QGridLayout());
layout()->setContentsMargins(0, 0, 0, 0);
storage = 0;
storage = nullptr;
}
@@ -23,7 +24,7 @@ void PropertyStorageEditor::clear() {
bool PropertyStorageEditor::isEmpty() const {
return ((QGridLayout*)layout())->count() == 0;
return static_cast<QGridLayout*>(layout())->count() == 0;
}
@@ -32,13 +33,13 @@ void PropertyStorageEditor::setStorage(PropertyStorage * s) {
storage = s;
if (!storage) return;
int r = 0;
QGridLayout * layoutProps = (QGridLayout*)layout();
foreach (const PropertyStorage::Property & p, *storage) {
QLabel * lbl = new QLabel(p.name);
auto layoutProps = static_cast<QGridLayout*>(layout());
for (const PropertyStorage::Property & p : *storage) {
auto lbl = new QLabel(p.name);
_widgets << lbl;
lbl->setAlignment(Qt::AlignVCenter | Qt::AlignRight);
layoutProps->addWidget(lbl, r, 0);
QVariantEdit * ve = new QVariantEdit();
auto ve = new QVariantEdit();
ve->setValue(p.value);
ve->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
ve->setMinimumWidth(50);
@@ -54,12 +55,16 @@ void PropertyStorageEditor::setStorage(PropertyStorage * s) {
void PropertyStorageEditor::applyProperties() {
if (!storage) return;
QList<PropertyStorage::Property> & props(storage->properties());
QGridLayout * layoutProps = (QGridLayout*)layout();
auto layoutProps = static_cast<QGridLayout*>(layout());
for (int r = 0; r < layoutProps->rowCount(); ++r) {
if (layoutProps->itemAtPosition(r, 0) == 0 || layoutProps->itemAtPosition(r, 1) == 0) continue;
if (layoutProps->itemAtPosition(r, 0) == nullptr || layoutProps->itemAtPosition(r, 1) == nullptr) {
continue;
}
QLabel * lbl = qobject_cast<QLabel * >(layoutProps->itemAtPosition(r, 0)->widget());
QVariantEdit * ve = qobject_cast<QVariantEdit * >(layoutProps->itemAtPosition(r, 1)->widget());
if (lbl == 0 || ve == 0) continue;
if (lbl == nullptr || ve == nullptr) {
continue;
}
QString pn = lbl->text();
for (int i = 0; i < props.size(); ++i) {
PropertyStorage::Property & p(props[i]);