Change in plasma-framework[master]: Simplify code flow
David Edmundson (Code Review)
noreply at kde.org
Fri Mar 13 07:58:59 UTC 2015
David Edmundson has uploaded a new change for review.
https://gerrit.vesnicky.cesnet.cz/r/419
Change subject: Simplify code flow
......................................................................
Simplify code flow
return immediately rather than wrapping an entire function inside an if
Change-Id: Ic5046875ad39795248496a0d71f77b1e476058c4
---
M src/plasmaquick/dialog.cpp
1 file changed, 59 insertions(+), 57 deletions(-)
git pull ssh://gerrit.vesnicky.cesnet.cz:29418/plasma-framework refs/changes/19/419/1
diff --git a/src/plasmaquick/dialog.cpp b/src/plasmaquick/dialog.cpp
index 097cc31..34e5424 100644
--- a/src/plasmaquick/dialog.cpp
+++ b/src/plasmaquick/dialog.cpp
@@ -692,64 +692,66 @@
void Dialog::setMainItem(QQuickItem *mainItem)
{
- if (d->mainItem != mainItem) {
- disconnect(d->mainItem, 0, this, 0);
- disconnect(d->mainItemLayout, 0, this, 0);
-
- d->hintsCommitTimer.stop();
- if (d->mainItem) {
- d->mainItem->setVisible(false);
- }
-
- d->mainItem = mainItem;
-
- if (mainItem) {
- d->mainItem->setVisible(isVisible());
- mainItem->setParentItem(contentItem());
-
- connect(mainItem, SIGNAL(widthChanged()), this, SLOT(slotMainItemSizeChanged()));
- connect(mainItem, SIGNAL(heightChanged()), this, SLOT(slotMainItemSizeChanged()));
- d->slotMainItemSizeChanged();
-
- //Extract the representation's Layout, if any
- QObject *layout = 0;
- setMinimumSize(QSize(0, 0));
- setMaximumSize(QSize(DIALOGSIZE_MAX, DIALOGSIZE_MAX));
-
- //Search a child that has the needed Layout properties
- //HACK: here we are not type safe, but is the only way to access to a pointer of Layout
- foreach (QObject *child, mainItem->children()) {
- //find for the needed property of Layout: minimum/maximum/preferred sizes and fillWidth/fillHeight
- if (child->property("minimumWidth").isValid() && child->property("minimumHeight").isValid() &&
- child->property("preferredWidth").isValid() && child->property("preferredHeight").isValid() &&
- child->property("maximumWidth").isValid() && child->property("maximumHeight").isValid() &&
- child->property("fillWidth").isValid() && child->property("fillHeight").isValid()
- ) {
- layout = child;
- }
- }
- if (d->mainItemLayout) {
- disconnect(d->mainItemLayout, 0, this, 0);
- }
- d->mainItemLayout = layout;
-
- if (layout) {
- //Why queued connections?
- //we need to be sure that the properties are
- //already *all* updated when we call the management code
- connect(layout, SIGNAL(minimumWidthChanged()), this, SLOT(updateMinimumWidth()));
- connect(layout, SIGNAL(minimumHeightChanged()), this, SLOT(updateMinimumHeight()));
- connect(layout, SIGNAL(maximumWidthChanged()), this, SLOT(updateMaximumWidth()));
- connect(layout, SIGNAL(maximumHeightChanged()), this, SLOT(updateMaximumHeight()));
-
- d->updateLayoutParameters();
- }
-
- }
-
- //if this is called in Component.onCompleted we have to wait a loop the item is added to a scene
- emit mainItemChanged();
+ if (d->mainItem == mainItem) {
+ return;
}
+
+ disconnect(d->mainItem, 0, this, 0);
+ disconnect(d->mainItemLayout, 0, this, 0);
+
+ d->hintsCommitTimer.stop();
+ if (d->mainItem) {
+ d->mainItem->setVisible(false);
+ }
+
+ d->mainItem = mainItem;
+
+ if (mainItem) {
+ d->mainItem->setVisible(isVisible());
+ mainItem->setParentItem(contentItem());
+
+ connect(mainItem, SIGNAL(widthChanged()), this, SLOT(slotMainItemSizeChanged()));
+ connect(mainItem, SIGNAL(heightChanged()), this, SLOT(slotMainItemSizeChanged()));
+ d->slotMainItemSizeChanged();
+
+ //Extract the representation's Layout, if any
+ QObject *layout = 0;
+ setMinimumSize(QSize(0, 0));
+ setMaximumSize(QSize(DIALOGSIZE_MAX, DIALOGSIZE_MAX));
+
+ //Search a child that has the needed Layout properties
+ //HACK: here we are not type safe, but is the only way to access to a pointer of Layout
+ foreach (QObject *child, mainItem->children()) {
+ //find for the needed property of Layout: minimum/maximum/preferred sizes and fillWidth/fillHeight
+ if (child->property("minimumWidth").isValid() && child->property("minimumHeight").isValid() &&
+ child->property("preferredWidth").isValid() && child->property("preferredHeight").isValid() &&
+ child->property("maximumWidth").isValid() && child->property("maximumHeight").isValid() &&
+ child->property("fillWidth").isValid() && child->property("fillHeight").isValid()
+ ) {
+ layout = child;
+ }
+ }
+ if (d->mainItemLayout) {
+ disconnect(d->mainItemLayout, 0, this, 0);
+ }
+ d->mainItemLayout = layout;
+
+ if (layout) {
+ //Why queued connections?
+ //we need to be sure that the properties are
+ //already *all* updated when we call the management code
+ connect(layout, SIGNAL(minimumWidthChanged()), this, SLOT(updateMinimumWidth()));
+ connect(layout, SIGNAL(minimumHeightChanged()), this, SLOT(updateMinimumHeight()));
+ connect(layout, SIGNAL(maximumWidthChanged()), this, SLOT(updateMaximumWidth()));
+ connect(layout, SIGNAL(maximumHeightChanged()), this, SLOT(updateMaximumHeight()));
+
+ d->updateLayoutParameters();
+ }
+
+ }
+
+ //if this is called in Component.onCompleted we have to wait a loop the item is added to a scene
+ emit mainItemChanged();
}
void DialogPrivate::slotMainItemSizeChanged()
--
To view, visit https://gerrit.vesnicky.cesnet.cz/r/419
To unsubscribe, visit https://gerrit.vesnicky.cesnet.cz/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic5046875ad39795248496a0d71f77b1e476058c4
Gerrit-PatchSet: 1
Gerrit-Project: plasma-framework
Gerrit-Branch: master
Gerrit-Owner: David Edmundson <david at davidedmundson.co.uk>
Gerrit-Reviewer: Kevin Ottens <ervin at kde.org>
Gerrit-Reviewer: Marco Martin <notmart at gmail.com>
Gerrit-Reviewer: Vishesh Handa <me at vhanda.in>
More information about the Plasma-devel
mailing list