summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swift/QtUI/QtVCardWidget/QtVCardWidget.cpp')
-rw-r--r--Swift/QtUI/QtVCardWidget/QtVCardWidget.cpp29
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);
+}
+
}