summaryrefslogtreecommitdiffstats
path: root/src/designer/src/components/taskmenu
diff options
context:
space:
mode:
Diffstat (limited to 'src/designer/src/components/taskmenu')
-rw-r--r--src/designer/src/components/taskmenu/itemlisteditor.cpp41
-rw-r--r--src/designer/src/components/taskmenu/itemlisteditor.h13
-rw-r--r--src/designer/src/components/taskmenu/tablewidgeteditor.cpp19
3 files changed, 58 insertions, 15 deletions
diff --git a/src/designer/src/components/taskmenu/itemlisteditor.cpp b/src/designer/src/components/taskmenu/itemlisteditor.cpp
index 8aca0916d..700cf136c 100644
--- a/src/designer/src/components/taskmenu/itemlisteditor.cpp
+++ b/src/designer/src/components/taskmenu/itemlisteditor.cpp
@@ -116,12 +116,17 @@ static QStringList c2qStringList(const char * const in[])
return out;
}
-void AbstractItemEditor::setupProperties(PropertyDefinition *propList)
+void AbstractItemEditor::setupProperties(const PropertyDefinition *propList,
+ Qt::Alignment alignDefault)
{
for (int i = 0; propList[i].name; i++) {
int type = propList[i].typeFunc ? propList[i].typeFunc() : propList[i].type;
int role = propList[i].role;
QtVariantProperty *prop = m_propertyManager->addProperty(type, QLatin1String(propList[i].name));
+ if (role == Qt::TextAlignmentRole) {
+ prop->setAttribute(DesignerPropertyManager::alignDefaultAttribute(),
+ QVariant(uint(alignDefault)));
+ }
Q_ASSERT(prop);
if (role == Qt::ToolTipPropertyRole || role == Qt::WhatsThisPropertyRole)
prop->setAttribute(QStringLiteral("validationMode"), ValidationRichText);
@@ -148,9 +153,11 @@ void AbstractItemEditor::setupObject(QWidget *object)
m_editorFactory->setFormWindowBase(fwb);
}
-void AbstractItemEditor::setupEditor(QWidget *object, PropertyDefinition *propList)
+void AbstractItemEditor::setupEditor(QWidget *object,
+ const PropertyDefinition *propList,
+ Qt::Alignment alignDefault)
{
- setupProperties(propList);
+ setupProperties(propList, alignDefault);
setupObject(object);
}
@@ -208,6 +215,9 @@ void AbstractItemEditor::resetProperty(QtProperty *property)
if (m_propertyManager->resetIconSubProperty(property))
return;
+ if (m_propertyManager->resetTextAlignmentProperty(property))
+ return;
+
BoolBlocker block(m_updatingBrowser);
QtVariantProperty *prop = m_propertyManager->variantProperty(property);
@@ -243,15 +253,18 @@ void AbstractItemEditor::updateBrowser()
for (QtVariantProperty *prop : qAsConst(m_properties)) {
int role = m_propertyToRole.value(prop);
QVariant val = getItemData(role);
+
+ bool modified = false;
if (!val.isValid()) {
if (role == ItemFlagsShadowRole)
val = QVariant::fromValue(defaultItemFlags());
else
val = QVariant(int(prop->value().userType()), nullptr);
- prop->setModified(false);
} else {
- prop->setModified(true);
+ modified = role != Qt::TextAlignmentRole
+ || val.toUInt() != DesignerPropertyManager::alignDefault(prop);
}
+ prop->setModified(modified);
prop->setValue(val);
}
@@ -296,9 +309,11 @@ ItemListEditor::ItemListEditor(QDesignerFormWindowInterface *form, QWidget *pare
connect(iconCache(), &DesignerIconCache::reloaded, this, &AbstractItemEditor::cacheReloaded);
}
-void ItemListEditor::setupEditor(QWidget *object, PropertyDefinition *propList)
+void ItemListEditor::setupEditor(QWidget *object,
+ const PropertyDefinition *propList,
+ Qt::Alignment alignDefault)
{
- AbstractItemEditor::setupEditor(object, propList);
+ AbstractItemEditor::setupEditor(object, propList, alignDefault);
if (ui.listWidget->count() > 0)
ui.listWidget->setCurrentRow(0);
@@ -319,6 +334,8 @@ void ItemListEditor::on_newListItemButton_clicked()
QListWidgetItem *item = new QListWidgetItem(m_newItemText);
item->setData(Qt::DisplayPropertyRole, QVariant::fromValue(PropertySheetStringValue(m_newItemText)));
+ if (m_alignDefault != 0)
+ item->setTextAlignment(Qt::Alignment(m_alignDefault));
item->setFlags(item->flags() | Qt::ItemIsEditable);
if (row < ui.listWidget->count())
ui.listWidget->insertItem(row, item);
@@ -466,6 +483,16 @@ void ItemListEditor::updateEditor()
else
m_propertyBrowser->clear();
}
+
+uint ItemListEditor::alignDefault() const
+{
+ return m_alignDefault;
+}
+
+void ItemListEditor::setAlignDefault(uint newAlignDefault)
+{
+ m_alignDefault = newAlignDefault;
+}
} // namespace qdesigner_internal
QT_END_NAMESPACE
diff --git a/src/designer/src/components/taskmenu/itemlisteditor.h b/src/designer/src/components/taskmenu/itemlisteditor.h
index 97bcb19d9..c7dee8764 100644
--- a/src/designer/src/components/taskmenu/itemlisteditor.h
+++ b/src/designer/src/components/taskmenu/itemlisteditor.h
@@ -86,9 +86,11 @@ private slots:
protected:
virtual int defaultItemFlags() const = 0;
- void setupProperties(PropertyDefinition *propDefs);
+ void setupProperties(const PropertyDefinition *propList,
+ Qt::Alignment alignDefault = Qt::AlignLeading | Qt::AlignVCenter);
void setupObject(QWidget *object);
- void setupEditor(QWidget *object, PropertyDefinition *propDefs);
+ void setupEditor(QWidget *object, const PropertyDefinition *propDefs,
+ Qt::Alignment alignDefault = Qt::AlignLeading | Qt::AlignVCenter);
void injectPropertyBrowser(QWidget *parent, QWidget *widget);
void updateBrowser();
virtual void setItemData(int role, const QVariant &v) = 0;
@@ -112,12 +114,16 @@ class ItemListEditor: public AbstractItemEditor
public:
explicit ItemListEditor(QDesignerFormWindowInterface *form, QWidget *parent);
- void setupEditor(QWidget *object, PropertyDefinition *propDefs);
+ void setupEditor(QWidget *object, const PropertyDefinition *propDefs,
+ Qt::Alignment alignDefault = Qt::AlignLeading | Qt::AlignVCenter);
QListWidget *listWidget() const { return ui.listWidget; }
void setNewItemText(const QString &tpl) { m_newItemText = tpl; }
QString newItemText() const { return m_newItemText; }
void setCurrentIndex(int idx);
+ uint alignDefault() const;
+ void setAlignDefault(uint newAlignDefault);
+
signals:
void indexChanged(int idx);
void itemChanged(int idx, int role, const QVariant &v);
@@ -145,6 +151,7 @@ private:
void setPropertyBrowserVisible(bool v);
void updateEditor();
Ui::ItemListEditor ui;
+ uint m_alignDefault = 0;
bool m_updating;
QString m_newItemText;
};
diff --git a/src/designer/src/components/taskmenu/tablewidgeteditor.cpp b/src/designer/src/components/taskmenu/tablewidgeteditor.cpp
index b5f41626c..6bf6d9faa 100644
--- a/src/designer/src/components/taskmenu/tablewidgeteditor.cpp
+++ b/src/designer/src/components/taskmenu/tablewidgeteditor.cpp
@@ -51,6 +51,7 @@ TableWidgetEditor::TableWidgetEditor(QDesignerFormWindowInterface *form, QDialog
{
m_columnEditor = new ItemListEditor(form, this);
m_columnEditor->setObjectName(QStringLiteral("columnEditor"));
+ m_columnEditor->setAlignDefault(Qt::AlignCenter);
m_columnEditor->setNewItemText(tr("New Column"));
m_rowEditor = new ItemListEditor(form, this);
m_rowEditor->setObjectName(QStringLiteral("rowEditor"));
@@ -136,11 +137,19 @@ TableWidgetContents TableWidgetEditor::fillContentsFromTableWidget(QTableWidget
tblCont.fromTableWidget(tableWidget, false);
tblCont.applyToTableWidget(ui.tableWidget, iconCache(), true);
- tblCont.m_verticalHeader.applyToListWidget(m_rowEditor->listWidget(), iconCache(), true);
- m_rowEditor->setupEditor(tableWidget, tableHeaderPropList);
-
- tblCont.m_horizontalHeader.applyToListWidget(m_columnEditor->listWidget(), iconCache(), true);
- m_columnEditor->setupEditor(tableWidget, tableHeaderPropList);
+ auto *header = tableWidget->verticalHeader();
+ auto headerAlignment = header != nullptr
+ ? header->defaultAlignment() : Qt::Alignment(Qt::AlignLeading | Qt::AlignVCenter);
+ tblCont.m_verticalHeader.applyToListWidget(m_rowEditor->listWidget(), iconCache(),
+ true, headerAlignment);
+ m_rowEditor->setupEditor(tableWidget, tableHeaderPropList, headerAlignment);
+
+ header = tableWidget->horizontalHeader();
+ headerAlignment = header != nullptr
+ ? header->defaultAlignment() : Qt::Alignment(Qt::AlignCenter);
+ tblCont.m_horizontalHeader.applyToListWidget(m_columnEditor->listWidget(), iconCache(),
+ true, headerAlignment);
+ m_columnEditor->setupEditor(tableWidget, tableHeaderPropList, headerAlignment);
setupEditor(tableWidget, tableItemPropList);
if (ui.tableWidget->columnCount() > 0 && ui.tableWidget->rowCount() > 0)