summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Swift/QtUI/QtProfileWindow.cpp11
-rw-r--r--Swift/QtUI/QtProfileWindow.ui2
-rw-r--r--Swift/QtUI/QtVCardWidget/QtVCardWidget.cpp29
-rw-r--r--Swift/QtUI/QtVCardWidget/QtVCardWidget.h3
-rw-r--r--Swift/QtUI/QtVCardWidget/QtVCardWidget.ui45
5 files changed, 51 insertions, 39 deletions
diff --git a/Swift/QtUI/QtProfileWindow.cpp b/Swift/QtUI/QtProfileWindow.cpp
index b1cdd19..d0d1414 100644
--- a/Swift/QtUI/QtProfileWindow.cpp
+++ b/Swift/QtUI/QtProfileWindow.cpp
@@ -54,11 +54,8 @@ void QtProfileWindow::setEnabled(bool b) {
void QtProfileWindow::setEditable(bool b) {
- if (b) {
- ui->savePushButton->show();
- ui->vcard->setEditable(true);
- } else {
- ui->savePushButton->hide();
- ui->vcard->setEditable(false);
- }
+ ui->throbberLabel->setVisible(b);
+ ui->errorLabel->setVisible(b);
+ ui->savePushButton->setVisible(b);
+ ui->vcard->setEditable(b);
updateTitle();
}
diff --git a/Swift/QtUI/QtProfileWindow.ui b/Swift/QtUI/QtProfileWindow.ui
index 68a36da..9394dc5 100644
--- a/Swift/QtUI/QtProfileWindow.ui
+++ b/Swift/QtUI/QtProfileWindow.ui
@@ -34,5 +34,5 @@
<size>
<width>40</width>
- <height>20</height>
+ <height>0</height>
</size>
</property>
diff --git a/Swift/QtUI/QtVCardWidget/QtVCardWidget.cpp b/Swift/QtUI/QtVCardWidget/QtVCardWidget.cpp
index ee3ef96..d681fe9 100644
--- a/Swift/QtUI/QtVCardWidget/QtVCardWidget.cpp
+++ b/Swift/QtUI/QtVCardWidget/QtVCardWidget.cpp
@@ -40,5 +40,11 @@ QtVCardWidget::QtVCardWidget(QWidget* parent) :
menu = new QMenu(this);
- ui->toolButton->setMenu(menu);
+ toolButton = new QToolButton(this);
+ toolButton->setText(tr("Add Field"));
+ toolButton->setArrowType(Qt::NoArrow);
+ toolButton->setAutoRaise(false);
+ toolButton->setPopupMode(QToolButton::InstantPopup);
+ toolButton->hide();
+ toolButton->setMenu(menu);
addFieldType(menu, boost::make_shared<QtVCardInternetEMailField::FieldInfo>());
@@ -73,12 +79,5 @@ void QtVCardWidget::setEditable(bool editable) {
field->setEditable(editable);
}
-
- if (editable) {
- ui->toolButton->show();
- //if ((findChild<QtVCardBirthdayField*>() == 0)) {
- //}
- } else {
- ui->toolButton->hide();
- }
+ toolButton->setVisible(editable);
editableChanged(editable);
@@ -176,4 +175,5 @@ void QtVCardWidget::setVCard(VCard::ref vcard) {
}
+ relayoutToolButton();
setEditable(editable);
window()->resize(sizeHint().width(), size().height() < 200 ? 200 : size().height());
@@ -295,4 +295,5 @@ void QtVCardWidget::addField() {
}
appendField(newGeneralField);
+ relayoutToolButton();
}
}
@@ -304,4 +305,5 @@ void QtVCardWidget::removeField(QtVCardGeneralField *field) {
void QtVCardWidget::addFieldType(QMenu* menu, boost::shared_ptr<QtVCardFieldInfo> fieldType) {
+ if (!fieldType->getMenuName().isEmpty()) {
QAction* action = new QAction(tr("Add ") + fieldType->getMenuName(), this);
actionFieldInfo[action] = fieldType;
@@ -309,4 +311,5 @@ void QtVCardWidget::addFieldType(QMenu* menu, boost::shared_ptr<QtVCardFieldInfo
menu->addAction(action);
}
+}
int QtVCardWidget::fieldTypeInstances(boost::shared_ptr<QtVCardFieldInfo> fieldType) {
@@ -325,4 +328,8 @@ void layoutDeleteChildren(QLayout *layout) {
layoutDeleteChildren(child->layout());
}
+ if (dynamic_cast<QToolButton*>(child->widget())) {
+ delete child;
+ break;
+ }
delete child->widget();
delete child;
@@ -361,3 +368,7 @@ void QtVCardWidget::appendField(QtVCardGeneralField *field) {
}
+void QtVCardWidget::relayoutToolButton() {
+ ui->cardFields->addWidget(toolButton, ui->cardFields->rowCount(), ui->cardFields->columnCount()-2, 1, 1, Qt::AlignRight);
+}
+
}
diff --git a/Swift/QtUI/QtVCardWidget/QtVCardWidget.h b/Swift/QtUI/QtVCardWidget/QtVCardWidget.h
index 07f528d..29ed499 100644
--- a/Swift/QtUI/QtVCardWidget/QtVCardWidget.h
+++ b/Swift/QtUI/QtVCardWidget/QtVCardWidget.h
@@ -8,4 +8,5 @@
#include <QWidget>
+#include <QToolButton>
#include <Swiften/Elements/VCard.h>
#include <boost/smart_ptr/make_shared.hpp>
@@ -48,8 +49,10 @@ namespace Swift {
void clearEmptyFields();
void appendField(QtVCardGeneralField* field);
+ void relayoutToolButton();
private:
VCard::ref vcard;
Ui::QtVCardWidget* ui;
+ QToolButton* toolButton;
bool editable;
QMenu* menu;
diff --git a/Swift/QtUI/QtVCardWidget/QtVCardWidget.ui b/Swift/QtUI/QtVCardWidget/QtVCardWidget.ui
index eae1006..4fc8605 100644
--- a/Swift/QtUI/QtVCardWidget/QtVCardWidget.ui
+++ b/Swift/QtUI/QtVCardWidget/QtVCardWidget.ui
@@ -14,6 +14,15 @@
<string>Form</string>
</property>
- <layout class="QGridLayout" name="gridLayout" rowstretch="1,0" columnstretch="1,0">
- <property name="margin">
+ <layout class="QGridLayout" name="gridLayout" rowstretch="1" columnstretch="1,0">
+ <property name="leftMargin">
+ <number>5</number>
+ </property>
+ <property name="topMargin">
+ <number>5</number>
+ </property>
+ <property name="rightMargin">
+ <number>5</number>
+ </property>
+ <property name="bottomMargin">
<number>5</number>
</property>
@@ -65,5 +74,5 @@
<y>0</y>
<width>523</width>
- <height>76</height>
+ <height>110</height>
</rect>
</property>
@@ -78,10 +87,18 @@
<enum>QLayout::SetMinAndMaxSize</enum>
</property>
- <property name="margin">
+ <property name="leftMargin">
+ <number>0</number>
+ </property>
+ <property name="topMargin">
+ <number>0</number>
+ </property>
+ <property name="rightMargin">
+ <number>0</number>
+ </property>
+ <property name="bottomMargin">
<number>0</number>
</property>
<item>
- <layout class="QGridLayout" name="cardFields">
- </layout>
+ <layout class="QGridLayout" name="cardFields"/>
</item>
<item>
@@ -107,20 +124,4 @@
</layout>
</item>
- <item row="1" column="1">
- <widget class="QToolButton" name="toolButton">
- <property name="text">
- <string>Add Field</string>
- </property>
- <property name="popupMode">
- <enum>QToolButton::InstantPopup</enum>
- </property>
- <property name="autoRaise">
- <bool>false</bool>
- </property>
- <property name="arrowType">
- <enum>Qt::NoArrow</enum>
- </property>
- </widget>
- </item>
</layout>
</widget>