diff options
author | Tobias Markmann <tm@ayena.de> | 2013-10-18 11:14:47 (GMT) |
---|---|---|
committer | Swift Review <review@swift.im> | 2013-10-26 15:35:44 (GMT) |
commit | 08289aadf4065e1c404af50e25ed511b2e839fdb (patch) | |
tree | 9dca27a5108406da1f062e20a985861e13db5f2b /Swift/QtUI/QtVCardWidget/QtVCardWidget.cpp | |
parent | c041a9ac96893d64f1b656c9ecb7f03eed1c310f (diff) | |
download | swift-contrib-08289aadf4065e1c404af50e25ed511b2e839fdb.zip swift-contrib-08289aadf4065e1c404af50e25ed511b2e839fdb.tar.bz2 |
VCard: Move 'Add Field' button inside the scroll view.
Change-Id: I1259e6de80a5c8781ba71dad1a52228f37a7ce7e
License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
Diffstat (limited to 'Swift/QtUI/QtVCardWidget/QtVCardWidget.cpp')
-rw-r--r-- | Swift/QtUI/QtVCardWidget/QtVCardWidget.cpp | 29 |
1 files changed, 20 insertions, 9 deletions
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); +} + } |