diff options
Diffstat (limited to 'Swift/QtUI')
-rw-r--r-- | Swift/QtUI/QtProfileWindow.cpp | 11 | ||||
-rw-r--r-- | Swift/QtUI/QtProfileWindow.ui | 2 | ||||
-rw-r--r-- | Swift/QtUI/QtVCardWidget/QtVCardWidget.cpp | 29 | ||||
-rw-r--r-- | Swift/QtUI/QtVCardWidget/QtVCardWidget.h | 3 | ||||
-rw-r--r-- | Swift/QtUI/QtVCardWidget/QtVCardWidget.ui | 45 |
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> |