diff options
author | Tobias Markmann <tm@ayena.de> | 2016-03-31 14:57:35 (GMT) |
---|---|---|
committer | Tobias Markmann <tm@ayena.de> | 2016-03-31 14:57:35 (GMT) |
commit | cfbdb43d2cadd40aa87338d41548e4bf89e146e6 (patch) | |
tree | 18d94153a302445196fc0c18586abf44a1ce4a38 /Swift/QtUI/QtVCardWidget | |
parent | 1d545a4a7fb877f021508094b88c1f17b30d8b4e (diff) | |
download | swift-cfbdb43d2cadd40aa87338d41548e4bf89e146e6.zip swift-cfbdb43d2cadd40aa87338d41548e4bf89e146e6.tar.bz2 |
Convert tabs to 4 spaces for all source files
Removed trailing spaces and whitespace on empty lines
in the process.
Changed CheckTabs.py tool to disallow hard tabs in source
files.
Test-Information:
Manually checked 30 random files that the conversion worked
as expected.
Change-Id: I874f99d617bd3d2bb55f02d58f22f58f9b094480
Diffstat (limited to 'Swift/QtUI/QtVCardWidget')
39 files changed, 1502 insertions, 1502 deletions
diff --git a/Swift/QtUI/QtVCardWidget/QtCloseButton.cpp b/Swift/QtUI/QtVCardWidget/QtCloseButton.cpp index 9d79859..ec7941c 100644 --- a/Swift/QtUI/QtVCardWidget/QtCloseButton.cpp +++ b/Swift/QtUI/QtVCardWidget/QtCloseButton.cpp @@ -24,28 +24,28 @@ QtCloseButton::QtCloseButton(QWidget *parent) : QAbstractButton(parent) { } QSize QtCloseButton::sizeHint() const { - return QSize(style()->pixelMetric(QStyle::PM_TabCloseIndicatorWidth, 0, 0), style()->pixelMetric(QStyle::PM_TabCloseIndicatorHeight, 0, 0)); + return QSize(style()->pixelMetric(QStyle::PM_TabCloseIndicatorWidth, 0, 0), style()->pixelMetric(QStyle::PM_TabCloseIndicatorHeight, 0, 0)); } bool QtCloseButton::event(QEvent *e) { - if (e->type() == QEvent::Enter || e->type() == QEvent::Leave) { - update(); - } - return QAbstractButton::event(e); + if (e->type() == QEvent::Enter || e->type() == QEvent::Leave) { + update(); + } + return QAbstractButton::event(e); } void QtCloseButton::paintEvent(QPaintEvent *) { - QPainter painter(this); - painter.setRenderHint(QPainter::HighQualityAntialiasing); - QStyleOption opt; - opt.init(this); - opt.state |= QStyle::State_AutoRaise; - if (underMouse() && !isDown()) { - opt.state |= QStyle::State_Raised; - } else if (isDown()) { - opt.state |= QStyle::State_Sunken; - } - style()->drawPrimitive(QStyle::PE_IndicatorTabClose, &opt, &painter, this); + QPainter painter(this); + painter.setRenderHint(QPainter::HighQualityAntialiasing); + QStyleOption opt; + opt.init(this); + opt.state |= QStyle::State_AutoRaise; + if (underMouse() && !isDown()) { + opt.state |= QStyle::State_Raised; + } else if (isDown()) { + opt.state |= QStyle::State_Sunken; + } + style()->drawPrimitive(QStyle::PE_IndicatorTabClose, &opt, &painter, this); } } diff --git a/Swift/QtUI/QtVCardWidget/QtCloseButton.h b/Swift/QtUI/QtVCardWidget/QtCloseButton.h index cb92e12..1ba31a0 100644 --- a/Swift/QtUI/QtVCardWidget/QtCloseButton.h +++ b/Swift/QtUI/QtVCardWidget/QtCloseButton.h @@ -10,15 +10,15 @@ namespace Swift { - class QtCloseButton : public QAbstractButton { - Q_OBJECT - public: - explicit QtCloseButton(QWidget *parent = 0); - virtual QSize sizeHint() const; + class QtCloseButton : public QAbstractButton { + Q_OBJECT + public: + explicit QtCloseButton(QWidget *parent = 0); + virtual QSize sizeHint() const; - protected: - virtual bool event(QEvent *e); - virtual void paintEvent(QPaintEvent* ); - }; + protected: + virtual bool event(QEvent *e); + virtual void paintEvent(QPaintEvent* ); + }; } diff --git a/Swift/QtUI/QtVCardWidget/QtRemovableItemDelegate.cpp b/Swift/QtUI/QtVCardWidget/QtRemovableItemDelegate.cpp index 73575f6..67c79a9 100644 --- a/Swift/QtUI/QtVCardWidget/QtRemovableItemDelegate.cpp +++ b/Swift/QtUI/QtVCardWidget/QtRemovableItemDelegate.cpp @@ -24,42 +24,42 @@ QtRemovableItemDelegate::QtRemovableItemDelegate(const QStyle* style) : style(st } void QtRemovableItemDelegate::paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const { - QStyleOption opt; - opt.state = option.state; - opt.state |= QStyle::State_AutoRaise; - if (option.state.testFlag(QStyle::State_MouseOver)) { - opt.state |= QStyle::State_Raised; - } - opt.rect = option.rect; - painter->save(); - painter->fillRect(option.rect, option.state & QStyle::State_Selected ? option.palette.highlight() : option.palette.base()); - if (index.data().toString().isEmpty()) { + QStyleOption opt; + opt.state = option.state; + opt.state |= QStyle::State_AutoRaise; + if (option.state.testFlag(QStyle::State_MouseOver)) { + opt.state |= QStyle::State_Raised; + } + opt.rect = option.rect; + painter->save(); + painter->fillRect(option.rect, option.state & QStyle::State_Selected ? option.palette.highlight() : option.palette.base()); + if (index.data().toString().isEmpty()) { #ifdef SWIFTEN_PLATFORM_MACOSX - // workaround for Qt not painting relative to the cell we're in, on OS X - int height = style->pixelMetric(QStyle::PM_TabCloseIndicatorWidth, 0, 0); - painter->translate(option.rect.x(), option.rect.y() + (option.rect.height() - height)/2); + // workaround for Qt not painting relative to the cell we're in, on OS X + int height = style->pixelMetric(QStyle::PM_TabCloseIndicatorWidth, 0, 0); + painter->translate(option.rect.x(), option.rect.y() + (option.rect.height() - height)/2); #endif - style->drawPrimitive(QStyle::PE_IndicatorTabClose, &opt, painter); - } - painter->restore(); + style->drawPrimitive(QStyle::PE_IndicatorTabClose, &opt, painter); + } + painter->restore(); } QWidget* QtRemovableItemDelegate::createEditor(QWidget*, const QStyleOptionViewItem&, const QModelIndex&) const { - return NULL; + return NULL; } bool QtRemovableItemDelegate::editorEvent(QEvent* event, QAbstractItemModel* model, const QStyleOptionViewItem& option, const QModelIndex& index) { - if (index.data().toString().isEmpty() && event->type() == QEvent::MouseButtonRelease) { - model->removeRow(index.row()); - return true; - } else { - return QItemDelegate::editorEvent(event, model, option, index); - } + if (index.data().toString().isEmpty() && event->type() == QEvent::MouseButtonRelease) { + model->removeRow(index.row()); + return true; + } else { + return QItemDelegate::editorEvent(event, model, option, index); + } } QSize QtRemovableItemDelegate::sizeHint(const QStyleOptionViewItem&, const QModelIndex&) const { - QSize size(style->pixelMetric(QStyle::PM_TabCloseIndicatorWidth, 0, 0) + 2, style->pixelMetric(QStyle::PM_TabCloseIndicatorHeight, 0, 0) + 2); - return size; + QSize size(style->pixelMetric(QStyle::PM_TabCloseIndicatorWidth, 0, 0) + 2, style->pixelMetric(QStyle::PM_TabCloseIndicatorHeight, 0, 0) + 2); + return size; } } diff --git a/Swift/QtUI/QtVCardWidget/QtRemovableItemDelegate.h b/Swift/QtUI/QtVCardWidget/QtRemovableItemDelegate.h index 75137e1..ea9e0b2 100644 --- a/Swift/QtUI/QtVCardWidget/QtRemovableItemDelegate.h +++ b/Swift/QtUI/QtVCardWidget/QtRemovableItemDelegate.h @@ -11,18 +11,18 @@ namespace Swift { class QtRemovableItemDelegate : public QItemDelegate { - public: - QtRemovableItemDelegate(const QStyle* style); + public: + QtRemovableItemDelegate(const QStyle* style); - virtual void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex&) const; - virtual QWidget* createEditor(QWidget*, const QStyleOptionViewItem&, const QModelIndex&) const; - virtual QSize sizeHint(const QStyleOptionViewItem&, const QModelIndex&) const; + virtual void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex&) const; + virtual QWidget* createEditor(QWidget*, const QStyleOptionViewItem&, const QModelIndex&) const; + virtual QSize sizeHint(const QStyleOptionViewItem&, const QModelIndex&) const; - protected: - virtual bool editorEvent(QEvent* event, QAbstractItemModel* model, const QStyleOptionViewItem& option, const QModelIndex& index); + protected: + virtual bool editorEvent(QEvent* event, QAbstractItemModel* model, const QStyleOptionViewItem& option, const QModelIndex& index); - private: - const QStyle* style; + private: + const QStyle* style; }; } diff --git a/Swift/QtUI/QtVCardWidget/QtResizableLineEdit.cpp b/Swift/QtUI/QtVCardWidget/QtResizableLineEdit.cpp index 3492cb9..9eef970 100644 --- a/Swift/QtUI/QtVCardWidget/QtResizableLineEdit.cpp +++ b/Swift/QtUI/QtVCardWidget/QtResizableLineEdit.cpp @@ -16,43 +16,43 @@ namespace Swift { QtResizableLineEdit::QtResizableLineEdit(QWidget* parent) : - QLineEdit(parent), editable(false) { - connect(this, SIGNAL(textChanged(QString)), SLOT(textChanged(QString))); - setMinimumWidth(30); + QLineEdit(parent), editable(false) { + connect(this, SIGNAL(textChanged(QString)), SLOT(textChanged(QString))); + setMinimumWidth(30); } QtResizableLineEdit::~QtResizableLineEdit() { } bool QtResizableLineEdit::isEditable() const { - return editable; + return editable; } void QtResizableLineEdit::setEditable(const bool editable) { - this->editable = editable; - if (editable) { - setReadOnly(false); - } else { - setReadOnly(true); - } + this->editable = editable; + if (editable) { + setReadOnly(false); + } else { + setReadOnly(true); + } } QSize QtResizableLineEdit::sizeHint() const { - int horizontalMargin = 10; - int verticalMargin = 6; - QSize textDimensions; + int horizontalMargin = 10; + int verticalMargin = 6; + QSize textDimensions; #if QT_VERSION >= 0x040700 - textDimensions = fontMetrics().boundingRect(text().isEmpty() ? placeholderText() : text()).size(); + textDimensions = fontMetrics().boundingRect(text().isEmpty() ? placeholderText() : text()).size(); #else - textDimensions = fontMetrics().boundingRect(text().isEmpty() ? QString(" ") : text()).size(); + textDimensions = fontMetrics().boundingRect(text().isEmpty() ? QString(" ") : text()).size(); #endif - textDimensions.setWidth(textDimensions.width() + horizontalMargin); - textDimensions.setHeight(textDimensions.height() + verticalMargin); - return textDimensions; + textDimensions.setWidth(textDimensions.width() + horizontalMargin); + textDimensions.setHeight(textDimensions.height() + verticalMargin); + return textDimensions; } void QtResizableLineEdit::textChanged(QString) { - updateGeometry(); + updateGeometry(); } } diff --git a/Swift/QtUI/QtVCardWidget/QtResizableLineEdit.h b/Swift/QtUI/QtVCardWidget/QtResizableLineEdit.h index 9022d38..47c6f3e 100644 --- a/Swift/QtUI/QtVCardWidget/QtResizableLineEdit.h +++ b/Swift/QtUI/QtVCardWidget/QtResizableLineEdit.h @@ -10,24 +10,24 @@ namespace Swift { - class QtResizableLineEdit : public QLineEdit { - Q_OBJECT - Q_PROPERTY(bool editable READ isEditable WRITE setEditable) + class QtResizableLineEdit : public QLineEdit { + Q_OBJECT + Q_PROPERTY(bool editable READ isEditable WRITE setEditable) - public: - explicit QtResizableLineEdit(QWidget* parent = 0); - ~QtResizableLineEdit(); + public: + explicit QtResizableLineEdit(QWidget* parent = 0); + ~QtResizableLineEdit(); - bool isEditable() const; - void setEditable(const bool); + bool isEditable() const; + void setEditable(const bool); - virtual QSize sizeHint() const; + virtual QSize sizeHint() const; - private slots: - void textChanged(QString); + private slots: + void textChanged(QString); - private: - bool editable; - }; + private: + bool editable; + }; } diff --git a/Swift/QtUI/QtVCardWidget/QtTagComboBox.cpp b/Swift/QtUI/QtVCardWidget/QtTagComboBox.cpp index 7036f84..ed36580 100644 --- a/Swift/QtUI/QtVCardWidget/QtTagComboBox.cpp +++ b/Swift/QtUI/QtVCardWidget/QtTagComboBox.cpp @@ -18,14 +18,14 @@ namespace Swift { QtTagComboBox::QtTagComboBox(QWidget* parent) : QComboBox(parent) { - setEditable(false); - displayModel = new QStandardItemModel(this); - displayItem = new QStandardItem(); - displayItem->setText(""); - displayModel->insertRow(0, displayItem); - editMenu = new QMenu(this); - this->setModel(displayModel); - editable = true; + setEditable(false); + displayModel = new QStandardItemModel(this); + displayItem = new QStandardItem(); + displayItem->setText(""); + displayModel->insertRow(0, displayItem); + editMenu = new QMenu(this); + this->setModel(displayModel); + editable = true; } QtTagComboBox::~QtTagComboBox() { @@ -33,40 +33,40 @@ QtTagComboBox::~QtTagComboBox() { } bool QtTagComboBox::isEditable() const { - return editable; + return editable; } void QtTagComboBox::setEditable(const bool editable) { - this->editable = editable; + this->editable = editable; } void QtTagComboBox::addTag(const QString &id, const QString &label) { - QAction* tagAction = new QAction(editMenu); - tagAction->setText(label); - tagAction->setCheckable(true); - tagAction->setData(QString(id)); - editMenu->addAction(tagAction); + QAction* tagAction = new QAction(editMenu); + tagAction->setText(label); + tagAction->setCheckable(true); + tagAction->setData(QString(id)); + editMenu->addAction(tagAction); } void QtTagComboBox::setTag(const QString &id, bool value) { - QList<QAction*> tagActions = editMenu->actions(); - foreach(QAction* action, tagActions) { - if (action->data() == id) { - action->setChecked(value); - updateDisplayItem(); - return; - } - } + QList<QAction*> tagActions = editMenu->actions(); + foreach(QAction* action, tagActions) { + if (action->data() == id) { + action->setChecked(value); + updateDisplayItem(); + return; + } + } } bool QtTagComboBox::isTagSet(const QString &id) const { - QList<QAction*> tagActions = editMenu->actions(); - foreach(QAction* action, tagActions) { - if (action->data() == id) { - return action->isChecked(); - } - } - return false; + QList<QAction*> tagActions = editMenu->actions(); + foreach(QAction* action, tagActions) { + if (action->data() == id) { + return action->isChecked(); + } + } + return false; } void QtTagComboBox::showPopup() { @@ -78,31 +78,31 @@ void QtTagComboBox::hidePopup() { } bool QtTagComboBox::event(QEvent* event) { - if (event->type() == QEvent::MouseButtonPress || - event->type() == QEvent::KeyRelease) { - if (!editable) return true; - - QPoint p = mapToGlobal(QPoint(0,0)); - p += QPoint(0, height()); - editMenu->exec(p); - updateDisplayItem(); - return true; - } - return QComboBox::event(event); + if (event->type() == QEvent::MouseButtonPress || + event->type() == QEvent::KeyRelease) { + if (!editable) return true; + + QPoint p = mapToGlobal(QPoint(0,0)); + p += QPoint(0, height()); + editMenu->exec(p); + updateDisplayItem(); + return true; + } + return QComboBox::event(event); } void QtTagComboBox::updateDisplayItem() { - QList<QAction*> tagActions = editMenu->actions(); - QString text = ""; - foreach(QAction* action, tagActions) { - if (action->isChecked()) { - if (text != "") { - text += ", "; - } - text += action->text(); - } - } - setItemText(0, text); + QList<QAction*> tagActions = editMenu->actions(); + QString text = ""; + foreach(QAction* action, tagActions) { + if (action->isChecked()) { + if (text != "") { + text += ", "; + } + text += action->text(); + } + } + setItemText(0, text); } } diff --git a/Swift/QtUI/QtVCardWidget/QtTagComboBox.h b/Swift/QtUI/QtVCardWidget/QtTagComboBox.h index 37a60af..f08f136 100644 --- a/Swift/QtUI/QtVCardWidget/QtTagComboBox.h +++ b/Swift/QtUI/QtVCardWidget/QtTagComboBox.h @@ -14,33 +14,33 @@ namespace Swift { class QtTagComboBox : public QComboBox { - Q_OBJECT - Q_PROPERTY(bool editable READ isEditable WRITE setEditable) + Q_OBJECT + Q_PROPERTY(bool editable READ isEditable WRITE setEditable) - public: - explicit QtTagComboBox(QWidget* parent = 0); - ~QtTagComboBox(); + public: + explicit QtTagComboBox(QWidget* parent = 0); + ~QtTagComboBox(); - bool isEditable() const; - void setEditable(const bool); + bool isEditable() const; + void setEditable(const bool); - void addTag(const QString& id, const QString& label); - void setTag(const QString& id, bool value); - bool isTagSet(const QString& id) const; + void addTag(const QString& id, const QString& label); + void setTag(const QString& id, bool value); + bool isTagSet(const QString& id) const; - virtual void showPopup(); - virtual void hidePopup(); + virtual void showPopup(); + virtual void hidePopup(); - virtual bool event(QEvent* event); + virtual bool event(QEvent* event); - private: - void updateDisplayItem(); + private: + void updateDisplayItem(); - private: - bool editable; - QStandardItemModel* displayModel; - QStandardItem* displayItem; - QMenu* editMenu; + private: + bool editable; + QStandardItemModel* displayModel; + QStandardItem* displayItem; + QMenu* editMenu; }; } diff --git a/Swift/QtUI/QtVCardWidget/QtVCardAddressField.cpp b/Swift/QtUI/QtVCardWidget/QtVCardAddressField.cpp index 5f9fddf..57bb2cd 100644 --- a/Swift/QtUI/QtVCardWidget/QtVCardAddressField.cpp +++ b/Swift/QtUI/QtVCardWidget/QtVCardAddressField.cpp @@ -20,163 +20,163 @@ namespace Swift { QtVCardAddressField::QtVCardAddressField(QWidget* parent, QGridLayout *layout, bool editable) : - QtVCardGeneralField(parent, layout, editable, layout->rowCount(), tr("Address")), streetLineEdit(NULL), poboxLineEdit(NULL), addressextLineEdit(NULL), cityLineEdit(NULL), pocodeLineEdit(NULL), regionLineEdit(NULL), countryLineEdit(NULL), textFieldGridLayout(NULL), textFieldGridLayoutItem(NULL), deliveryTypeLabel(NULL), domesticRadioButton(NULL), internationalRadioButton(NULL), buttonGroup(NULL) { - connect(this, SIGNAL(editableChanged(bool)), SLOT(handleEditibleChanged(bool))); + QtVCardGeneralField(parent, layout, editable, layout->rowCount(), tr("Address")), streetLineEdit(NULL), poboxLineEdit(NULL), addressextLineEdit(NULL), cityLineEdit(NULL), pocodeLineEdit(NULL), regionLineEdit(NULL), countryLineEdit(NULL), textFieldGridLayout(NULL), textFieldGridLayoutItem(NULL), deliveryTypeLabel(NULL), domesticRadioButton(NULL), internationalRadioButton(NULL), buttonGroup(NULL) { + connect(this, SIGNAL(editableChanged(bool)), SLOT(handleEditibleChanged(bool))); } QtVCardAddressField::~QtVCardAddressField() { - disconnect(this, SLOT(handleEditibleChanged(bool))); + disconnect(this, SLOT(handleEditibleChanged(bool))); } void QtVCardAddressField::setupContentWidgets() { - textFieldGridLayout = new QGridLayout(); + textFieldGridLayout = new QGridLayout(); - streetLineEdit = new QtResizableLineEdit(this); - textFieldGridLayout->addWidget(streetLineEdit, 0, 0, Qt::AlignVCenter); + streetLineEdit = new QtResizableLineEdit(this); + textFieldGridLayout->addWidget(streetLineEdit, 0, 0, Qt::AlignVCenter); - poboxLineEdit = new QtResizableLineEdit(this); - textFieldGridLayout->addWidget(poboxLineEdit, 0, 1, Qt::AlignVCenter); + poboxLineEdit = new QtResizableLineEdit(this); + textFieldGridLayout->addWidget(poboxLineEdit, 0, 1, Qt::AlignVCenter); - addressextLineEdit = new QtResizableLineEdit(this); - textFieldGridLayout->addWidget(addressextLineEdit, 1, 0, Qt::AlignVCenter); + addressextLineEdit = new QtResizableLineEdit(this); + textFieldGridLayout->addWidget(addressextLineEdit, 1, 0, Qt::AlignVCenter); - cityLineEdit = new QtResizableLineEdit(this); - textFieldGridLayout->addWidget(cityLineEdit, 2, 0, Qt::AlignVCenter); + cityLineEdit = new QtResizableLineEdit(this); + textFieldGridLayout->addWidget(cityLineEdit, 2, 0, Qt::AlignVCenter); - pocodeLineEdit = new QtResizableLineEdit(this); - textFieldGridLayout->addWidget(pocodeLineEdit, 2, 1, Qt::AlignVCenter); + pocodeLineEdit = new QtResizableLineEdit(this); + textFieldGridLayout->addWidget(pocodeLineEdit, 2, 1, Qt::AlignVCenter); - regionLineEdit = new QtResizableLineEdit(this); - textFieldGridLayout->addWidget(regionLineEdit, 3, 0, Qt::AlignVCenter); + regionLineEdit = new QtResizableLineEdit(this); + textFieldGridLayout->addWidget(regionLineEdit, 3, 0, Qt::AlignVCenter); - countryLineEdit = new QtResizableLineEdit(this); - textFieldGridLayout->addWidget(countryLineEdit, 4, 0, Qt::AlignVCenter); - textFieldGridLayout->setVerticalSpacing(2); - getGridLayout()->addLayout(textFieldGridLayout, getGridLayout()->rowCount()-1, 2, 5, 2, Qt::AlignVCenter); - textFieldGridLayoutItem = getGridLayout()->itemAtPosition(getGridLayout()->rowCount()-1, 2); + countryLineEdit = new QtResizableLineEdit(this); + textFieldGridLayout->addWidget(countryLineEdit, 4, 0, Qt::AlignVCenter); + textFieldGridLayout->setVerticalSpacing(2); + getGridLayout()->addLayout(textFieldGridLayout, getGridLayout()->rowCount()-1, 2, 5, 2, Qt::AlignVCenter); + textFieldGridLayoutItem = getGridLayout()->itemAtPosition(getGridLayout()->rowCount()-1, 2); #if QT_VERSION >= 0x040700 - streetLineEdit->setPlaceholderText(tr("Street")); - poboxLineEdit->setPlaceholderText(tr("PO Box")); - addressextLineEdit->setPlaceholderText(tr("Address Extension")); - cityLineEdit->setPlaceholderText(tr("City")); - pocodeLineEdit->setPlaceholderText(tr("Postal Code")); - regionLineEdit->setPlaceholderText(tr("Region")); - countryLineEdit->setPlaceholderText(tr("Country")); + streetLineEdit->setPlaceholderText(tr("Street")); + poboxLineEdit->setPlaceholderText(tr("PO Box")); + addressextLineEdit->setPlaceholderText(tr("Address Extension")); + cityLineEdit->setPlaceholderText(tr("City")); + pocodeLineEdit->setPlaceholderText(tr("Postal Code")); + regionLineEdit->setPlaceholderText(tr("Region")); + countryLineEdit->setPlaceholderText(tr("Country")); #endif - deliveryTypeLabel = new QtElidingLabel(this); - deliveryTypeLabel->setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard); - getGridLayout()->addWidget(deliveryTypeLabel, getGridLayout()->rowCount()-3, 4, Qt::AlignVCenter); + deliveryTypeLabel = new QtElidingLabel(this); + deliveryTypeLabel->setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard); + getGridLayout()->addWidget(deliveryTypeLabel, getGridLayout()->rowCount()-3, 4, Qt::AlignVCenter); - domesticRadioButton = new QRadioButton(tr("Domestic Delivery"), this); - getGridLayout()->addWidget(domesticRadioButton, getGridLayout()->rowCount()-2, 4, Qt::AlignVCenter); + domesticRadioButton = new QRadioButton(tr("Domestic Delivery"), this); + getGridLayout()->addWidget(domesticRadioButton, getGridLayout()->rowCount()-2, 4, Qt::AlignVCenter); - internationalRadioButton = new QRadioButton(tr("International Delivery"), this); - getGridLayout()->addWidget(internationalRadioButton, getGridLayout()->rowCount()-1, 4, Qt::AlignVCenter); + internationalRadioButton = new QRadioButton(tr("International Delivery"), this); + getGridLayout()->addWidget(internationalRadioButton, getGridLayout()->rowCount()-1, 4, Qt::AlignVCenter); - buttonGroup = new QButtonGroup(this); - buttonGroup->addButton(domesticRadioButton); - buttonGroup->addButton(internationalRadioButton); + buttonGroup = new QButtonGroup(this); + buttonGroup->addButton(domesticRadioButton); + buttonGroup->addButton(internationalRadioButton); - setTabOrder(internationalRadioButton, getTagComboBox()); - getTagComboBox()->addTag("postal", tr("Postal")); - getTagComboBox()->addTag("parcel", tr("Parcel")); + setTabOrder(internationalRadioButton, getTagComboBox()); + getTagComboBox()->addTag("postal", tr("Postal")); + getTagComboBox()->addTag("parcel", tr("Parcel")); - QtVCardHomeWork::setTagComboBox(getTagComboBox()); + QtVCardHomeWork::setTagComboBox(getTagComboBox()); - textFields << streetLineEdit << poboxLineEdit << addressextLineEdit << cityLineEdit << pocodeLineEdit << regionLineEdit << countryLineEdit; - childWidgets << deliveryTypeLabel << domesticRadioButton << internationalRadioButton; + textFields << streetLineEdit << poboxLineEdit << addressextLineEdit << cityLineEdit << pocodeLineEdit << regionLineEdit << countryLineEdit; + childWidgets << deliveryTypeLabel << domesticRadioButton << internationalRadioButton; } void QtVCardAddressField::customCleanup() { - foreach(QWidget* widget, textFields) { - widget->hide(); - textFieldGridLayout->removeWidget(widget); - } - getGridLayout()->removeItem(textFieldGridLayoutItem); + foreach(QWidget* widget, textFields) { + widget->hide(); + textFieldGridLayout->removeWidget(widget); + } + getGridLayout()->removeItem(textFieldGridLayoutItem); } bool QtVCardAddressField::isEmpty() const { - return streetLineEdit->text().isEmpty() && - poboxLineEdit->text().isEmpty() && - addressextLineEdit->text().isEmpty() && - cityLineEdit->text().isEmpty() && - pocodeLineEdit->text().isEmpty() && - regionLineEdit->text().isEmpty() && - countryLineEdit->text().isEmpty(); + return streetLineEdit->text().isEmpty() && + poboxLineEdit->text().isEmpty() && + addressextLineEdit->text().isEmpty() && + cityLineEdit->text().isEmpty() && + pocodeLineEdit->text().isEmpty() && + regionLineEdit->text().isEmpty() && + countryLineEdit->text().isEmpty(); } void QtVCardAddressField::setAddress(const VCard::Address& address) { - setPreferred(address.isPreferred); - setHome(address.isHome); - setWork(address.isWork); - getTagComboBox()->setTag("postal", address.isPostal); - getTagComboBox()->setTag("parcel", address.isParcel); - domesticRadioButton->setChecked(address.deliveryType == VCard::DomesticDelivery); - internationalRadioButton->setChecked(address.deliveryType == VCard::InternationalDelivery); - streetLineEdit->setText(P2QSTRING(address.street)); - poboxLineEdit->setText(P2QSTRING(address.poBox)); - addressextLineEdit->setText(P2QSTRING(address.addressExtension)); - cityLineEdit->setText(P2QSTRING(address.locality)); - pocodeLineEdit->setText(P2QSTRING(address.postalCode)); - regionLineEdit->setText(P2QSTRING(address.region)); - countryLineEdit->setText(P2QSTRING(address.country)); + setPreferred(address.isPreferred); + setHome(address.isHome); + setWork(address.isWork); + getTagComboBox()->setTag("postal", address.isPostal); + getTagComboBox()->setTag("parcel", address.isParcel); + domesticRadioButton->setChecked(address.deliveryType == VCard::DomesticDelivery); + internationalRadioButton->setChecked(address.deliveryType == VCard::InternationalDelivery); + streetLineEdit->setText(P2QSTRING(address.street)); + poboxLineEdit->setText(P2QSTRING(address.poBox)); + addressextLineEdit->setText(P2QSTRING(address.addressExtension)); + cityLineEdit->setText(P2QSTRING(address.locality)); + pocodeLineEdit->setText(P2QSTRING(address.postalCode)); + regionLineEdit->setText(P2QSTRING(address.region)); + countryLineEdit->setText(P2QSTRING(address.country)); } VCard::Address QtVCardAddressField::getAddress() const { - VCard::Address address; - address.isPreferred = getPreferred(); - address.isHome = getHome(); - address.isWork = getWork(); - address.deliveryType = domesticRadioButton->isChecked() ? VCard::DomesticDelivery : (internationalRadioButton->isChecked() ? VCard::InternationalDelivery : VCard::None); - address.isPostal = getTagComboBox()->isTagSet("postal"); - address.isParcel = getTagComboBox()->isTagSet("parcel"); - address.street = Q2PSTRING(streetLineEdit->text()); - address.poBox = Q2PSTRING(poboxLineEdit->text()); - address.addressExtension = Q2PSTRING(addressextLineEdit->text()); - address.locality = Q2PSTRING(cityLineEdit->text()); - address.postalCode = Q2PSTRING(pocodeLineEdit->text()); - address.region = Q2PSTRING(regionLineEdit->text()); - address.country = Q2PSTRING(countryLineEdit->text()); - return address; + VCard::Address address; + address.isPreferred = getPreferred(); + address.isHome = getHome(); + address.isWork = getWork(); + address.deliveryType = domesticRadioButton->isChecked() ? VCard::DomesticDelivery : (internationalRadioButton->isChecked() ? VCard::InternationalDelivery : VCard::None); + address.isPostal = getTagComboBox()->isTagSet("postal"); + address.isParcel = getTagComboBox()->isTagSet("parcel"); + address.street = Q2PSTRING(streetLineEdit->text()); + address.poBox = Q2PSTRING(poboxLineEdit->text()); + address.addressExtension = Q2PSTRING(addressextLineEdit->text()); + address.locality = Q2PSTRING(cityLineEdit->text()); + address.postalCode = Q2PSTRING(pocodeLineEdit->text()); + address.region = Q2PSTRING(regionLineEdit->text()); + address.country = Q2PSTRING(countryLineEdit->text()); + return address; } void QtVCardAddressField::handleEditibleChanged(bool isEditable) { - assert(streetLineEdit); - assert(poboxLineEdit); - assert(addressextLineEdit); - assert(cityLineEdit); - assert(pocodeLineEdit); - assert(regionLineEdit); - assert(countryLineEdit); - assert(deliveryTypeLabel); - assert(domesticRadioButton); - assert(internationalRadioButton); - - streetLineEdit->setEditable(isEditable); - poboxLineEdit->setEditable(isEditable); - addressextLineEdit->setEditable(isEditable); - cityLineEdit->setEditable(isEditable); - pocodeLineEdit->setEditable(isEditable); - regionLineEdit->setEditable(isEditable); - countryLineEdit->setEditable(isEditable); - - deliveryTypeLabel->setText(buttonGroup->checkedButton() == 0 ? "" : buttonGroup->checkedButton()->text()); - deliveryTypeLabel->setVisible(!isEditable); - - domesticRadioButton->setVisible(isEditable); - internationalRadioButton->setVisible(isEditable); - - foreach (QWidget* widget, textFields) { - QtResizableLineEdit* lineEdit; - if ((lineEdit = dynamic_cast<QtResizableLineEdit*>(widget))) { - lineEdit->setVisible(isEditable ? true : !lineEdit->text().isEmpty()); - lineEdit->setStyleSheet(isEditable ? "" : "QLineEdit { border: none; background: transparent; }"); - } - } + assert(streetLineEdit); + assert(poboxLineEdit); + assert(addressextLineEdit); + assert(cityLineEdit); + assert(pocodeLineEdit); + assert(regionLineEdit); + assert(countryLineEdit); + assert(deliveryTypeLabel); + assert(domesticRadioButton); + assert(internationalRadioButton); + + streetLineEdit->setEditable(isEditable); + poboxLineEdit->setEditable(isEditable); + addressextLineEdit->setEditable(isEditable); + cityLineEdit->setEditable(isEditable); + pocodeLineEdit->setEditable(isEditable); + regionLineEdit->setEditable(isEditable); + countryLineEdit->setEditable(isEditable); + + deliveryTypeLabel->setText(buttonGroup->checkedButton() == 0 ? "" : buttonGroup->checkedButton()->text()); + deliveryTypeLabel->setVisible(!isEditable); + + domesticRadioButton->setVisible(isEditable); + internationalRadioButton->setVisible(isEditable); + + foreach (QWidget* widget, textFields) { + QtResizableLineEdit* lineEdit; + if ((lineEdit = dynamic_cast<QtResizableLineEdit*>(widget))) { + lineEdit->setVisible(isEditable ? true : !lineEdit->text().isEmpty()); + lineEdit->setStyleSheet(isEditable ? "" : "QLineEdit { border: none; background: transparent; }"); + } + } } } diff --git a/Swift/QtUI/QtVCardWidget/QtVCardAddressField.h b/Swift/QtUI/QtVCardWidget/QtVCardAddressField.h index 51bc323..c90628a 100644 --- a/Swift/QtUI/QtVCardWidget/QtVCardAddressField.h +++ b/Swift/QtUI/QtVCardWidget/QtVCardAddressField.h @@ -27,42 +27,42 @@ namespace Swift { class QtElidingLabel; class QtVCardAddressField : public QtVCardGeneralField, public QtVCardHomeWork { - Q_OBJECT - - public: - GENERIC_QT_VCARD_FIELD_INFO(tr("Address"), UNLIMITED_INSTANCES, QtVCardAddressField) - - QtVCardAddressField(QWidget* parent = 0, QGridLayout* layout = 0, bool editable = false); - virtual ~QtVCardAddressField(); - - virtual bool isEmpty() const; - - void setAddress(const VCard::Address& address); - VCard::Address getAddress() const; - - protected: - virtual void setupContentWidgets(); - virtual void customCleanup(); - - public slots: - void handleEditibleChanged(bool isEditable); - - private: - QList<QWidget*> textFields; - QtResizableLineEdit* streetLineEdit; - QtResizableLineEdit* poboxLineEdit; - QtResizableLineEdit* addressextLineEdit; - QtResizableLineEdit* cityLineEdit; - QtResizableLineEdit* pocodeLineEdit; - QtResizableLineEdit* regionLineEdit; - QtResizableLineEdit* countryLineEdit; - QGridLayout* textFieldGridLayout; - QLayoutItem* textFieldGridLayoutItem; - - QtElidingLabel* deliveryTypeLabel; - QRadioButton* domesticRadioButton; - QRadioButton* internationalRadioButton; - QButtonGroup* buttonGroup; + Q_OBJECT + + public: + GENERIC_QT_VCARD_FIELD_INFO(tr("Address"), UNLIMITED_INSTANCES, QtVCardAddressField) + + QtVCardAddressField(QWidget* parent = 0, QGridLayout* layout = 0, bool editable = false); + virtual ~QtVCardAddressField(); + + virtual bool isEmpty() const; + + void setAddress(const VCard::Address& address); + VCard::Address getAddress() const; + + protected: + virtual void setupContentWidgets(); + virtual void customCleanup(); + + public slots: + void handleEditibleChanged(bool isEditable); + + private: + QList<QWidget*> textFields; + QtResizableLineEdit* streetLineEdit; + QtResizableLineEdit* poboxLineEdit; + QtResizableLineEdit* addressextLineEdit; + QtResizableLineEdit* cityLineEdit; + QtResizableLineEdit* pocodeLineEdit; + QtResizableLineEdit* regionLineEdit; + QtResizableLineEdit* countryLineEdit; + QGridLayout* textFieldGridLayout; + QLayoutItem* textFieldGridLayoutItem; + + QtElidingLabel* deliveryTypeLabel; + QRadioButton* domesticRadioButton; + QRadioButton* internationalRadioButton; + QButtonGroup* buttonGroup; }; } diff --git a/Swift/QtUI/QtVCardWidget/QtVCardAddressLabelField.cpp b/Swift/QtUI/QtVCardWidget/QtVCardAddressLabelField.cpp index 64d2533..7f270c5 100644 --- a/Swift/QtUI/QtVCardWidget/QtVCardAddressLabelField.cpp +++ b/Swift/QtUI/QtVCardWidget/QtVCardAddressLabelField.cpp @@ -22,86 +22,86 @@ namespace Swift { QtVCardAddressLabelField::QtVCardAddressLabelField(QWidget* parent, QGridLayout *layout, bool editable) : - QtVCardGeneralField(parent, layout, editable, layout->rowCount(), tr("Address Label")), addressLabelPlainTextEdit(NULL), deliveryTypeLabel(NULL), domesticRadioButton(NULL), internationalRadioButton(NULL), buttonGroup(NULL) { - connect(this, SIGNAL(editableChanged(bool)), SLOT(handleEditibleChanged(bool))); + QtVCardGeneralField(parent, layout, editable, layout->rowCount(), tr("Address Label")), addressLabelPlainTextEdit(NULL), deliveryTypeLabel(NULL), domesticRadioButton(NULL), internationalRadioButton(NULL), buttonGroup(NULL) { + connect(this, SIGNAL(editableChanged(bool)), SLOT(handleEditibleChanged(bool))); } QtVCardAddressLabelField::~QtVCardAddressLabelField() { - disconnect(this, SLOT(handleEditibleChanged(bool))); + disconnect(this, SLOT(handleEditibleChanged(bool))); } void QtVCardAddressLabelField::setupContentWidgets() { - addressLabelPlainTextEdit = new QPlainTextEdit(this); - addressLabelPlainTextEdit->setTabChangesFocus(true); - getGridLayout()->addWidget(addressLabelPlainTextEdit, getGridLayout()->rowCount()-1, 2, 3, 2, Qt::AlignVCenter); + addressLabelPlainTextEdit = new QPlainTextEdit(this); + addressLabelPlainTextEdit->setTabChangesFocus(true); + getGridLayout()->addWidget(addressLabelPlainTextEdit, getGridLayout()->rowCount()-1, 2, 3, 2, Qt::AlignVCenter); - deliveryTypeLabel = new QtElidingLabel(this); - deliveryTypeLabel->setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard); - getGridLayout()->addWidget(deliveryTypeLabel, getGridLayout()->rowCount()-2, 4, Qt::AlignVCenter); + deliveryTypeLabel = new QtElidingLabel(this); + deliveryTypeLabel->setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard); + getGridLayout()->addWidget(deliveryTypeLabel, getGridLayout()->rowCount()-2, 4, Qt::AlignVCenter); - domesticRadioButton = new QRadioButton(tr("Domestic Delivery"), this); - getGridLayout()->addWidget(domesticRadioButton, getGridLayout()->rowCount()-2, 4, Qt::AlignVCenter); + domesticRadioButton = new QRadioButton(tr("Domestic Delivery"), this); + getGridLayout()->addWidget(domesticRadioButton, getGridLayout()->rowCount()-2, 4, Qt::AlignVCenter); - internationalRadioButton = new QRadioButton(tr("International Delivery"), this); - getGridLayout()->addWidget(internationalRadioButton, getGridLayout()->rowCount()-1, 4, Qt::AlignVCenter); + internationalRadioButton = new QRadioButton(tr("International Delivery"), this); + getGridLayout()->addWidget(internationalRadioButton, getGridLayout()->rowCount()-1, 4, Qt::AlignVCenter); - buttonGroup = new QButtonGroup(this); - buttonGroup->addButton(domesticRadioButton); - buttonGroup->addButton(internationalRadioButton); + buttonGroup = new QButtonGroup(this); + buttonGroup->addButton(domesticRadioButton); + buttonGroup->addButton(internationalRadioButton); - setTabOrder(internationalRadioButton, getTagComboBox()); - getTagComboBox()->addTag("postal", tr("Postal")); - getTagComboBox()->addTag("parcel", tr("Parcel")); + setTabOrder(internationalRadioButton, getTagComboBox()); + getTagComboBox()->addTag("postal", tr("Postal")); + getTagComboBox()->addTag("parcel", tr("Parcel")); - QtVCardHomeWork::setTagComboBox(getTagComboBox()); - deliveryTypeLabel->hide(); - childWidgets << addressLabelPlainTextEdit << deliveryTypeLabel << domesticRadioButton << internationalRadioButton; + QtVCardHomeWork::setTagComboBox(getTagComboBox()); + deliveryTypeLabel->hide(); + childWidgets << addressLabelPlainTextEdit << deliveryTypeLabel << domesticRadioButton << internationalRadioButton; } bool QtVCardAddressLabelField::isEmpty() const { - return addressLabelPlainTextEdit->toPlainText().isEmpty(); + return addressLabelPlainTextEdit->toPlainText().isEmpty(); } void QtVCardAddressLabelField::setAddressLabel(const VCard::AddressLabel& addressLabel) { - setPreferred(addressLabel.isPreferred); - setHome(addressLabel.isHome); - setWork(addressLabel.isWork); - getTagComboBox()->setTag("postal", addressLabel.isPostal); - getTagComboBox()->setTag("parcel", addressLabel.isParcel); - domesticRadioButton->setChecked(addressLabel.deliveryType == VCard::DomesticDelivery); - internationalRadioButton->setChecked(addressLabel.deliveryType == VCard::InternationalDelivery); - std::string joinedLines = boost::algorithm::join(addressLabel.lines, "\n"); - addressLabelPlainTextEdit->setPlainText(P2QSTRING(joinedLines)); + setPreferred(addressLabel.isPreferred); + setHome(addressLabel.isHome); + setWork(addressLabel.isWork); + getTagComboBox()->setTag("postal", addressLabel.isPostal); + getTagComboBox()->setTag("parcel", addressLabel.isParcel); + domesticRadioButton->setChecked(addressLabel.deliveryType == VCard::DomesticDelivery); + internationalRadioButton->setChecked(addressLabel.deliveryType == VCard::InternationalDelivery); + std::string joinedLines = boost::algorithm::join(addressLabel.lines, "\n"); + addressLabelPlainTextEdit->setPlainText(P2QSTRING(joinedLines)); } VCard::AddressLabel QtVCardAddressLabelField::getAddressLabel() const { - VCard::AddressLabel addressLabel; - addressLabel.isPreferred = getPreferred(); - addressLabel.isHome = getHome(); - addressLabel.isWork = getWork(); - addressLabel.deliveryType = domesticRadioButton->isChecked() ? VCard::DomesticDelivery : (internationalRadioButton->isChecked() ? VCard::InternationalDelivery : VCard::None); - addressLabel.isPostal = getTagComboBox()->isTagSet("postal"); - addressLabel.isParcel = getTagComboBox()->isTagSet("parcel"); - - std::string lines = Q2PSTRING(addressLabelPlainTextEdit->toPlainText()); - boost::split(addressLabel.lines, lines, boost::is_any_of("\n")); - return addressLabel; + VCard::AddressLabel addressLabel; + addressLabel.isPreferred = getPreferred(); + addressLabel.isHome = getHome(); + addressLabel.isWork = getWork(); + addressLabel.deliveryType = domesticRadioButton->isChecked() ? VCard::DomesticDelivery : (internationalRadioButton->isChecked() ? VCard::InternationalDelivery : VCard::None); + addressLabel.isPostal = getTagComboBox()->isTagSet("postal"); + addressLabel.isParcel = getTagComboBox()->isTagSet("parcel"); + + std::string lines = Q2PSTRING(addressLabelPlainTextEdit->toPlainText()); + boost::split(addressLabel.lines, lines, boost::is_any_of("\n")); + return addressLabel; } void QtVCardAddressLabelField::handleEditibleChanged(bool isEditable) { - assert(addressLabelPlainTextEdit); - assert(deliveryTypeLabel); - assert(domesticRadioButton); - assert(internationalRadioButton); + assert(addressLabelPlainTextEdit); + assert(deliveryTypeLabel); + assert(domesticRadioButton); + assert(internationalRadioButton); - addressLabelPlainTextEdit->setReadOnly(!isEditable); - addressLabelPlainTextEdit->setStyleSheet(isEditable ? "" : "QPlainTextEdit { background: transparent; }"); + addressLabelPlainTextEdit->setReadOnly(!isEditable); + addressLabelPlainTextEdit->setStyleSheet(isEditable ? "" : "QPlainTextEdit { background: transparent; }"); - deliveryTypeLabel->setText(buttonGroup->checkedButton() == 0 ? "" : buttonGroup->checkedButton()->text()); - deliveryTypeLabel->setVisible(!isEditable); + deliveryTypeLabel->setText(buttonGroup->checkedButton() == 0 ? "" : buttonGroup->checkedButton()->text()); + deliveryTypeLabel->setVisible(!isEditable); - domesticRadioButton->setVisible(isEditable); - internationalRadioButton->setVisible(isEditable); + domesticRadioButton->setVisible(isEditable); + internationalRadioButton->setVisible(isEditable); } } diff --git a/Swift/QtUI/QtVCardWidget/QtVCardAddressLabelField.h b/Swift/QtUI/QtVCardWidget/QtVCardAddressLabelField.h index f59e482..16910b3 100644 --- a/Swift/QtUI/QtVCardWidget/QtVCardAddressLabelField.h +++ b/Swift/QtUI/QtVCardWidget/QtVCardAddressLabelField.h @@ -27,32 +27,32 @@ namespace Swift { class QtElidingLabel; class QtVCardAddressLabelField : public QtVCardGeneralField, public QtVCardHomeWork { - Q_OBJECT + Q_OBJECT - public: - GENERIC_QT_VCARD_FIELD_INFO(tr("Address Label"), UNLIMITED_INSTANCES, QtVCardAddressLabelField) + public: + GENERIC_QT_VCARD_FIELD_INFO(tr("Address Label"), UNLIMITED_INSTANCES, QtVCardAddressLabelField) - QtVCardAddressLabelField(QWidget* parent = 0, QGridLayout* layout = 0, bool editable = false); - virtual ~QtVCardAddressLabelField(); + QtVCardAddressLabelField(QWidget* parent = 0, QGridLayout* layout = 0, bool editable = false); + virtual ~QtVCardAddressLabelField(); - virtual bool isEmpty() const; + virtual bool isEmpty() const; - void setAddressLabel(const VCard::AddressLabel& addressLabel); - VCard::AddressLabel getAddressLabel() const; + void setAddressLabel(const VCard::AddressLabel& addressLabel); + VCard::AddressLabel getAddressLabel() const; - protected: - virtual void setupContentWidgets(); + protected: + virtual void setupContentWidgets(); - public slots: - void handleEditibleChanged(bool isEditable); + public slots: + void handleEditibleChanged(bool isEditable); - private: - QPlainTextEdit* addressLabelPlainTextEdit; + private: + QPlainTextEdit* addressLabelPlainTextEdit; - QtElidingLabel* deliveryTypeLabel; - QRadioButton* domesticRadioButton; - QRadioButton* internationalRadioButton; - QButtonGroup* buttonGroup; + QtElidingLabel* deliveryTypeLabel; + QRadioButton* domesticRadioButton; + QRadioButton* internationalRadioButton; + QButtonGroup* buttonGroup; }; } diff --git a/Swift/QtUI/QtVCardWidget/QtVCardBirthdayField.cpp b/Swift/QtUI/QtVCardWidget/QtVCardBirthdayField.cpp index 603b8be..53dfc7f 100644 --- a/Swift/QtUI/QtVCardWidget/QtVCardBirthdayField.cpp +++ b/Swift/QtUI/QtVCardWidget/QtVCardBirthdayField.cpp @@ -22,47 +22,47 @@ namespace Swift { QtVCardBirthdayField::QtVCardBirthdayField(QWidget* parent, QGridLayout *layout, bool editable) : - QtVCardGeneralField(parent, layout, editable, layout->rowCount(), tr("Birthday"), false, false), birthdayLabel(NULL), birthdayDateEdit(NULL) { - connect(this, SIGNAL(editableChanged(bool)), SLOT(handleEditibleChanged(bool))); + QtVCardGeneralField(parent, layout, editable, layout->rowCount(), tr("Birthday"), false, false), birthdayLabel(NULL), birthdayDateEdit(NULL) { + connect(this, SIGNAL(editableChanged(bool)), SLOT(handleEditibleChanged(bool))); } QtVCardBirthdayField::~QtVCardBirthdayField() { - disconnect(this, SLOT(handleEditibleChanged(bool))); + disconnect(this, SLOT(handleEditibleChanged(bool))); } void QtVCardBirthdayField::setupContentWidgets() { - birthdayLabel = new QLabel(this); - birthdayLabel->setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard); - birthdayDateEdit = new QDateEdit(this); - birthdayDateEdit->setCalendarPopup(true); + birthdayLabel = new QLabel(this); + birthdayLabel->setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard); + birthdayDateEdit = new QDateEdit(this); + birthdayDateEdit->setCalendarPopup(true); - QHBoxLayout* birthdayLayout = new QHBoxLayout(); - birthdayLayout->addWidget(birthdayLabel); - birthdayLayout->addWidget(birthdayDateEdit); + QHBoxLayout* birthdayLayout = new QHBoxLayout(); + birthdayLayout->addWidget(birthdayLabel); + birthdayLayout->addWidget(birthdayDateEdit); - getGridLayout()->addLayout(birthdayLayout, getGridLayout()->rowCount()-1, 2, Qt::AlignVCenter); + getGridLayout()->addLayout(birthdayLayout, getGridLayout()->rowCount()-1, 2, Qt::AlignVCenter); - getTagComboBox()->hide(); - birthdayLabel->hide(); - childWidgets << birthdayLabel << birthdayDateEdit; + getTagComboBox()->hide(); + birthdayLabel->hide(); + childWidgets << birthdayLabel << birthdayDateEdit; } bool QtVCardBirthdayField::isEmpty() const { - return false; + return false; } void QtVCardBirthdayField::setBirthday(const boost::posix_time::ptime& birthday) { - birthdayDateEdit->setDate(B2QDATE(birthday).date()); + birthdayDateEdit->setDate(B2QDATE(birthday).date()); } boost::posix_time::ptime QtVCardBirthdayField::getBirthday() const { - return boost::posix_time::from_time_t(QDateTime(birthdayDateEdit->date()).toTime_t()); + return boost::posix_time::from_time_t(QDateTime(birthdayDateEdit->date()).toTime_t()); } void QtVCardBirthdayField::handleEditibleChanged(bool isEditable) { - birthdayLabel->setText(birthdayDateEdit->date().toString(Qt::DefaultLocaleLongDate)); - birthdayDateEdit->setVisible(isEditable); - birthdayLabel->setVisible(!isEditable); + birthdayLabel->setText(birthdayDateEdit->date().toString(Qt::DefaultLocaleLongDate)); + birthdayDateEdit->setVisible(isEditable); + birthdayLabel->setVisible(!isEditable); } } diff --git a/Swift/QtUI/QtVCardWidget/QtVCardBirthdayField.h b/Swift/QtUI/QtVCardWidget/QtVCardBirthdayField.h index bf15a75..431751e 100644 --- a/Swift/QtUI/QtVCardWidget/QtVCardBirthdayField.h +++ b/Swift/QtUI/QtVCardWidget/QtVCardBirthdayField.h @@ -23,28 +23,28 @@ namespace Swift { class QtVCardBirthdayField : public QtVCardGeneralField { - Q_OBJECT + Q_OBJECT - public: - GENERIC_QT_VCARD_FIELD_INFO(tr("Birthday"), 1, QtVCardBirthdayField) + public: + GENERIC_QT_VCARD_FIELD_INFO(tr("Birthday"), 1, QtVCardBirthdayField) - QtVCardBirthdayField(QWidget* parent = 0, QGridLayout* layout = 0, bool editable = false); - virtual ~QtVCardBirthdayField(); + QtVCardBirthdayField(QWidget* parent = 0, QGridLayout* layout = 0, bool editable = false); + virtual ~QtVCardBirthdayField(); - virtual bool isEmpty() const; + virtual bool isEmpty() const; - void setBirthday(const boost::posix_time::ptime& addressLabel); - boost::posix_time::ptime getBirthday() const; + void setBirthday(const boost::posix_time::ptime& addressLabel); + boost::posix_time::ptime getBirthday() const; - protected: - virtual void setupContentWidgets(); + protected: + virtual void setupContentWidgets(); - public slots: - void handleEditibleChanged(bool isEditable); + public slots: + void handleEditibleChanged(bool isEditable); - private: - QLabel* birthdayLabel; - QDateEdit* birthdayDateEdit; + private: + QLabel* birthdayLabel; + QDateEdit* birthdayDateEdit; }; } diff --git a/Swift/QtUI/QtVCardWidget/QtVCardDescriptionField.cpp b/Swift/QtUI/QtVCardWidget/QtVCardDescriptionField.cpp index f3c4dbf..9926262 100644 --- a/Swift/QtUI/QtVCardWidget/QtVCardDescriptionField.cpp +++ b/Swift/QtUI/QtVCardWidget/QtVCardDescriptionField.cpp @@ -22,50 +22,50 @@ namespace Swift { QtVCardDescriptionField::QtVCardDescriptionField(QWidget* parent, QGridLayout *layout, bool editable) : - QtVCardGeneralField(parent, layout, editable, layout->rowCount(), tr("Description"), false, false), descriptionPlainTextEdit(NULL) { - connect(this, SIGNAL(editableChanged(bool)), SLOT(handleEditibleChanged(bool))); + QtVCardGeneralField(parent, layout, editable, layout->rowCount(), tr("Description"), false, false), descriptionPlainTextEdit(NULL) { + connect(this, SIGNAL(editableChanged(bool)), SLOT(handleEditibleChanged(bool))); } QtVCardDescriptionField::~QtVCardDescriptionField() { - disconnect(this, SLOT(handleEditibleChanged(bool))); + disconnect(this, SLOT(handleEditibleChanged(bool))); } void QtVCardDescriptionField::setupContentWidgets() { - descriptionPlainTextEdit = new QPlainTextEdit(this); - descriptionPlainTextEdit->setMinimumHeight(70); - getGridLayout()->addWidget(descriptionPlainTextEdit, getGridLayout()->rowCount()-1, 2, 2, 2, Qt::AlignVCenter); - getTagComboBox()->hide(); - childWidgets << descriptionPlainTextEdit; + descriptionPlainTextEdit = new QPlainTextEdit(this); + descriptionPlainTextEdit->setMinimumHeight(70); + getGridLayout()->addWidget(descriptionPlainTextEdit, getGridLayout()->rowCount()-1, 2, 2, 2, Qt::AlignVCenter); + getTagComboBox()->hide(); + childWidgets << descriptionPlainTextEdit; } bool QtVCardDescriptionField::isEmpty() const { - return descriptionPlainTextEdit->toPlainText().isEmpty(); + return descriptionPlainTextEdit->toPlainText().isEmpty(); } void QtVCardDescriptionField::setDescription(const std::string& description) { - descriptionPlainTextEdit->setPlainText(P2QSTRING(description)); + descriptionPlainTextEdit->setPlainText(P2QSTRING(description)); } std::string QtVCardDescriptionField::getDescription() const { - return Q2PSTRING(descriptionPlainTextEdit->toPlainText()); + return Q2PSTRING(descriptionPlainTextEdit->toPlainText()); } void QtVCardDescriptionField::handleEditibleChanged(bool isEditable) { - assert(descriptionPlainTextEdit); + assert(descriptionPlainTextEdit); - if (isEditable) { - descriptionPlainTextEdit->setMinimumHeight(70); - } else { - QFontMetrics inputMetrics(descriptionPlainTextEdit->document()->defaultFont()); - QRect horizontalBounds = contentsRect().adjusted(0,0,0,9999); - QRect boundingRect = inputMetrics.boundingRect(horizontalBounds, Qt::TextWordWrap, descriptionPlainTextEdit->toPlainText() + "A"); - int left, top, right, bottom; - getContentsMargins(&left, &top, &right, &bottom); - int height = boundingRect.height() + top + bottom + inputMetrics.height(); - descriptionPlainTextEdit->setMinimumHeight(height > 70 ? 70 : height); - } - descriptionPlainTextEdit->setReadOnly(!isEditable); - descriptionPlainTextEdit->setStyleSheet(isEditable ? "" : "QPlainTextEdit { background: transparent; }"); + if (isEditable) { + descriptionPlainTextEdit->setMinimumHeight(70); + } else { + QFontMetrics inputMetrics(descriptionPlainTextEdit->document()->defaultFont()); + QRect horizontalBounds = contentsRect().adjusted(0,0,0,9999); + QRect boundingRect = inputMetrics.boundingRect(horizontalBounds, Qt::TextWordWrap, descriptionPlainTextEdit->toPlainText() + "A"); + int left, top, right, bottom; + getContentsMargins(&left, &top, &right, &bottom); + int height = boundingRect.height() + top + bottom + inputMetrics.height(); + descriptionPlainTextEdit->setMinimumHeight(height > 70 ? 70 : height); + } + descriptionPlainTextEdit->setReadOnly(!isEditable); + descriptionPlainTextEdit->setStyleSheet(isEditable ? "" : "QPlainTextEdit { background: transparent; }"); } } diff --git a/Swift/QtUI/QtVCardWidget/QtVCardDescriptionField.h b/Swift/QtUI/QtVCardWidget/QtVCardDescriptionField.h index 8fb6344..489797a 100644 --- a/Swift/QtUI/QtVCardWidget/QtVCardDescriptionField.h +++ b/Swift/QtUI/QtVCardWidget/QtVCardDescriptionField.h @@ -22,27 +22,27 @@ namespace Swift { class QtVCardDescriptionField : public QtVCardGeneralField { - Q_OBJECT + Q_OBJECT - public: - GENERIC_QT_VCARD_FIELD_INFO(tr("Description"), 1, QtVCardDescriptionField) + public: + GENERIC_QT_VCARD_FIELD_INFO(tr("Description"), 1, QtVCardDescriptionField) - QtVCardDescriptionField(QWidget* parent = 0, QGridLayout* layout = 0, bool editable = false); - virtual ~QtVCardDescriptionField(); + QtVCardDescriptionField(QWidget* parent = 0, QGridLayout* layout = 0, bool editable = false); + virtual ~QtVCardDescriptionField(); - virtual bool isEmpty() const; + virtual bool isEmpty() const; - void setDescription(const std::string& description); - std::string getDescription() const; + void setDescription(const std::string& description); + std::string getDescription() const; - protected: - virtual void setupContentWidgets(); + protected: + virtual void setupContentWidgets(); - public slots: - void handleEditibleChanged(bool isEditable); + public slots: + void handleEditibleChanged(bool isEditable); - private: - QPlainTextEdit* descriptionPlainTextEdit; + private: + QPlainTextEdit* descriptionPlainTextEdit; }; } diff --git a/Swift/QtUI/QtVCardWidget/QtVCardFieldInfo.h b/Swift/QtUI/QtVCardWidget/QtVCardFieldInfo.h index 12f990a..093357a 100644 --- a/Swift/QtUI/QtVCardWidget/QtVCardFieldInfo.h +++ b/Swift/QtUI/QtVCardWidget/QtVCardFieldInfo.h @@ -18,41 +18,41 @@ #include <QObject> #include <QString> #define GENERIC_QT_VCARD_FIELD_INFO(MENU_NAME, ALLOWED_INSTANCES, FIELD_CLASS) \ - class FieldInfo : public QtVCardFieldInfo { \ - public: \ - virtual ~FieldInfo() { \ - } \ - \ - virtual QString getMenuName() const { \ - return MENU_NAME; \ - } \ - \ - virtual int getAllowedInstances() const { \ - return ALLOWED_INSTANCES; \ - } \ - \ - virtual QWidget* createFieldInstance(QWidget* parent, QGridLayout* layout, bool editable) const { \ - return new FIELD_CLASS(parent, layout, editable); \ - } \ - \ - virtual bool testInstance(QWidget* widget) const { \ - return dynamic_cast<FIELD_CLASS*>(widget) != 0; \ - } \ - }; + class FieldInfo : public QtVCardFieldInfo { \ + public: \ + virtual ~FieldInfo() { \ + } \ + \ + virtual QString getMenuName() const { \ + return MENU_NAME; \ + } \ + \ + virtual int getAllowedInstances() const { \ + return ALLOWED_INSTANCES; \ + } \ + \ + virtual QWidget* createFieldInstance(QWidget* parent, QGridLayout* layout, bool editable) const { \ + return new FIELD_CLASS(parent, layout, editable); \ + } \ + \ + virtual bool testInstance(QWidget* widget) const { \ + return dynamic_cast<FIELD_CLASS*>(widget) != 0; \ + } \ + }; class QWidget; namespace Swift { - class QtVCardFieldInfo { - public: - static const int UNLIMITED_INSTANCES = -1; - - virtual ~QtVCardFieldInfo() { - } - virtual QString getMenuName() const = 0; - virtual int getAllowedInstances() const = 0; - virtual QWidget* createFieldInstance(QWidget* parent, QGridLayout* layout, bool editable) const = 0; - virtual bool testInstance(QWidget*) const = 0; - }; + class QtVCardFieldInfo { + public: + static const int UNLIMITED_INSTANCES = -1; + + virtual ~QtVCardFieldInfo() { + } + virtual QString getMenuName() const = 0; + virtual int getAllowedInstances() const = 0; + virtual QWidget* createFieldInstance(QWidget* parent, QGridLayout* layout, bool editable) const = 0; + virtual bool testInstance(QWidget*) const = 0; + }; } diff --git a/Swift/QtUI/QtVCardWidget/QtVCardGeneralField.cpp b/Swift/QtUI/QtVCardWidget/QtVCardGeneralField.cpp index ed30ae1..44d94d7 100644 --- a/Swift/QtUI/QtVCardWidget/QtVCardGeneralField.cpp +++ b/Swift/QtUI/QtVCardWidget/QtVCardGeneralField.cpp @@ -22,8 +22,8 @@ namespace Swift { QtVCardGeneralField::QtVCardGeneralField(QWidget* parent, QGridLayout* layout, bool editable, int row, QString label, bool preferrable, bool taggable) : - QWidget(parent), editable(editable), preferrable(preferrable), starVisible(false), taggable(taggable), layout(layout), row(row), preferredCheckBox(0), label(0), labelText(label), - tagComboBox(0), tagLabel(NULL), closeButton(0) { + QWidget(parent), editable(editable), preferrable(preferrable), starVisible(false), taggable(taggable), layout(layout), row(row), preferredCheckBox(0), label(0), labelText(label), + tagComboBox(0), tagLabel(NULL), closeButton(0) { } QtVCardGeneralField::~QtVCardGeneralField() { @@ -31,126 +31,126 @@ QtVCardGeneralField::~QtVCardGeneralField() { } void QtVCardGeneralField::initialize() { - if (preferrable) { - preferredCheckBox = new QCheckBox(this); - preferredCheckBox->setToolTip(tr("Stars can be used to mark preferred contact details.")); - preferredCheckBox->setStyleSheet( - "QCheckBox::indicator { width: 18px; height: 18px; }" - "QCheckBox::indicator:checked { image: url(:/icons/star-checked.png); }" - "QCheckBox::indicator:unchecked { image: url(:/icons/star-unchecked.png); }" - ); - layout->addWidget(preferredCheckBox, row, 0, Qt::AlignVCenter); - childWidgets << preferredCheckBox; - connect(preferredCheckBox, SIGNAL(stateChanged(int)), SLOT(handlePreferredStarStateChanged(int))); - } - label = new QLabel(this); - label->setText(labelText); - layout->addWidget(label, row, 1, Qt::AlignVCenter | Qt::AlignRight); - - tagLabel = new QtElidingLabel(this); - tagLabel->setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard); - - tagComboBox = new QtTagComboBox(this); - closeButton = new QtCloseButton(this); - connect(closeButton, SIGNAL(clicked()), SLOT(handleCloseButtonClicked())); - - QHBoxLayout* tagLayout = new QHBoxLayout(); - tagLayout->addWidget(tagLabel); - tagLayout->addWidget(tagComboBox); - - setupContentWidgets(); - layout->addLayout(tagLayout, row, 4, Qt::AlignTop); - layout->addWidget(closeButton, row, 5, Qt::AlignCenter); - closeButton->resize(12, 12); - tagLabel->hide(); - - childWidgets << label << tagComboBox << tagLabel << closeButton; - setEditable(editable); + if (preferrable) { + preferredCheckBox = new QCheckBox(this); + preferredCheckBox->setToolTip(tr("Stars can be used to mark preferred contact details.")); + preferredCheckBox->setStyleSheet( + "QCheckBox::indicator { width: 18px; height: 18px; }" + "QCheckBox::indicator:checked { image: url(:/icons/star-checked.png); }" + "QCheckBox::indicator:unchecked { image: url(:/icons/star-unchecked.png); }" + ); + layout->addWidget(preferredCheckBox, row, 0, Qt::AlignVCenter); + childWidgets << preferredCheckBox; + connect(preferredCheckBox, SIGNAL(stateChanged(int)), SLOT(handlePreferredStarStateChanged(int))); + } + label = new QLabel(this); + label->setText(labelText); + layout->addWidget(label, row, 1, Qt::AlignVCenter | Qt::AlignRight); + + tagLabel = new QtElidingLabel(this); + tagLabel->setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard); + + tagComboBox = new QtTagComboBox(this); + closeButton = new QtCloseButton(this); + connect(closeButton, SIGNAL(clicked()), SLOT(handleCloseButtonClicked())); + + QHBoxLayout* tagLayout = new QHBoxLayout(); + tagLayout->addWidget(tagLabel); + tagLayout->addWidget(tagComboBox); + + setupContentWidgets(); + layout->addLayout(tagLayout, row, 4, Qt::AlignTop); + layout->addWidget(closeButton, row, 5, Qt::AlignCenter); + closeButton->resize(12, 12); + tagLabel->hide(); + + childWidgets << label << tagComboBox << tagLabel << closeButton; + setEditable(editable); } bool QtVCardGeneralField::isEditable() const { - return editable; + return editable; } void QtVCardGeneralField::setEditable(bool editable) { - assert(tagComboBox); - assert(closeButton); - - this->editable = editable; - if (taggable) { - tagLabel->setText(tagComboBox->itemText(0)); - tagComboBox->setVisible(editable); - tagLabel->setVisible(!editable); - } else { - tagLabel->hide(); - tagComboBox->hide(); - } - closeButton->setVisible(editable); - updatePreferredStarVisibility(); - editableChanged(this->editable); + assert(tagComboBox); + assert(closeButton); + + this->editable = editable; + if (taggable) { + tagLabel->setText(tagComboBox->itemText(0)); + tagComboBox->setVisible(editable); + tagLabel->setVisible(!editable); + } else { + tagLabel->hide(); + tagComboBox->hide(); + } + closeButton->setVisible(editable); + updatePreferredStarVisibility(); + editableChanged(this->editable); } void QtVCardGeneralField::setStarVisible(const bool isVisible) { - starVisible = isVisible; - updatePreferredStarVisibility(); + starVisible = isVisible; + updatePreferredStarVisibility(); } bool QtVCardGeneralField::getStarVisible() const { - return starVisible; + return starVisible; } void QtVCardGeneralField::setPreferred(const bool preferred) { - if (preferredCheckBox) preferredCheckBox->setChecked(preferred); - updatePreferredStarVisibility(); + if (preferredCheckBox) preferredCheckBox->setChecked(preferred); + updatePreferredStarVisibility(); } bool QtVCardGeneralField::getPreferred() const { - return preferredCheckBox ? preferredCheckBox->isChecked() : false; + return preferredCheckBox ? preferredCheckBox->isChecked() : false; } void QtVCardGeneralField::customCleanup() { } QtTagComboBox* QtVCardGeneralField::getTagComboBox() const { - return tagComboBox; + return tagComboBox; } QGridLayout* QtVCardGeneralField::getGridLayout() const { - return layout; + return layout; } void QtVCardGeneralField::handleCloseButtonClicked() { - customCleanup(); - foreach(QWidget* widget, childWidgets) { - widget->hide(); - layout->removeWidget(widget); - } - deleteField(this); + customCleanup(); + foreach(QWidget* widget, childWidgets) { + widget->hide(); + layout->removeWidget(widget); + } + deleteField(this); } void QtVCardGeneralField::handlePreferredStarStateChanged(int state) { - if (state == Qt::Checked) { - QToolTip::showText(QCursor::pos(), tr("Marked as your preferred %1. Click again to undo.").arg(labelText)); - } + if (state == Qt::Checked) { + QToolTip::showText(QCursor::pos(), tr("Marked as your preferred %1. Click again to undo.").arg(labelText)); + } } void QtVCardGeneralField::updatePreferredStarVisibility() { - if (preferredCheckBox) { - bool showStar = false; - if (editable) { - if (starVisible) { - showStar = true; - } - else { - showStar = preferredCheckBox->isChecked(); - } - } - else { - showStar = preferredCheckBox->isChecked(); - } - preferredCheckBox->setVisible(showStar); - preferredCheckBox->setEnabled(editable); - } + if (preferredCheckBox) { + bool showStar = false; + if (editable) { + if (starVisible) { + showStar = true; + } + else { + showStar = preferredCheckBox->isChecked(); + } + } + else { + showStar = preferredCheckBox->isChecked(); + } + preferredCheckBox->setVisible(showStar); + preferredCheckBox->setEnabled(editable); + } } } diff --git a/Swift/QtUI/QtVCardWidget/QtVCardGeneralField.h b/Swift/QtUI/QtVCardWidget/QtVCardGeneralField.h index 6583d12..d907196 100644 --- a/Swift/QtUI/QtVCardWidget/QtVCardGeneralField.h +++ b/Swift/QtUI/QtVCardWidget/QtVCardGeneralField.h @@ -25,69 +25,69 @@ namespace Swift { class QtElidingLabel; /* - * covers features like: - * - preffered (star ceckbox) - * - combo check box - * - label - * - remove button + * covers features like: + * - preffered (star ceckbox) + * - combo check box + * - label + * - remove button */ class QtVCardGeneralField : public QWidget { - Q_OBJECT - Q_PROPERTY(bool editable READ isEditable WRITE setEditable NOTIFY editableChanged) - Q_PROPERTY(bool empty READ isEmpty) - - public: - explicit QtVCardGeneralField(QWidget* parent = 0, QGridLayout* layout = 0, bool editable = false, int row = 0, QString label = QString(), - bool preferrable = true, bool taggable = true); - virtual ~QtVCardGeneralField(); - - void initialize(); - - virtual bool isEditable() const; - virtual void setEditable(bool); - - virtual bool isEmpty() const = 0; - - void setStarVisible(const bool isVisible); - bool getStarVisible() const; - - void setPreferred(const bool preferred); - bool getPreferred() const; - - protected: - virtual void setupContentWidgets() = 0; - virtual void customCleanup(); - - QtTagComboBox* getTagComboBox() const; - QGridLayout* getGridLayout() const; - - signals: - void editableChanged(bool); - void deleteField(QtVCardGeneralField*); - - public slots: - void handleCloseButtonClicked(); - void handlePreferredStarStateChanged(int statte); - - protected: - QList<QWidget*> childWidgets; - - private: - void updatePreferredStarVisibility(); - - private: - bool editable; - bool preferrable; - bool starVisible; - bool taggable; - QGridLayout* layout; - int row; - QCheckBox* preferredCheckBox; - QLabel* label; - QString labelText; - QtTagComboBox* tagComboBox; - QtElidingLabel* tagLabel; - QtCloseButton* closeButton; + Q_OBJECT + Q_PROPERTY(bool editable READ isEditable WRITE setEditable NOTIFY editableChanged) + Q_PROPERTY(bool empty READ isEmpty) + + public: + explicit QtVCardGeneralField(QWidget* parent = 0, QGridLayout* layout = 0, bool editable = false, int row = 0, QString label = QString(), + bool preferrable = true, bool taggable = true); + virtual ~QtVCardGeneralField(); + + void initialize(); + + virtual bool isEditable() const; + virtual void setEditable(bool); + + virtual bool isEmpty() const = 0; + + void setStarVisible(const bool isVisible); + bool getStarVisible() const; + + void setPreferred(const bool preferred); + bool getPreferred() const; + + protected: + virtual void setupContentWidgets() = 0; + virtual void customCleanup(); + + QtTagComboBox* getTagComboBox() const; + QGridLayout* getGridLayout() const; + + signals: + void editableChanged(bool); + void deleteField(QtVCardGeneralField*); + + public slots: + void handleCloseButtonClicked(); + void handlePreferredStarStateChanged(int statte); + + protected: + QList<QWidget*> childWidgets; + + private: + void updatePreferredStarVisibility(); + + private: + bool editable; + bool preferrable; + bool starVisible; + bool taggable; + QGridLayout* layout; + int row; + QCheckBox* preferredCheckBox; + QLabel* label; + QString labelText; + QtTagComboBox* tagComboBox; + QtElidingLabel* tagLabel; + QtCloseButton* closeButton; }; } diff --git a/Swift/QtUI/QtVCardWidget/QtVCardHomeWork.cpp b/Swift/QtUI/QtVCardWidget/QtVCardHomeWork.cpp index 3be6901..c147c68 100644 --- a/Swift/QtUI/QtVCardWidget/QtVCardHomeWork.cpp +++ b/Swift/QtUI/QtVCardWidget/QtVCardHomeWork.cpp @@ -21,25 +21,25 @@ QtVCardHomeWork::~QtVCardHomeWork() { } void QtVCardHomeWork::setTagComboBox(QtTagComboBox* tagBox) { - tagComboBox = tagBox; - tagComboBox->addTag("home", QObject::tr("Home")); - tagComboBox->addTag("work", QObject::tr("Work")); + tagComboBox = tagBox; + tagComboBox->addTag("home", QObject::tr("Home")); + tagComboBox->addTag("work", QObject::tr("Work")); } void QtVCardHomeWork::setHome(const bool home) { - tagComboBox->setTag("home", home); + tagComboBox->setTag("home", home); } bool QtVCardHomeWork::getHome() const { - return tagComboBox->isTagSet("home"); + return tagComboBox->isTagSet("home"); } void QtVCardHomeWork::setWork(const bool work) { - tagComboBox->setTag("work", work); + tagComboBox->setTag("work", work); } bool QtVCardHomeWork::getWork() const { - return tagComboBox->isTagSet("work"); + return tagComboBox->isTagSet("work"); } } diff --git a/Swift/QtUI/QtVCardWidget/QtVCardHomeWork.h b/Swift/QtUI/QtVCardWidget/QtVCardHomeWork.h index aea2ff2..dd1452a 100644 --- a/Swift/QtUI/QtVCardWidget/QtVCardHomeWork.h +++ b/Swift/QtUI/QtVCardWidget/QtVCardHomeWork.h @@ -19,19 +19,19 @@ namespace Swift { class QtVCardHomeWork { - public: - QtVCardHomeWork(); - virtual ~QtVCardHomeWork(); + public: + QtVCardHomeWork(); + virtual ~QtVCardHomeWork(); - void setTagComboBox(QtTagComboBox* tagBox); + void setTagComboBox(QtTagComboBox* tagBox); - void setHome(const bool home); - bool getHome() const; - void setWork(const bool work); - bool getWork() const; + void setHome(const bool home); + bool getHome() const; + void setWork(const bool work); + bool getWork() const; - private: - QtTagComboBox* tagComboBox; + private: + QtTagComboBox* tagComboBox; }; } diff --git a/Swift/QtUI/QtVCardWidget/QtVCardInternetEMailField.cpp b/Swift/QtUI/QtVCardWidget/QtVCardInternetEMailField.cpp index 9be9737..e563ca2 100644 --- a/Swift/QtUI/QtVCardWidget/QtVCardInternetEMailField.cpp +++ b/Swift/QtUI/QtVCardWidget/QtVCardInternetEMailField.cpp @@ -24,66 +24,66 @@ namespace Swift { QtVCardInternetEMailField::QtVCardInternetEMailField(QWidget* parent, QGridLayout *layout, bool editable) : - QtVCardGeneralField(parent, layout, editable, layout->rowCount(), tr("E-Mail")), emailLineEdit(NULL), emailLabel(NULL) { - connect(this, SIGNAL(editableChanged(bool)), SLOT(handleEditibleChanged(bool))); + QtVCardGeneralField(parent, layout, editable, layout->rowCount(), tr("E-Mail")), emailLineEdit(NULL), emailLabel(NULL) { + connect(this, SIGNAL(editableChanged(bool)), SLOT(handleEditibleChanged(bool))); } QtVCardInternetEMailField::~QtVCardInternetEMailField() { - disconnect(this, SLOT(handleEditibleChanged(bool))); + disconnect(this, SLOT(handleEditibleChanged(bool))); } void QtVCardInternetEMailField::setupContentWidgets() { - emailLabel = new QLabel(this); - emailLabel->setOpenExternalLinks(true); - emailLabel->setTextInteractionFlags(Qt::LinksAccessibleByMouse | Qt::LinksAccessibleByKeyboard); - emailLineEdit = new QtResizableLineEdit(this); + emailLabel = new QLabel(this); + emailLabel->setOpenExternalLinks(true); + emailLabel->setTextInteractionFlags(Qt::LinksAccessibleByMouse | Qt::LinksAccessibleByKeyboard); + emailLineEdit = new QtResizableLineEdit(this); #if QT_VERSION >= 0x040700 - emailLineEdit->setPlaceholderText(tr("alice@wonderland.lit")); + emailLineEdit->setPlaceholderText(tr("alice@wonderland.lit")); #endif - QHBoxLayout* emailLayout = new QHBoxLayout(); - emailLayout->addWidget(emailLabel); - emailLayout->addWidget(emailLineEdit); - getGridLayout()->addLayout(emailLayout, getGridLayout()->rowCount()-1, 2, 1, 2, Qt::AlignVCenter); - setTabOrder(emailLineEdit, getTagComboBox()); - QtVCardHomeWork::setTagComboBox(getTagComboBox()); - emailLabel->hide(); - childWidgets << emailLabel << emailLineEdit; + QHBoxLayout* emailLayout = new QHBoxLayout(); + emailLayout->addWidget(emailLabel); + emailLayout->addWidget(emailLineEdit); + getGridLayout()->addLayout(emailLayout, getGridLayout()->rowCount()-1, 2, 1, 2, Qt::AlignVCenter); + setTabOrder(emailLineEdit, getTagComboBox()); + QtVCardHomeWork::setTagComboBox(getTagComboBox()); + emailLabel->hide(); + childWidgets << emailLabel << emailLineEdit; } bool QtVCardInternetEMailField::isEmpty() const { - return emailLineEdit->text().isEmpty(); + return emailLineEdit->text().isEmpty(); } void QtVCardInternetEMailField::setInternetEMailAddress(const VCard::EMailAddress& address) { - assert(address.isInternet); - setPreferred(address.isPreferred); - setHome(address.isHome); - setWork(address.isWork); - emailLineEdit->setText(P2QSTRING(address.address)); + assert(address.isInternet); + setPreferred(address.isPreferred); + setHome(address.isHome); + setWork(address.isWork); + emailLineEdit->setText(P2QSTRING(address.address)); } VCard::EMailAddress QtVCardInternetEMailField::getInternetEMailAddress() const { - VCard::EMailAddress address; - address.isInternet = true; - address.isPreferred = getPreferred(); - address.isHome = getHome(); - address.isWork = getWork(); - address.address = Q2PSTRING(emailLineEdit->text()); - return address; + VCard::EMailAddress address; + address.isInternet = true; + address.isPreferred = getPreferred(); + address.isHome = getHome(); + address.isWork = getWork(); + address.address = Q2PSTRING(emailLineEdit->text()); + return address; } void QtVCardInternetEMailField::handleEditibleChanged(bool isEditable) { - assert(emailLineEdit); - assert(emailLabel); + assert(emailLineEdit); + assert(emailLabel); - if (isEditable) { - emailLineEdit->show(); - emailLabel->hide(); - } else { - emailLineEdit->hide(); - emailLabel->setText(QString("<a href=\"mailto:%1\">%1</a>").arg(QtUtilities::htmlEscape(emailLineEdit->text()))); - emailLabel->show(); - } + if (isEditable) { + emailLineEdit->show(); + emailLabel->hide(); + } else { + emailLineEdit->hide(); + emailLabel->setText(QString("<a href=\"mailto:%1\">%1</a>").arg(QtUtilities::htmlEscape(emailLineEdit->text()))); + emailLabel->show(); + } } } diff --git a/Swift/QtUI/QtVCardWidget/QtVCardInternetEMailField.h b/Swift/QtUI/QtVCardWidget/QtVCardInternetEMailField.h index e3a5d79..63a83e2 100644 --- a/Swift/QtUI/QtVCardWidget/QtVCardInternetEMailField.h +++ b/Swift/QtUI/QtVCardWidget/QtVCardInternetEMailField.h @@ -22,28 +22,28 @@ namespace Swift { class QtVCardInternetEMailField : public QtVCardGeneralField, public QtVCardHomeWork { - Q_OBJECT + Q_OBJECT - public: - GENERIC_QT_VCARD_FIELD_INFO(tr("E-Mail"), UNLIMITED_INSTANCES, QtVCardInternetEMailField) + public: + GENERIC_QT_VCARD_FIELD_INFO(tr("E-Mail"), UNLIMITED_INSTANCES, QtVCardInternetEMailField) - QtVCardInternetEMailField(QWidget* parent = 0, QGridLayout* layout = 0, bool editable = false); - virtual ~QtVCardInternetEMailField(); + QtVCardInternetEMailField(QWidget* parent = 0, QGridLayout* layout = 0, bool editable = false); + virtual ~QtVCardInternetEMailField(); - virtual bool isEmpty() const; + virtual bool isEmpty() const; - void setInternetEMailAddress(const VCard::EMailAddress& address); - VCard::EMailAddress getInternetEMailAddress() const; + void setInternetEMailAddress(const VCard::EMailAddress& address); + VCard::EMailAddress getInternetEMailAddress() const; - protected: - virtual void setupContentWidgets(); + protected: + virtual void setupContentWidgets(); - public slots: - void handleEditibleChanged(bool isEditable); + public slots: + void handleEditibleChanged(bool isEditable); - private: - QtResizableLineEdit* emailLineEdit; - QLabel* emailLabel; + private: + QtResizableLineEdit* emailLineEdit; + QLabel* emailLabel; }; } diff --git a/Swift/QtUI/QtVCardWidget/QtVCardJIDField.cpp b/Swift/QtUI/QtVCardWidget/QtVCardJIDField.cpp index 4c23036..705ad6b 100644 --- a/Swift/QtUI/QtVCardWidget/QtVCardJIDField.cpp +++ b/Swift/QtUI/QtVCardWidget/QtVCardJIDField.cpp @@ -23,58 +23,58 @@ namespace Swift { QtVCardJIDField::QtVCardJIDField(QWidget* parent, QGridLayout *layout, bool editable) : - QtVCardGeneralField(parent, layout, editable, layout->rowCount(), tr("JID"), false, false), jidLabel(NULL), jidLineEdit(NULL) { - connect(this, SIGNAL(editableChanged(bool)), SLOT(handleEditibleChanged(bool))); + QtVCardGeneralField(parent, layout, editable, layout->rowCount(), tr("JID"), false, false), jidLabel(NULL), jidLineEdit(NULL) { + connect(this, SIGNAL(editableChanged(bool)), SLOT(handleEditibleChanged(bool))); } QtVCardJIDField::~QtVCardJIDField() { - disconnect(this, SLOT(handleEditibleChanged(bool))); + disconnect(this, SLOT(handleEditibleChanged(bool))); } void QtVCardJIDField::setupContentWidgets() { - jidLabel = new QLabel(this); - jidLabel->setOpenExternalLinks(true); - jidLabel->setTextInteractionFlags(Qt::LinksAccessibleByMouse | Qt::LinksAccessibleByKeyboard); - jidLineEdit = new QtResizableLineEdit(this); + jidLabel = new QLabel(this); + jidLabel->setOpenExternalLinks(true); + jidLabel->setTextInteractionFlags(Qt::LinksAccessibleByMouse | Qt::LinksAccessibleByKeyboard); + jidLineEdit = new QtResizableLineEdit(this); #if QT_VERSION >= 0x040700 - jidLineEdit->setPlaceholderText(tr("alice@wonderland.lit")); + jidLineEdit->setPlaceholderText(tr("alice@wonderland.lit")); #endif - QHBoxLayout* jidLayout = new QHBoxLayout(); - jidLayout->addWidget(jidLabel); - jidLayout->addWidget(jidLineEdit); - getGridLayout()->addLayout(jidLayout, getGridLayout()->rowCount()-1, 2, 1, 2, Qt::AlignVCenter); + QHBoxLayout* jidLayout = new QHBoxLayout(); + jidLayout->addWidget(jidLabel); + jidLayout->addWidget(jidLineEdit); + getGridLayout()->addLayout(jidLayout, getGridLayout()->rowCount()-1, 2, 1, 2, Qt::AlignVCenter); - jidLabel->hide(); - getTagComboBox()->hide(); + jidLabel->hide(); + getTagComboBox()->hide(); - childWidgets << jidLabel << jidLineEdit; + childWidgets << jidLabel << jidLineEdit; } bool QtVCardJIDField::isEmpty() const { - return jidLineEdit->text().isEmpty(); + return jidLineEdit->text().isEmpty(); } void QtVCardJIDField::setJID(const JID& jid) { - std::string jidStr = jid.toBare().toString(); - jidLineEdit->setText(P2QSTRING(jidStr)); + std::string jidStr = jid.toBare().toString(); + jidLineEdit->setText(P2QSTRING(jidStr)); } JID QtVCardJIDField::getJID() const { - return JID(Q2PSTRING(jidLineEdit->text())); + return JID(Q2PSTRING(jidLineEdit->text())); } void QtVCardJIDField::handleEditibleChanged(bool isEditable) { - assert(jidLineEdit); - assert(jidLabel); - - if (isEditable) { - jidLineEdit->show(); - jidLabel->hide(); - } else { - jidLineEdit->hide(); - jidLabel->setText(QString("<a href=\"xmpp:%1\">%1</a>").arg(QtUtilities::htmlEscape(jidLineEdit->text()))); - jidLabel->show(); - } + assert(jidLineEdit); + assert(jidLabel); + + if (isEditable) { + jidLineEdit->show(); + jidLabel->hide(); + } else { + jidLineEdit->hide(); + jidLabel->setText(QString("<a href=\"xmpp:%1\">%1</a>").arg(QtUtilities::htmlEscape(jidLineEdit->text()))); + jidLabel->show(); + } } } diff --git a/Swift/QtUI/QtVCardWidget/QtVCardJIDField.h b/Swift/QtUI/QtVCardWidget/QtVCardJIDField.h index 4e75885..2e9b4ef 100644 --- a/Swift/QtUI/QtVCardWidget/QtVCardJIDField.h +++ b/Swift/QtUI/QtVCardWidget/QtVCardJIDField.h @@ -21,28 +21,28 @@ namespace Swift { class QtVCardJIDField : public QtVCardGeneralField { - Q_OBJECT + Q_OBJECT - public: - GENERIC_QT_VCARD_FIELD_INFO(tr("JID"), UNLIMITED_INSTANCES, QtVCardJIDField) + public: + GENERIC_QT_VCARD_FIELD_INFO(tr("JID"), UNLIMITED_INSTANCES, QtVCardJIDField) - QtVCardJIDField(QWidget* parent = 0, QGridLayout* layout = 0, bool editable = false); - virtual ~QtVCardJIDField(); + QtVCardJIDField(QWidget* parent = 0, QGridLayout* layout = 0, bool editable = false); + virtual ~QtVCardJIDField(); - virtual bool isEmpty() const; + virtual bool isEmpty() const; - void setJID(const JID& jid); - JID getJID() const; + void setJID(const JID& jid); + JID getJID() const; - protected: - virtual void setupContentWidgets(); + protected: + virtual void setupContentWidgets(); - public slots: - void handleEditibleChanged(bool isEditable); + public slots: + void handleEditibleChanged(bool isEditable); - private: - QLabel* jidLabel; - QtResizableLineEdit* jidLineEdit; + private: + QLabel* jidLabel; + QtResizableLineEdit* jidLineEdit; }; } diff --git a/Swift/QtUI/QtVCardWidget/QtVCardOrganizationField.cpp b/Swift/QtUI/QtVCardWidget/QtVCardOrganizationField.cpp index ba51078..8b94c42 100644 --- a/Swift/QtUI/QtVCardWidget/QtVCardOrganizationField.cpp +++ b/Swift/QtUI/QtVCardWidget/QtVCardOrganizationField.cpp @@ -17,129 +17,129 @@ namespace Swift { QtVCardOrganizationField::QtVCardOrganizationField(QWidget* parent, QGridLayout *layout, bool editable) : - QtVCardGeneralField(parent, layout, editable, layout->rowCount(), tr("Organization"), false, false), organizationLabel(NULL), organizationLineEdit(NULL), unitsTreeWidget(NULL), itemDelegate(NULL) { - connect(this, SIGNAL(editableChanged(bool)), SLOT(handleEditibleChanged(bool))); + QtVCardGeneralField(parent, layout, editable, layout->rowCount(), tr("Organization"), false, false), organizationLabel(NULL), organizationLineEdit(NULL), unitsTreeWidget(NULL), itemDelegate(NULL) { + connect(this, SIGNAL(editableChanged(bool)), SLOT(handleEditibleChanged(bool))); } QtVCardOrganizationField::~QtVCardOrganizationField() { - disconnect(this, SLOT(handleEditibleChanged(bool))); + disconnect(this, SLOT(handleEditibleChanged(bool))); } void QtVCardOrganizationField::setupContentWidgets() { - organizationLabel = new QLabel(this); - organizationLabel->setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard); - organizationLineEdit = new QtResizableLineEdit(this); - QHBoxLayout* organizationLayout = new QHBoxLayout(); - organizationLayout->addWidget(organizationLabel); - organizationLayout->addWidget(organizationLineEdit); + organizationLabel = new QLabel(this); + organizationLabel->setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard); + organizationLineEdit = new QtResizableLineEdit(this); + QHBoxLayout* organizationLayout = new QHBoxLayout(); + organizationLayout->addWidget(organizationLabel); + organizationLayout->addWidget(organizationLineEdit); - getGridLayout()->addLayout(organizationLayout, getGridLayout()->rowCount()-1, 2, 1, 2, Qt::AlignVCenter); + getGridLayout()->addLayout(organizationLayout, getGridLayout()->rowCount()-1, 2, 1, 2, Qt::AlignVCenter); - itemDelegate = new QtRemovableItemDelegate(style()); + itemDelegate = new QtRemovableItemDelegate(style()); - unitsTreeWidget = new QTreeWidget(this); - connect(unitsTreeWidget->model(), SIGNAL(rowsRemoved(QModelIndex, int, int)), SLOT(handleRowsRemoved(QModelIndex,int,int))); - unitsTreeWidget->setColumnCount(2); - unitsTreeWidget->header()->setStretchLastSection(false); - unitsTreeWidget->header()->resizeSection(1, itemDelegate->sizeHint(QStyleOptionViewItem(), QModelIndex()).width()); + unitsTreeWidget = new QTreeWidget(this); + connect(unitsTreeWidget->model(), SIGNAL(rowsRemoved(QModelIndex, int, int)), SLOT(handleRowsRemoved(QModelIndex,int,int))); + unitsTreeWidget->setColumnCount(2); + unitsTreeWidget->header()->setStretchLastSection(false); + unitsTreeWidget->header()->resizeSection(1, itemDelegate->sizeHint(QStyleOptionViewItem(), QModelIndex()).width()); #if QT_VERSION >= 0x050000 - unitsTreeWidget->header()->setSectionResizeMode(0, QHeaderView::Stretch); + unitsTreeWidget->header()->setSectionResizeMode(0, QHeaderView::Stretch); #else - unitsTreeWidget->header()->setResizeMode(0, QHeaderView::Stretch); + unitsTreeWidget->header()->setResizeMode(0, QHeaderView::Stretch); #endif - unitsTreeWidget->setHeaderHidden(true); - unitsTreeWidget->setRootIsDecorated(false); - unitsTreeWidget->setEditTriggers(QAbstractItemView::DoubleClicked); - unitsTreeWidget->setItemDelegateForColumn(1, itemDelegate); - connect(unitsTreeWidget, SIGNAL(itemChanged(QTreeWidgetItem*,int)), SLOT(handleItemChanged(QTreeWidgetItem*,int))); - getGridLayout()->addWidget(unitsTreeWidget, getGridLayout()->rowCount()-1, 4, 2, 1); + unitsTreeWidget->setHeaderHidden(true); + unitsTreeWidget->setRootIsDecorated(false); + unitsTreeWidget->setEditTriggers(QAbstractItemView::DoubleClicked); + unitsTreeWidget->setItemDelegateForColumn(1, itemDelegate); + connect(unitsTreeWidget, SIGNAL(itemChanged(QTreeWidgetItem*,int)), SLOT(handleItemChanged(QTreeWidgetItem*,int))); + getGridLayout()->addWidget(unitsTreeWidget, getGridLayout()->rowCount()-1, 4, 2, 1); - QTreeWidgetItem* item = new QTreeWidgetItem(QStringList("") << ""); - item->setFlags(item->flags() | Qt::ItemIsEditable); - unitsTreeWidget->addTopLevelItem(item); + QTreeWidgetItem* item = new QTreeWidgetItem(QStringList("") << ""); + item->setFlags(item->flags() | Qt::ItemIsEditable); + unitsTreeWidget->addTopLevelItem(item); - getTagComboBox()->hide(); - organizationLabel->hide(); - childWidgets << organizationLabel << organizationLineEdit << unitsTreeWidget; + getTagComboBox()->hide(); + organizationLabel->hide(); + childWidgets << organizationLabel << organizationLineEdit << unitsTreeWidget; } bool QtVCardOrganizationField::isEmpty() const { - return organizationLineEdit->text().isEmpty() && unitsTreeWidget->model()->rowCount() != 0; + return organizationLineEdit->text().isEmpty() && unitsTreeWidget->model()->rowCount() != 0; } void QtVCardOrganizationField::setOrganization(const VCard::Organization& organization) { - organizationLineEdit->setText(P2QSTRING(organization.name)); - unitsTreeWidget->clear(); - foreach(std::string unit, organization.units) { - QTreeWidgetItem* item = new QTreeWidgetItem(QStringList(P2QSTRING(unit)) << ""); - item->setFlags(item->flags() | Qt::ItemIsEditable); - unitsTreeWidget->addTopLevelItem(item); - } - - QTreeWidgetItem* item = new QTreeWidgetItem(QStringList("") << ""); - item->setFlags(item->flags() | Qt::ItemIsEditable); - unitsTreeWidget->addTopLevelItem(item); + organizationLineEdit->setText(P2QSTRING(organization.name)); + unitsTreeWidget->clear(); + foreach(std::string unit, organization.units) { + QTreeWidgetItem* item = new QTreeWidgetItem(QStringList(P2QSTRING(unit)) << ""); + item->setFlags(item->flags() | Qt::ItemIsEditable); + unitsTreeWidget->addTopLevelItem(item); + } + + QTreeWidgetItem* item = new QTreeWidgetItem(QStringList("") << ""); + item->setFlags(item->flags() | Qt::ItemIsEditable); + unitsTreeWidget->addTopLevelItem(item); } VCard::Organization QtVCardOrganizationField::getOrganization() const { - VCard::Organization organization; - organization.name = Q2PSTRING(organizationLineEdit->text()); - for(int i=0; i < unitsTreeWidget->topLevelItemCount(); ++i) { - QTreeWidgetItem* row = unitsTreeWidget->topLevelItem(i); - if (!row->text(0).isEmpty()) { - organization.units.push_back(Q2PSTRING(row->text(0))); - } - } - - return organization; + VCard::Organization organization; + organization.name = Q2PSTRING(organizationLineEdit->text()); + for(int i=0; i < unitsTreeWidget->topLevelItemCount(); ++i) { + QTreeWidgetItem* row = unitsTreeWidget->topLevelItem(i); + if (!row->text(0).isEmpty()) { + organization.units.push_back(Q2PSTRING(row->text(0))); + } + } + + return organization; } void QtVCardOrganizationField::handleEditibleChanged(bool isEditable) { - assert(organizationLineEdit); - assert(unitsTreeWidget); - - organizationLineEdit->setVisible(isEditable); - organizationLabel->setVisible(!isEditable); - - if (!isEditable) { - QString label; - for(int i=0; i < unitsTreeWidget->topLevelItemCount(); ++i) { - QTreeWidgetItem* row = unitsTreeWidget->topLevelItem(i); - if (!row->text(0).isEmpty()) { - label += row->text(0) + ", "; - } - } - label += organizationLineEdit->text(); - organizationLabel->setText(label); - } - unitsTreeWidget->setVisible(isEditable); + assert(organizationLineEdit); + assert(unitsTreeWidget); + + organizationLineEdit->setVisible(isEditable); + organizationLabel->setVisible(!isEditable); + + if (!isEditable) { + QString label; + for(int i=0; i < unitsTreeWidget->topLevelItemCount(); ++i) { + QTreeWidgetItem* row = unitsTreeWidget->topLevelItem(i); + if (!row->text(0).isEmpty()) { + label += row->text(0) + ", "; + } + } + label += organizationLineEdit->text(); + organizationLabel->setText(label); + } + unitsTreeWidget->setVisible(isEditable); } void QtVCardOrganizationField::handleItemChanged(QTreeWidgetItem *, int) { - guaranteeEmptyRow(); + guaranteeEmptyRow(); } void QtVCardOrganizationField::handleRowsRemoved(const QModelIndex&, int, int) { - guaranteeEmptyRow(); + guaranteeEmptyRow(); } void QtVCardOrganizationField::guaranteeEmptyRow() { - bool hasEmptyRow = false; - QList<QTreeWidgetItem*> rows = unitsTreeWidget->findItems("", Qt::MatchFixedString); - foreach(QTreeWidgetItem* row, rows) { - if (row->text(0).isEmpty()) { - hasEmptyRow = true; - } - } - - if (!hasEmptyRow) { - QTreeWidgetItem* item = new QTreeWidgetItem(QStringList("") << ""); - item->setFlags(item->flags() | Qt::ItemIsEditable); - unitsTreeWidget->addTopLevelItem(item); - unitsTreeWidget->setCurrentItem(item); - } + bool hasEmptyRow = false; + QList<QTreeWidgetItem*> rows = unitsTreeWidget->findItems("", Qt::MatchFixedString); + foreach(QTreeWidgetItem* row, rows) { + if (row->text(0).isEmpty()) { + hasEmptyRow = true; + } + } + + if (!hasEmptyRow) { + QTreeWidgetItem* item = new QTreeWidgetItem(QStringList("") << ""); + item->setFlags(item->flags() | Qt::ItemIsEditable); + unitsTreeWidget->addTopLevelItem(item); + unitsTreeWidget->setCurrentItem(item); + } } } diff --git a/Swift/QtUI/QtVCardWidget/QtVCardOrganizationField.h b/Swift/QtUI/QtVCardWidget/QtVCardOrganizationField.h index f567e92..6de3167 100644 --- a/Swift/QtUI/QtVCardWidget/QtVCardOrganizationField.h +++ b/Swift/QtUI/QtVCardWidget/QtVCardOrganizationField.h @@ -24,37 +24,37 @@ namespace Swift { class QtVCardOrganizationField : public QtVCardGeneralField { - Q_OBJECT + Q_OBJECT - public: - GENERIC_QT_VCARD_FIELD_INFO(tr("Organization"), UNLIMITED_INSTANCES, QtVCardOrganizationField) + public: + GENERIC_QT_VCARD_FIELD_INFO(tr("Organization"), UNLIMITED_INSTANCES, QtVCardOrganizationField) - QtVCardOrganizationField(QWidget* parent = 0, QGridLayout* layout = 0, bool editable = false); - virtual ~QtVCardOrganizationField(); + QtVCardOrganizationField(QWidget* parent = 0, QGridLayout* layout = 0, bool editable = false); + virtual ~QtVCardOrganizationField(); - virtual bool isEmpty() const; + virtual bool isEmpty() const; - void setOrganization(const VCard::Organization& organization); - VCard::Organization getOrganization() const; + void setOrganization(const VCard::Organization& organization); + VCard::Organization getOrganization() const; - protected: - virtual void setupContentWidgets(); + protected: + virtual void setupContentWidgets(); - public slots: - void handleEditibleChanged(bool isEditable); + public slots: + void handleEditibleChanged(bool isEditable); - private slots: - void handleItemChanged(QTreeWidgetItem*, int); - void handleRowsRemoved(const QModelIndex&, int, int); + private slots: + void handleItemChanged(QTreeWidgetItem*, int); + void handleRowsRemoved(const QModelIndex&, int, int); - private: - void guaranteeEmptyRow(); + private: + void guaranteeEmptyRow(); - private: - QLabel* organizationLabel; - QtResizableLineEdit* organizationLineEdit; - QTreeWidget* unitsTreeWidget; - QtRemovableItemDelegate* itemDelegate; + private: + QLabel* organizationLabel; + QtResizableLineEdit* organizationLineEdit; + QTreeWidget* unitsTreeWidget; + QtRemovableItemDelegate* itemDelegate; }; } diff --git a/Swift/QtUI/QtVCardWidget/QtVCardPhotoAndNameFields.cpp b/Swift/QtUI/QtVCardWidget/QtVCardPhotoAndNameFields.cpp index 680fdb5..90d6e5e 100644 --- a/Swift/QtUI/QtVCardWidget/QtVCardPhotoAndNameFields.cpp +++ b/Swift/QtUI/QtVCardWidget/QtVCardPhotoAndNameFields.cpp @@ -19,134 +19,134 @@ namespace Swift { QtVCardPhotoAndNameFields::QtVCardPhotoAndNameFields(QWidget* parent) : - QWidget(parent), - ui(new Ui::QtVCardPhotoAndNameFields) { - ui->setupUi(this); - ui->lineEditPREFIX->hide(); - ui->lineEditMIDDLE->hide(); - ui->lineEditSUFFIX->hide(); - ui->lineEditFN->hide(); - ui->lineEditNICKNAME->hide(); - ui->labelFN->hide(); - ui->labelNICKNAME->hide(); - ui->labelFULLNAME->hide(); + QWidget(parent), + ui(new Ui::QtVCardPhotoAndNameFields) { + ui->setupUi(this); + ui->lineEditPREFIX->hide(); + ui->lineEditMIDDLE->hide(); + ui->lineEditSUFFIX->hide(); + ui->lineEditFN->hide(); + ui->lineEditNICKNAME->hide(); + ui->labelFN->hide(); + ui->labelNICKNAME->hide(); + ui->labelFULLNAME->hide(); #if QT_VERSION >= 0x040700 - ui->lineEditFN->setPlaceholderText(tr("Formatted Name")); - ui->lineEditNICKNAME->setPlaceholderText(tr("Nickname")); - ui->lineEditPREFIX->setPlaceholderText(tr("Prefix")); - ui->lineEditGIVEN->setPlaceholderText(tr("Given Name")); - ui->lineEditMIDDLE->setPlaceholderText(tr("Middle Name")); - ui->lineEditFAMILY->setPlaceholderText(tr("Last Name")); - ui->lineEditSUFFIX->setPlaceholderText(tr("Suffix")); + ui->lineEditFN->setPlaceholderText(tr("Formatted Name")); + ui->lineEditNICKNAME->setPlaceholderText(tr("Nickname")); + ui->lineEditPREFIX->setPlaceholderText(tr("Prefix")); + ui->lineEditGIVEN->setPlaceholderText(tr("Given Name")); + ui->lineEditMIDDLE->setPlaceholderText(tr("Middle Name")); + ui->lineEditFAMILY->setPlaceholderText(tr("Last Name")); + ui->lineEditSUFFIX->setPlaceholderText(tr("Suffix")); #endif - setEditable(false); + setEditable(false); } QtVCardPhotoAndNameFields::~QtVCardPhotoAndNameFields() { - delete ui; + delete ui; } bool QtVCardPhotoAndNameFields::isEditable() const { - return editable; + return editable; } void QtVCardPhotoAndNameFields::setEditable(bool editable) { - this->editable = editable; + this->editable = editable; - ui->avatarWidget->setEditable(editable); - ui->lineEditFN->setVisible(editable); - ui->labelFN->setVisible(!editable); + ui->avatarWidget->setEditable(editable); + ui->lineEditFN->setVisible(editable); + ui->labelFN->setVisible(!editable); - ui->lineEditNICKNAME->setVisible(editable); - ui->labelNICKNAME->setVisible(!editable); + ui->lineEditNICKNAME->setVisible(editable); + ui->labelNICKNAME->setVisible(!editable); - // prefix given middle last suffix - ui->lineEditPREFIX->setVisible(editable); - ui->lineEditGIVEN->setVisible(editable); - ui->lineEditMIDDLE->setVisible(editable); - ui->lineEditFAMILY->setVisible(editable); - ui->lineEditSUFFIX->setVisible(editable); - ui->labelFULLNAME->setVisible(!editable); + // prefix given middle last suffix + ui->lineEditPREFIX->setVisible(editable); + ui->lineEditGIVEN->setVisible(editable); + ui->lineEditMIDDLE->setVisible(editable); + ui->lineEditFAMILY->setVisible(editable); + ui->lineEditSUFFIX->setVisible(editable); + ui->labelFULLNAME->setVisible(!editable); - QStringList fullname; - fullname << ui->lineEditPREFIX->text() << ui->lineEditGIVEN->text() << ui->lineEditMIDDLE->text(); - fullname << ui->lineEditFAMILY->text() << ui->lineEditSUFFIX->text(); - for (QStringList::iterator i = fullname.begin(); i != fullname.end(); i++) { - *i = i->trimmed(); - } - ui->labelFULLNAME->setText((fullname.filter(QRegExp(".+"))).join(" ")); + QStringList fullname; + fullname << ui->lineEditPREFIX->text() << ui->lineEditGIVEN->text() << ui->lineEditMIDDLE->text(); + fullname << ui->lineEditFAMILY->text() << ui->lineEditSUFFIX->text(); + for (QStringList::iterator i = fullname.begin(); i != fullname.end(); i++) { + *i = i->trimmed(); + } + ui->labelFULLNAME->setText((fullname.filter(QRegExp(".+"))).join(" ")); } void QtVCardPhotoAndNameFields::setAvatar(const ByteArray &data, const std::string &type) { - ui->avatarWidget->setAvatar(data, type); + ui->avatarWidget->setAvatar(data, type); } ByteArray QtVCardPhotoAndNameFields::getAvatarData() const { - return ui->avatarWidget->getAvatarData(); + return ui->avatarWidget->getAvatarData(); } std::string QtVCardPhotoAndNameFields::getAvatarType() const { - return ui->avatarWidget->getAvatarType(); + return ui->avatarWidget->getAvatarType(); } void QtVCardPhotoAndNameFields::setFormattedName(const QString& formattedName) { - ui->lineEditFN->setText(formattedName); - ui->labelFN->setText(formattedName); + ui->lineEditFN->setText(formattedName); + ui->labelFN->setText(formattedName); } QString QtVCardPhotoAndNameFields::getFormattedName() const { - return ui->lineEditFN->text(); + return ui->lineEditFN->text(); } void QtVCardPhotoAndNameFields::setNickname(const QString& nickname) { - ui->lineEditNICKNAME->setText(nickname); - ui->labelNICKNAME->setText(nickname); + ui->lineEditNICKNAME->setText(nickname); + ui->labelNICKNAME->setText(nickname); } QString QtVCardPhotoAndNameFields::getNickname() const { - return ui->lineEditNICKNAME->text(); + return ui->lineEditNICKNAME->text(); } void QtVCardPhotoAndNameFields::setPrefix(const QString& prefix) { - ui->lineEditPREFIX->setText(prefix); + ui->lineEditPREFIX->setText(prefix); } QString QtVCardPhotoAndNameFields::getPrefix() const { - return ui->lineEditPREFIX->text(); + return ui->lineEditPREFIX->text(); } void QtVCardPhotoAndNameFields::setGivenName(const QString& givenName) { - ui->lineEditGIVEN->setText(givenName); + ui->lineEditGIVEN->setText(givenName); } QString QtVCardPhotoAndNameFields::getGivenName() const { - return ui->lineEditGIVEN->text(); + return ui->lineEditGIVEN->text(); } void QtVCardPhotoAndNameFields::setMiddleName(const QString& middleName) { - ui->lineEditMIDDLE->setText(middleName); + ui->lineEditMIDDLE->setText(middleName); } QString QtVCardPhotoAndNameFields::getMiddleName() const { - return ui->lineEditMIDDLE->text(); + return ui->lineEditMIDDLE->text(); } void QtVCardPhotoAndNameFields::setFamilyName(const QString& familyName) { - ui->lineEditFAMILY->setText(familyName); + ui->lineEditFAMILY->setText(familyName); } QString QtVCardPhotoAndNameFields::getFamilyName() const { - return ui->lineEditFAMILY->text(); + return ui->lineEditFAMILY->text(); } void QtVCardPhotoAndNameFields::setSuffix(const QString& suffix) { - ui->lineEditSUFFIX->setText(suffix); + ui->lineEditSUFFIX->setText(suffix); } QString QtVCardPhotoAndNameFields::getSuffix() const { - return ui->lineEditSUFFIX->text(); + return ui->lineEditSUFFIX->text(); } } diff --git a/Swift/QtUI/QtVCardWidget/QtVCardPhotoAndNameFields.h b/Swift/QtUI/QtVCardWidget/QtVCardPhotoAndNameFields.h index ac35109..a0bbb24 100644 --- a/Swift/QtUI/QtVCardWidget/QtVCardPhotoAndNameFields.h +++ b/Swift/QtUI/QtVCardWidget/QtVCardPhotoAndNameFields.h @@ -12,51 +12,51 @@ #include <Swiften/Base/ByteArray.h> namespace Ui { - class QtVCardPhotoAndNameFields; + class QtVCardPhotoAndNameFields; } namespace Swift { - class QtVCardPhotoAndNameFields : public QWidget { - Q_OBJECT - Q_PROPERTY(bool editable READ isEditable WRITE setEditable) + class QtVCardPhotoAndNameFields : public QWidget { + Q_OBJECT + Q_PROPERTY(bool editable READ isEditable WRITE setEditable) - public: - explicit QtVCardPhotoAndNameFields(QWidget* parent = 0); - ~QtVCardPhotoAndNameFields(); + public: + explicit QtVCardPhotoAndNameFields(QWidget* parent = 0); + ~QtVCardPhotoAndNameFields(); - bool isEditable() const; - void setEditable(bool); + bool isEditable() const; + void setEditable(bool); - void setAvatar(const ByteArray& data, const std::string& type); - ByteArray getAvatarData() const; - std::string getAvatarType() const; + void setAvatar(const ByteArray& data, const std::string& type); + ByteArray getAvatarData() const; + std::string getAvatarType() const; - void setFormattedName(const QString& formattedName); - QString getFormattedName() const; + void setFormattedName(const QString& formattedName); + QString getFormattedName() const; - void setNickname(const QString& nickname); - QString getNickname() const; + void setNickname(const QString& nickname); + QString getNickname() const; - void setPrefix(const QString& prefix); - QString getPrefix() const; + void setPrefix(const QString& prefix); + QString getPrefix() const; - void setGivenName(const QString& givenName); - QString getGivenName() const; + void setGivenName(const QString& givenName); + QString getGivenName() const; - void setMiddleName(const QString& middleName); - QString getMiddleName() const; + void setMiddleName(const QString& middleName); + QString getMiddleName() const; - void setFamilyName(const QString& familyName); - QString getFamilyName() const; + void setFamilyName(const QString& familyName); + QString getFamilyName() const; - void setSuffix(const QString& suffix); - QString getSuffix() const; + void setSuffix(const QString& suffix); + QString getSuffix() const; - private: - Ui::QtVCardPhotoAndNameFields* ui; - bool editable; - }; + private: + Ui::QtVCardPhotoAndNameFields* ui; + bool editable; + }; } diff --git a/Swift/QtUI/QtVCardWidget/QtVCardRoleField.cpp b/Swift/QtUI/QtVCardWidget/QtVCardRoleField.cpp index ce3cc2f..2881932 100644 --- a/Swift/QtUI/QtVCardWidget/QtVCardRoleField.cpp +++ b/Swift/QtUI/QtVCardWidget/QtVCardRoleField.cpp @@ -21,37 +21,37 @@ namespace Swift { QtVCardRoleField::QtVCardRoleField(QWidget* parent, QGridLayout *layout, bool editable) : - QtVCardGeneralField(parent, layout, editable, layout->rowCount(), tr("Role"), false, false), roleLineEdit(NULL) { - connect(this, SIGNAL(editableChanged(bool)), SLOT(handleEditibleChanged(bool))); + QtVCardGeneralField(parent, layout, editable, layout->rowCount(), tr("Role"), false, false), roleLineEdit(NULL) { + connect(this, SIGNAL(editableChanged(bool)), SLOT(handleEditibleChanged(bool))); } QtVCardRoleField::~QtVCardRoleField() { } void QtVCardRoleField::setupContentWidgets() { - roleLineEdit = new QtResizableLineEdit(this); - getGridLayout()->addWidget(roleLineEdit, getGridLayout()->rowCount()-1, 2, 1, 2, Qt::AlignVCenter); - getTagComboBox()->hide(); - childWidgets << roleLineEdit; + roleLineEdit = new QtResizableLineEdit(this); + getGridLayout()->addWidget(roleLineEdit, getGridLayout()->rowCount()-1, 2, 1, 2, Qt::AlignVCenter); + getTagComboBox()->hide(); + childWidgets << roleLineEdit; } bool QtVCardRoleField::isEmpty() const { - return roleLineEdit->text().isEmpty(); + return roleLineEdit->text().isEmpty(); } void QtVCardRoleField::setRole(const std::string& role) { - roleLineEdit->setText(P2QSTRING(role)); + roleLineEdit->setText(P2QSTRING(role)); } std::string QtVCardRoleField::getRole() const { - return Q2PSTRING(roleLineEdit->text()); + return Q2PSTRING(roleLineEdit->text()); } void QtVCardRoleField::handleEditibleChanged(bool isEditable) { - assert(roleLineEdit); + assert(roleLineEdit); - roleLineEdit->setEditable(isEditable); - roleLineEdit->setStyleSheet(isEditable ? "" : "QLineEdit { border: none; background: transparent; }"); + roleLineEdit->setEditable(isEditable); + roleLineEdit->setStyleSheet(isEditable ? "" : "QLineEdit { border: none; background: transparent; }"); } } diff --git a/Swift/QtUI/QtVCardWidget/QtVCardRoleField.h b/Swift/QtUI/QtVCardWidget/QtVCardRoleField.h index f2d5e75..40b5d0b 100644 --- a/Swift/QtUI/QtVCardWidget/QtVCardRoleField.h +++ b/Swift/QtUI/QtVCardWidget/QtVCardRoleField.h @@ -21,27 +21,27 @@ namespace Swift { class QtVCardRoleField : public QtVCardGeneralField { - Q_OBJECT + Q_OBJECT - public: - GENERIC_QT_VCARD_FIELD_INFO(tr("Role"), UNLIMITED_INSTANCES, QtVCardRoleField) + public: + GENERIC_QT_VCARD_FIELD_INFO(tr("Role"), UNLIMITED_INSTANCES, QtVCardRoleField) - QtVCardRoleField(QWidget* parent = 0, QGridLayout* layout = 0, bool editable = false); - virtual ~QtVCardRoleField(); + QtVCardRoleField(QWidget* parent = 0, QGridLayout* layout = 0, bool editable = false); + virtual ~QtVCardRoleField(); - virtual bool isEmpty() const; + virtual bool isEmpty() const; - void setRole(const std::string& role); - std::string getRole() const; + void setRole(const std::string& role); + std::string getRole() const; - protected: - virtual void setupContentWidgets(); + protected: + virtual void setupContentWidgets(); - public slots: - void handleEditibleChanged(bool isEditable); + public slots: + void handleEditibleChanged(bool isEditable); - private: - QtResizableLineEdit* roleLineEdit; + private: + QtResizableLineEdit* roleLineEdit; }; } diff --git a/Swift/QtUI/QtVCardWidget/QtVCardTelephoneField.cpp b/Swift/QtUI/QtVCardWidget/QtVCardTelephoneField.cpp index 57e2b27..4af2fa3 100644 --- a/Swift/QtUI/QtVCardWidget/QtVCardTelephoneField.cpp +++ b/Swift/QtUI/QtVCardWidget/QtVCardTelephoneField.cpp @@ -19,88 +19,88 @@ namespace Swift { QtVCardTelephoneField::QtVCardTelephoneField(QWidget* parent, QGridLayout *layout, bool editable) : - QtVCardGeneralField(parent, layout, editable, layout->rowCount(), tr("Telephone")), telephoneLineEdit(NULL) { - connect(this, SIGNAL(editableChanged(bool)), SLOT(handleEditibleChanged(bool))); + QtVCardGeneralField(parent, layout, editable, layout->rowCount(), tr("Telephone")), telephoneLineEdit(NULL) { + connect(this, SIGNAL(editableChanged(bool)), SLOT(handleEditibleChanged(bool))); } QtVCardTelephoneField::~QtVCardTelephoneField() { - disconnect(this, SLOT(handleEditibleChanged(bool))); + disconnect(this, SLOT(handleEditibleChanged(bool))); } void QtVCardTelephoneField::setupContentWidgets() { - telephoneLineEdit = new QtResizableLineEdit(this); + telephoneLineEdit = new QtResizableLineEdit(this); #if QT_VERSION >= 0x040700 - telephoneLineEdit->setPlaceholderText(tr("0118 999 881 999 119 7253")); + telephoneLineEdit->setPlaceholderText(tr("0118 999 881 999 119 7253")); #endif - getGridLayout()->addWidget(telephoneLineEdit, getGridLayout()->rowCount()-1, 2, 1, 2, Qt::AlignVCenter); - setTabOrder(telephoneLineEdit, getTagComboBox()); - QtVCardHomeWork::setTagComboBox(getTagComboBox()); - - getTagComboBox()->addTag("voice", QObject::tr("Voice")); - getTagComboBox()->addTag("fax", QObject::tr("Fax")); - getTagComboBox()->addTag("pager", QObject::tr("Pager")); - getTagComboBox()->addTag("msg", QObject::tr("Voice Messaging")); - getTagComboBox()->addTag("cell", QObject::tr("Cell")); - getTagComboBox()->addTag("video", QObject::tr("Video")); - getTagComboBox()->addTag("bbs", QObject::tr("Bulletin Board System")); - getTagComboBox()->addTag("modem", QObject::tr("Modem")); - getTagComboBox()->addTag("isdn", QObject::tr("ISDN")); - getTagComboBox()->addTag("pcs", QObject::tr("Personal Communication Services")); - - childWidgets << telephoneLineEdit; + getGridLayout()->addWidget(telephoneLineEdit, getGridLayout()->rowCount()-1, 2, 1, 2, Qt::AlignVCenter); + setTabOrder(telephoneLineEdit, getTagComboBox()); + QtVCardHomeWork::setTagComboBox(getTagComboBox()); + + getTagComboBox()->addTag("voice", QObject::tr("Voice")); + getTagComboBox()->addTag("fax", QObject::tr("Fax")); + getTagComboBox()->addTag("pager", QObject::tr("Pager")); + getTagComboBox()->addTag("msg", QObject::tr("Voice Messaging")); + getTagComboBox()->addTag("cell", QObject::tr("Cell")); + getTagComboBox()->addTag("video", QObject::tr("Video")); + getTagComboBox()->addTag("bbs", QObject::tr("Bulletin Board System")); + getTagComboBox()->addTag("modem", QObject::tr("Modem")); + getTagComboBox()->addTag("isdn", QObject::tr("ISDN")); + getTagComboBox()->addTag("pcs", QObject::tr("Personal Communication Services")); + + childWidgets << telephoneLineEdit; } bool QtVCardTelephoneField::isEmpty() const { - return telephoneLineEdit->text().isEmpty(); + return telephoneLineEdit->text().isEmpty(); } void QtVCardTelephoneField::setTelephone(const VCard::Telephone& telephone) { - setPreferred(telephone.isPreferred); - setHome(telephone.isHome); - setWork(telephone.isWork); - - telephoneLineEdit->setText(P2QSTRING(telephone.number)); - - getTagComboBox()->setTag("voice", telephone.isVoice); - getTagComboBox()->setTag("fax", telephone.isFax); - getTagComboBox()->setTag("pager", telephone.isPager); - getTagComboBox()->setTag("msg", telephone.isMSG); - getTagComboBox()->setTag("cell", telephone.isCell); - getTagComboBox()->setTag("video", telephone.isVideo); - getTagComboBox()->setTag("bbs", telephone.isBBS); - getTagComboBox()->setTag("modem", telephone.isModem); - getTagComboBox()->setTag("isdn", telephone.isISDN); - getTagComboBox()->setTag("pcs", telephone.isPCS); + setPreferred(telephone.isPreferred); + setHome(telephone.isHome); + setWork(telephone.isWork); + + telephoneLineEdit->setText(P2QSTRING(telephone.number)); + + getTagComboBox()->setTag("voice", telephone.isVoice); + getTagComboBox()->setTag("fax", telephone.isFax); + getTagComboBox()->setTag("pager", telephone.isPager); + getTagComboBox()->setTag("msg", telephone.isMSG); + getTagComboBox()->setTag("cell", telephone.isCell); + getTagComboBox()->setTag("video", telephone.isVideo); + getTagComboBox()->setTag("bbs", telephone.isBBS); + getTagComboBox()->setTag("modem", telephone.isModem); + getTagComboBox()->setTag("isdn", telephone.isISDN); + getTagComboBox()->setTag("pcs", telephone.isPCS); } VCard::Telephone QtVCardTelephoneField::getTelephone() const { - VCard::Telephone telephone; - - telephone.number = Q2PSTRING(telephoneLineEdit->text()); - - telephone.isPreferred = getPreferred(); - telephone.isHome = getHome(); - telephone.isWork = getWork(); - - telephone.isVoice = getTagComboBox()->isTagSet("voice"); - telephone.isFax = getTagComboBox()->isTagSet("fax"); - telephone.isPager = getTagComboBox()->isTagSet("pager"); - telephone.isMSG = getTagComboBox()->isTagSet("msg"); - telephone.isCell = getTagComboBox()->isTagSet("cell"); - telephone.isVideo = getTagComboBox()->isTagSet("video"); - telephone.isBBS = getTagComboBox()->isTagSet("bbs"); - telephone.isModem = getTagComboBox()->isTagSet("modem"); - telephone.isISDN = getTagComboBox()->isTagSet("isdn"); - telephone.isPCS = getTagComboBox()->isTagSet("pcs"); - - return telephone; + VCard::Telephone telephone; + + telephone.number = Q2PSTRING(telephoneLineEdit->text()); + + telephone.isPreferred = getPreferred(); + telephone.isHome = getHome(); + telephone.isWork = getWork(); + + telephone.isVoice = getTagComboBox()->isTagSet("voice"); + telephone.isFax = getTagComboBox()->isTagSet("fax"); + telephone.isPager = getTagComboBox()->isTagSet("pager"); + telephone.isMSG = getTagComboBox()->isTagSet("msg"); + telephone.isCell = getTagComboBox()->isTagSet("cell"); + telephone.isVideo = getTagComboBox()->isTagSet("video"); + telephone.isBBS = getTagComboBox()->isTagSet("bbs"); + telephone.isModem = getTagComboBox()->isTagSet("modem"); + telephone.isISDN = getTagComboBox()->isTagSet("isdn"); + telephone.isPCS = getTagComboBox()->isTagSet("pcs"); + + return telephone; } void QtVCardTelephoneField::handleEditibleChanged(bool isEditable) { - assert(telephoneLineEdit); + assert(telephoneLineEdit); - telephoneLineEdit->setEditable(isEditable); - telephoneLineEdit->setStyleSheet(isEditable ? "" : "QLineEdit { border: none; background: transparent; }"); + telephoneLineEdit->setEditable(isEditable); + telephoneLineEdit->setStyleSheet(isEditable ? "" : "QLineEdit { border: none; background: transparent; }"); } } diff --git a/Swift/QtUI/QtVCardWidget/QtVCardTelephoneField.h b/Swift/QtUI/QtVCardWidget/QtVCardTelephoneField.h index a06eb32..1a08a5a 100644 --- a/Swift/QtUI/QtVCardWidget/QtVCardTelephoneField.h +++ b/Swift/QtUI/QtVCardWidget/QtVCardTelephoneField.h @@ -22,27 +22,27 @@ namespace Swift { class QtVCardTelephoneField : public QtVCardGeneralField, public QtVCardHomeWork { - Q_OBJECT + Q_OBJECT - public: - GENERIC_QT_VCARD_FIELD_INFO(tr("Telephone"), UNLIMITED_INSTANCES, QtVCardTelephoneField) + public: + GENERIC_QT_VCARD_FIELD_INFO(tr("Telephone"), UNLIMITED_INSTANCES, QtVCardTelephoneField) - QtVCardTelephoneField(QWidget* parent = 0, QGridLayout* layout = 0, bool editable = false); - virtual ~QtVCardTelephoneField(); + QtVCardTelephoneField(QWidget* parent = 0, QGridLayout* layout = 0, bool editable = false); + virtual ~QtVCardTelephoneField(); - virtual bool isEmpty() const; + virtual bool isEmpty() const; - void setTelephone(const VCard::Telephone& telephone); - VCard::Telephone getTelephone() const; + void setTelephone(const VCard::Telephone& telephone); + VCard::Telephone getTelephone() const; - protected: - virtual void setupContentWidgets(); + protected: + virtual void setupContentWidgets(); - public slots: - void handleEditibleChanged(bool isEditable); + public slots: + void handleEditibleChanged(bool isEditable); - private: - QtResizableLineEdit* telephoneLineEdit; + private: + QtResizableLineEdit* telephoneLineEdit; }; } diff --git a/Swift/QtUI/QtVCardWidget/QtVCardTitleField.cpp b/Swift/QtUI/QtVCardWidget/QtVCardTitleField.cpp index aab7fac..5da5763 100644 --- a/Swift/QtUI/QtVCardWidget/QtVCardTitleField.cpp +++ b/Swift/QtUI/QtVCardWidget/QtVCardTitleField.cpp @@ -21,38 +21,38 @@ namespace Swift { QtVCardTitleField::QtVCardTitleField(QWidget* parent, QGridLayout *layout, bool editable) : - QtVCardGeneralField(parent, layout, editable, layout->rowCount(), tr("Title"), false, false), titleLineEdit(NULL) { - connect(this, SIGNAL(editableChanged(bool)), SLOT(handleEditibleChanged(bool))); + QtVCardGeneralField(parent, layout, editable, layout->rowCount(), tr("Title"), false, false), titleLineEdit(NULL) { + connect(this, SIGNAL(editableChanged(bool)), SLOT(handleEditibleChanged(bool))); } QtVCardTitleField::~QtVCardTitleField() { - disconnect(this, SLOT(handleEditibleChanged(bool))); + disconnect(this, SLOT(handleEditibleChanged(bool))); } void QtVCardTitleField::setupContentWidgets() { - titleLineEdit = new QtResizableLineEdit(this); - getGridLayout()->addWidget(titleLineEdit, getGridLayout()->rowCount()-1, 2, 1, 2, Qt::AlignVCenter); - getTagComboBox()->hide(); - childWidgets << titleLineEdit; + titleLineEdit = new QtResizableLineEdit(this); + getGridLayout()->addWidget(titleLineEdit, getGridLayout()->rowCount()-1, 2, 1, 2, Qt::AlignVCenter); + getTagComboBox()->hide(); + childWidgets << titleLineEdit; } bool QtVCardTitleField::isEmpty() const { - return titleLineEdit->text().isEmpty(); + return titleLineEdit->text().isEmpty(); } void QtVCardTitleField::setTitle(const std::string& title) { - titleLineEdit->setText(P2QSTRING(title)); + titleLineEdit->setText(P2QSTRING(title)); } std::string QtVCardTitleField::getTitle() const { - return Q2PSTRING(titleLineEdit->text()); + return Q2PSTRING(titleLineEdit->text()); } void QtVCardTitleField::handleEditibleChanged(bool isEditable) { - assert(titleLineEdit); + assert(titleLineEdit); - titleLineEdit->setEditable(isEditable); - titleLineEdit->setStyleSheet(isEditable ? "" : "QLineEdit { border: none; background: transparent; }"); + titleLineEdit->setEditable(isEditable); + titleLineEdit->setStyleSheet(isEditable ? "" : "QLineEdit { border: none; background: transparent; }"); } } diff --git a/Swift/QtUI/QtVCardWidget/QtVCardTitleField.h b/Swift/QtUI/QtVCardWidget/QtVCardTitleField.h index a7feb81..ff2a04e 100644 --- a/Swift/QtUI/QtVCardWidget/QtVCardTitleField.h +++ b/Swift/QtUI/QtVCardWidget/QtVCardTitleField.h @@ -21,27 +21,27 @@ namespace Swift { class QtVCardTitleField : public QtVCardGeneralField { - Q_OBJECT + Q_OBJECT - public: - GENERIC_QT_VCARD_FIELD_INFO(tr("Title"), UNLIMITED_INSTANCES, QtVCardTitleField) + public: + GENERIC_QT_VCARD_FIELD_INFO(tr("Title"), UNLIMITED_INSTANCES, QtVCardTitleField) - QtVCardTitleField(QWidget* parent = 0, QGridLayout* layout = 0, bool editable = false); - virtual ~QtVCardTitleField(); + QtVCardTitleField(QWidget* parent = 0, QGridLayout* layout = 0, bool editable = false); + virtual ~QtVCardTitleField(); - virtual bool isEmpty() const; + virtual bool isEmpty() const; - void setTitle(const std::string& title); - std::string getTitle() const; + void setTitle(const std::string& title); + std::string getTitle() const; - protected: - virtual void setupContentWidgets(); + protected: + virtual void setupContentWidgets(); - public slots: - void handleEditibleChanged(bool isEditable); + public slots: + void handleEditibleChanged(bool isEditable); - private: - QtResizableLineEdit* titleLineEdit; + private: + QtResizableLineEdit* titleLineEdit; }; } diff --git a/Swift/QtUI/QtVCardWidget/QtVCardURLField.cpp b/Swift/QtUI/QtVCardWidget/QtVCardURLField.cpp index 262a0e2..8abc46e 100644 --- a/Swift/QtUI/QtVCardWidget/QtVCardURLField.cpp +++ b/Swift/QtUI/QtVCardWidget/QtVCardURLField.cpp @@ -24,54 +24,54 @@ namespace Swift { QtVCardURLField::QtVCardURLField(QWidget* parent, QGridLayout *layout, bool editable) : - QtVCardGeneralField(parent, layout, editable, layout->rowCount(), tr("URL"), false, false), urlLabel(NULL), urlLineEdit(NULL) { - connect(this, SIGNAL(editableChanged(bool)), SLOT(handleEditibleChanged(bool))); + QtVCardGeneralField(parent, layout, editable, layout->rowCount(), tr("URL"), false, false), urlLabel(NULL), urlLineEdit(NULL) { + connect(this, SIGNAL(editableChanged(bool)), SLOT(handleEditibleChanged(bool))); } QtVCardURLField::~QtVCardURLField() { - disconnect(this, SLOT(handleEditibleChanged(bool))); + disconnect(this, SLOT(handleEditibleChanged(bool))); } void QtVCardURLField::setupContentWidgets() { - urlLabel = new QLabel(this); - urlLabel->setOpenExternalLinks(true); - urlLabel->setTextInteractionFlags(Qt::LinksAccessibleByMouse | Qt::LinksAccessibleByKeyboard); - urlLineEdit = new QtResizableLineEdit(this); - - QHBoxLayout* urlLayout = new QHBoxLayout(); - urlLayout->addWidget(urlLabel); - urlLayout->addWidget(urlLineEdit); - - getGridLayout()->addLayout(urlLayout, getGridLayout()->rowCount()-1, 2, 1, 2, Qt::AlignVCenter); - getTagComboBox()->hide(); - urlLabel->hide(); - childWidgets << urlLabel << urlLineEdit; + urlLabel = new QLabel(this); + urlLabel->setOpenExternalLinks(true); + urlLabel->setTextInteractionFlags(Qt::LinksAccessibleByMouse | Qt::LinksAccessibleByKeyboard); + urlLineEdit = new QtResizableLineEdit(this); + + QHBoxLayout* urlLayout = new QHBoxLayout(); + urlLayout->addWidget(urlLabel); + urlLayout->addWidget(urlLineEdit); + + getGridLayout()->addLayout(urlLayout, getGridLayout()->rowCount()-1, 2, 1, 2, Qt::AlignVCenter); + getTagComboBox()->hide(); + urlLabel->hide(); + childWidgets << urlLabel << urlLineEdit; } bool QtVCardURLField::isEmpty() const { - return urlLineEdit->text().isEmpty(); + return urlLineEdit->text().isEmpty(); } void QtVCardURLField::setURL(const std::string& url) { - urlLineEdit->setText(P2QSTRING(url)); + urlLineEdit->setText(P2QSTRING(url)); } std::string QtVCardURLField::getURL() const { - return Q2PSTRING(urlLineEdit->text()); + return Q2PSTRING(urlLineEdit->text()); } void QtVCardURLField::handleEditibleChanged(bool isEditable) { - assert(urlLineEdit); - assert(urlLabel); - - if (isEditable) { - urlLineEdit->show(); - urlLabel->hide(); - } else { - urlLineEdit->hide(); - urlLabel->setText(QString("<a href=\"%1\">%1</a>").arg(QtUtilities::htmlEscape(urlLineEdit->text()))); - urlLabel->show(); - } + assert(urlLineEdit); + assert(urlLabel); + + if (isEditable) { + urlLineEdit->show(); + urlLabel->hide(); + } else { + urlLineEdit->hide(); + urlLabel->setText(QString("<a href=\"%1\">%1</a>").arg(QtUtilities::htmlEscape(urlLineEdit->text()))); + urlLabel->show(); + } } } diff --git a/Swift/QtUI/QtVCardWidget/QtVCardURLField.h b/Swift/QtUI/QtVCardWidget/QtVCardURLField.h index 824879a..a1ffacd 100644 --- a/Swift/QtUI/QtVCardWidget/QtVCardURLField.h +++ b/Swift/QtUI/QtVCardWidget/QtVCardURLField.h @@ -21,28 +21,28 @@ namespace Swift { class QtVCardURLField : public QtVCardGeneralField { - Q_OBJECT + Q_OBJECT - public: - GENERIC_QT_VCARD_FIELD_INFO(tr("URL"), UNLIMITED_INSTANCES, QtVCardURLField) + public: + GENERIC_QT_VCARD_FIELD_INFO(tr("URL"), UNLIMITED_INSTANCES, QtVCardURLField) - QtVCardURLField(QWidget* parent = 0, QGridLayout* layout = 0, bool editable = false); - virtual ~QtVCardURLField(); + QtVCardURLField(QWidget* parent = 0, QGridLayout* layout = 0, bool editable = false); + virtual ~QtVCardURLField(); - virtual bool isEmpty() const; + virtual bool isEmpty() const; - void setURL(const std::string& url); - std::string getURL() const; + void setURL(const std::string& url); + std::string getURL() const; - protected: - virtual void setupContentWidgets(); + protected: + virtual void setupContentWidgets(); - public slots: - void handleEditibleChanged(bool isEditable); + public slots: + void handleEditibleChanged(bool isEditable); - private: - QLabel* urlLabel; - QtResizableLineEdit* urlLineEdit; + private: + QLabel* urlLabel; + QtResizableLineEdit* urlLineEdit; }; } diff --git a/Swift/QtUI/QtVCardWidget/QtVCardWidget.cpp b/Swift/QtUI/QtVCardWidget/QtVCardWidget.cpp index f390d30..712cedf 100644 --- a/Swift/QtUI/QtVCardWidget/QtVCardWidget.cpp +++ b/Swift/QtUI/QtVCardWidget/QtVCardWidget.cpp @@ -33,394 +33,394 @@ namespace Swift { QtVCardWidget::QtVCardWidget(QWidget* parent) : - QWidget(parent), - ui(new ::Ui::QtVCardWidget) { - ui->setupUi(this); - - ui->cardFields->setColumnStretch(0,0); - ui->cardFields->setColumnStretch(1,0); - ui->cardFields->setColumnStretch(2,2); - ui->cardFields->setColumnStretch(3,1); - ui->cardFields->setColumnStretch(4,2); - menu = new QMenu(this); - - 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>()); - addFieldType(menu, boost::make_shared<QtVCardTelephoneField::FieldInfo>()); - addFieldType(menu, boost::make_shared<QtVCardAddressField::FieldInfo>()); - addFieldType(menu, boost::make_shared<QtVCardAddressLabelField::FieldInfo>()); - addFieldType(menu, boost::make_shared<QtVCardBirthdayField::FieldInfo>()); - addFieldType(menu, boost::make_shared<QtVCardJIDField::FieldInfo>()); - addFieldType(menu, boost::make_shared<QtVCardDescriptionField::FieldInfo>()); - addFieldType(menu, boost::make_shared<QtVCardRoleField::FieldInfo>()); - addFieldType(menu, boost::make_shared<QtVCardTitleField::FieldInfo>()); - addFieldType(menu, boost::make_shared<QtVCardOrganizationField::FieldInfo>()); - addFieldType(menu, boost::make_shared<QtVCardURLField::FieldInfo>()); - - setEditable(false); - setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); + QWidget(parent), + ui(new ::Ui::QtVCardWidget) { + ui->setupUi(this); + + ui->cardFields->setColumnStretch(0,0); + ui->cardFields->setColumnStretch(1,0); + ui->cardFields->setColumnStretch(2,2); + ui->cardFields->setColumnStretch(3,1); + ui->cardFields->setColumnStretch(4,2); + menu = new QMenu(this); + + 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>()); + addFieldType(menu, boost::make_shared<QtVCardTelephoneField::FieldInfo>()); + addFieldType(menu, boost::make_shared<QtVCardAddressField::FieldInfo>()); + addFieldType(menu, boost::make_shared<QtVCardAddressLabelField::FieldInfo>()); + addFieldType(menu, boost::make_shared<QtVCardBirthdayField::FieldInfo>()); + addFieldType(menu, boost::make_shared<QtVCardJIDField::FieldInfo>()); + addFieldType(menu, boost::make_shared<QtVCardDescriptionField::FieldInfo>()); + addFieldType(menu, boost::make_shared<QtVCardRoleField::FieldInfo>()); + addFieldType(menu, boost::make_shared<QtVCardTitleField::FieldInfo>()); + addFieldType(menu, boost::make_shared<QtVCardOrganizationField::FieldInfo>()); + addFieldType(menu, boost::make_shared<QtVCardURLField::FieldInfo>()); + + setEditable(false); + setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); } QtVCardWidget::~QtVCardWidget() { - delete ui; + delete ui; } QSize QtVCardWidget::sizeHint() const { - QSize newSizeHint = ui->photoAndName->sizeHint(); + QSize newSizeHint = ui->photoAndName->sizeHint(); - // use mininmal size that does not require scrolling - QSize fieldsWidgetSize = ui->scrollArea->widget()->minimumSize(); - fieldsWidgetSize.setWidth(ui->scrollArea->widget()->sizeHint().width()); + // use mininmal size that does not require scrolling + QSize fieldsWidgetSize = ui->scrollArea->widget()->minimumSize(); + fieldsWidgetSize.setWidth(ui->scrollArea->widget()->sizeHint().width()); - newSizeHint += QSize(0, ui->line->height()); + newSizeHint += QSize(0, ui->line->height()); - newSizeHint = QSize(std::max(newSizeHint.width(), fieldsWidgetSize.width()), newSizeHint.height() + fieldsWidgetSize.height()); + newSizeHint = QSize(std::max(newSizeHint.width(), fieldsWidgetSize.width()), newSizeHint.height() + fieldsWidgetSize.height()); - // add layout margin - newSizeHint += QSize(layout()->contentsMargins().left() + layout()->contentsMargins().right(), layout()->contentsMargins().top() + layout()->contentsMargins().bottom()); + // add layout margin + newSizeHint += QSize(layout()->contentsMargins().left() + layout()->contentsMargins().right(), layout()->contentsMargins().top() + layout()->contentsMargins().bottom()); - // the spaceing before and after the line between the profile header and its fields - newSizeHint += QSize(0, layout()->spacing() * 2); + // the spaceing before and after the line between the profile header and its fields + newSizeHint += QSize(0, layout()->spacing() * 2); - return newSizeHint; + return newSizeHint; } bool QtVCardWidget::isEditable() const { - return editable; + return editable; } void QtVCardWidget::setEditable(bool editable) { - this->editable = editable; + this->editable = editable; - ui->photoAndName->setProperty("editable", QVariant(editable)); + ui->photoAndName->setProperty("editable", QVariant(editable)); - foreach(QtVCardGeneralField* field, fields) { - field->setEditable(editable); - } - toolButton->setVisible(editable); + foreach(QtVCardGeneralField* field, fields) { + field->setEditable(editable); + } + toolButton->setVisible(editable); - editableChanged(editable); + editableChanged(editable); } void QtVCardWidget::setVCard(VCard::ref vcard) { - clearFields(); - this->vcard = boost::make_shared<VCard>(*vcard); - ui->photoAndName->setFormattedName(P2QSTRING(vcard->getFullName())); - ui->photoAndName->setNickname(P2QSTRING(vcard->getNickname())); - ui->photoAndName->setPrefix(P2QSTRING(vcard->getPrefix())); - ui->photoAndName->setGivenName(P2QSTRING(vcard->getGivenName())); - ui->photoAndName->setMiddleName(P2QSTRING(vcard->getMiddleName())); - ui->photoAndName->setFamilyName(P2QSTRING(vcard->getFamilyName())); - ui->photoAndName->setSuffix(P2QSTRING(vcard->getSuffix())); - ui->photoAndName->setAvatar(vcard->getPhoto(), vcard->getPhotoType()); - - foreach (const VCard::EMailAddress& address, vcard->getEMailAddresses()) { - if (address.isInternet) { - QtVCardInternetEMailField* internetEmailField = new QtVCardInternetEMailField(this, ui->cardFields); - internetEmailField->initialize(); - internetEmailField->setInternetEMailAddress(address); - appendField(internetEmailField); - } - } - - foreach (const VCard::Telephone& telephone, vcard->getTelephones()) { - QtVCardTelephoneField* telField = new QtVCardTelephoneField(this, ui->cardFields); - telField->initialize(); - telField->setTelephone(telephone); - appendField(telField); - } - - foreach (const VCard::Address& address, vcard->getAddresses()) { - QtVCardAddressField* addressField = new QtVCardAddressField(this, ui->cardFields); - addressField->initialize(); - addressField->setAddress(address); - appendField(addressField); - } - - foreach (const VCard::AddressLabel& label, vcard->getAddressLabels()) { - QtVCardAddressLabelField* addressLabelField = new QtVCardAddressLabelField(this, ui->cardFields); - addressLabelField->initialize(); - addressLabelField->setAddressLabel(label); - appendField(addressLabelField); - } - - if (!vcard->getBirthday().is_not_a_date_time()) { - QtVCardBirthdayField* bdayField = new QtVCardBirthdayField(this, ui->cardFields); - bdayField->initialize(); - bdayField->setBirthday(vcard->getBirthday()); - appendField(bdayField); - } - - foreach (const JID& jid, vcard->getJIDs()) { - QtVCardJIDField* jidField = new QtVCardJIDField(this, ui->cardFields); - jidField->initialize(); - jidField->setJID(jid); - appendField(jidField); - } - - if (!vcard->getDescription().empty()) { - QtVCardDescriptionField* descField = new QtVCardDescriptionField(this, ui->cardFields); - descField->initialize(); - descField->setDescription(vcard->getDescription()); - appendField(descField); - } - - foreach (const VCard::Organization& org, vcard->getOrganizations()) { - QtVCardOrganizationField* orgField = new QtVCardOrganizationField(this, ui->cardFields); - orgField->initialize(); - orgField->setOrganization(org); - appendField(orgField); - } - - foreach (const std::string& role, vcard->getRoles()) { - QtVCardRoleField* roleField = new QtVCardRoleField(this, ui->cardFields); - roleField->initialize(); - roleField->setRole(role); - appendField(roleField); - } - - foreach (const std::string& title, vcard->getTitles()) { - QtVCardTitleField* titleField = new QtVCardTitleField(this, ui->cardFields); - titleField->initialize(); - titleField->setTitle(title); - appendField(titleField); - } - - foreach (const std::string& url, vcard->getURLs()) { - QtVCardURLField* urlField = new QtVCardURLField(this, ui->cardFields); - urlField->initialize(); - urlField->setURL(url); - appendField(urlField); - } - - relayoutToolButton(); - setEditable(editable); + clearFields(); + this->vcard = boost::make_shared<VCard>(*vcard); + ui->photoAndName->setFormattedName(P2QSTRING(vcard->getFullName())); + ui->photoAndName->setNickname(P2QSTRING(vcard->getNickname())); + ui->photoAndName->setPrefix(P2QSTRING(vcard->getPrefix())); + ui->photoAndName->setGivenName(P2QSTRING(vcard->getGivenName())); + ui->photoAndName->setMiddleName(P2QSTRING(vcard->getMiddleName())); + ui->photoAndName->setFamilyName(P2QSTRING(vcard->getFamilyName())); + ui->photoAndName->setSuffix(P2QSTRING(vcard->getSuffix())); + ui->photoAndName->setAvatar(vcard->getPhoto(), vcard->getPhotoType()); + + foreach (const VCard::EMailAddress& address, vcard->getEMailAddresses()) { + if (address.isInternet) { + QtVCardInternetEMailField* internetEmailField = new QtVCardInternetEMailField(this, ui->cardFields); + internetEmailField->initialize(); + internetEmailField->setInternetEMailAddress(address); + appendField(internetEmailField); + } + } + + foreach (const VCard::Telephone& telephone, vcard->getTelephones()) { + QtVCardTelephoneField* telField = new QtVCardTelephoneField(this, ui->cardFields); + telField->initialize(); + telField->setTelephone(telephone); + appendField(telField); + } + + foreach (const VCard::Address& address, vcard->getAddresses()) { + QtVCardAddressField* addressField = new QtVCardAddressField(this, ui->cardFields); + addressField->initialize(); + addressField->setAddress(address); + appendField(addressField); + } + + foreach (const VCard::AddressLabel& label, vcard->getAddressLabels()) { + QtVCardAddressLabelField* addressLabelField = new QtVCardAddressLabelField(this, ui->cardFields); + addressLabelField->initialize(); + addressLabelField->setAddressLabel(label); + appendField(addressLabelField); + } + + if (!vcard->getBirthday().is_not_a_date_time()) { + QtVCardBirthdayField* bdayField = new QtVCardBirthdayField(this, ui->cardFields); + bdayField->initialize(); + bdayField->setBirthday(vcard->getBirthday()); + appendField(bdayField); + } + + foreach (const JID& jid, vcard->getJIDs()) { + QtVCardJIDField* jidField = new QtVCardJIDField(this, ui->cardFields); + jidField->initialize(); + jidField->setJID(jid); + appendField(jidField); + } + + if (!vcard->getDescription().empty()) { + QtVCardDescriptionField* descField = new QtVCardDescriptionField(this, ui->cardFields); + descField->initialize(); + descField->setDescription(vcard->getDescription()); + appendField(descField); + } + + foreach (const VCard::Organization& org, vcard->getOrganizations()) { + QtVCardOrganizationField* orgField = new QtVCardOrganizationField(this, ui->cardFields); + orgField->initialize(); + orgField->setOrganization(org); + appendField(orgField); + } + + foreach (const std::string& role, vcard->getRoles()) { + QtVCardRoleField* roleField = new QtVCardRoleField(this, ui->cardFields); + roleField->initialize(); + roleField->setRole(role); + appendField(roleField); + } + + foreach (const std::string& title, vcard->getTitles()) { + QtVCardTitleField* titleField = new QtVCardTitleField(this, ui->cardFields); + titleField->initialize(); + titleField->setTitle(title); + appendField(titleField); + } + + foreach (const std::string& url, vcard->getURLs()) { + QtVCardURLField* urlField = new QtVCardURLField(this, ui->cardFields); + urlField->initialize(); + urlField->setURL(url); + appendField(urlField); + } + + relayoutToolButton(); + setEditable(editable); } VCard::ref QtVCardWidget::getVCard() { - clearEmptyFields(); - vcard->setFullName(Q2PSTRING(ui->photoAndName->getFormattedName())); - vcard->setNickname(Q2PSTRING(ui->photoAndName->getNickname())); - vcard->setPrefix(Q2PSTRING(ui->photoAndName->getPrefix())); - vcard->setGivenName(Q2PSTRING(ui->photoAndName->getGivenName())); - vcard->setMiddleName(Q2PSTRING(ui->photoAndName->getMiddleName())); - vcard->setFamilyName(Q2PSTRING(ui->photoAndName->getFamilyName())); - vcard->setSuffix(Q2PSTRING(ui->photoAndName->getSuffix())); - vcard->setPhoto(ui->photoAndName->getAvatarData()); - vcard->setPhotoType(ui->photoAndName->getAvatarType()); - - vcard->clearEMailAddresses(); - vcard->clearJIDs(); - vcard->clearURLs(); - vcard->clearTelephones(); - vcard->clearRoles(); - vcard->clearTitles(); - vcard->clearOrganizations(); - vcard->clearAddresses(); - vcard->clearAddressLabels(); - - - QtVCardBirthdayField* bdayField = NULL; - QtVCardDescriptionField* descriptionField = NULL; - - foreach(QtVCardGeneralField* field, fields) { - QtVCardInternetEMailField* emailField; - if ((emailField = dynamic_cast<QtVCardInternetEMailField*>(field))) { - vcard->addEMailAddress(emailField->getInternetEMailAddress()); - continue; - } - - QtVCardTelephoneField* telephoneField; - if ((telephoneField = dynamic_cast<QtVCardTelephoneField*>(field))) { - vcard->addTelephone(telephoneField->getTelephone()); - continue; - } - - QtVCardAddressField* addressField; - if ((addressField = dynamic_cast<QtVCardAddressField*>(field))) { - vcard->addAddress(addressField->getAddress()); - continue; - } - - QtVCardAddressLabelField* addressLabelField; - if ((addressLabelField = dynamic_cast<QtVCardAddressLabelField*>(field))) { - vcard->addAddressLabel(addressLabelField->getAddressLabel()); - continue; - } - - if ((bdayField = dynamic_cast<QtVCardBirthdayField*>(field))) { - continue; - } - - QtVCardJIDField* jidField; - if ((jidField = dynamic_cast<QtVCardJIDField*>(field))) { - vcard->addJID(jidField->getJID()); - continue; - } - - if ((descriptionField = dynamic_cast<QtVCardDescriptionField*>(field))) { - continue; - } - - QtVCardOrganizationField* orgField; - if ((orgField = dynamic_cast<QtVCardOrganizationField*>(field))) { - vcard->addOrganization(orgField->getOrganization()); - continue; - } - - QtVCardRoleField* roleField; - if ((roleField = dynamic_cast<QtVCardRoleField*>(field))) { - vcard->addRole(roleField->getRole()); - continue; - } - - QtVCardTitleField* titleField; - if ((titleField = dynamic_cast<QtVCardTitleField*>(field))) { - vcard->addTitle(titleField->getTitle()); - continue; - } - - QtVCardURLField* urlField; - if ((urlField = dynamic_cast<QtVCardURLField*>(field))) { - vcard->addURL(urlField->getURL()); - continue; - } - } - - if (bdayField) { - vcard->setBirthday(bdayField->getBirthday()); - } else { - vcard->setBirthday(boost::posix_time::ptime()); - } - - if (descriptionField) { - vcard->setDescription(descriptionField->getDescription()); - } else { - vcard->setDescription(""); - } - - return vcard; + clearEmptyFields(); + vcard->setFullName(Q2PSTRING(ui->photoAndName->getFormattedName())); + vcard->setNickname(Q2PSTRING(ui->photoAndName->getNickname())); + vcard->setPrefix(Q2PSTRING(ui->photoAndName->getPrefix())); + vcard->setGivenName(Q2PSTRING(ui->photoAndName->getGivenName())); + vcard->setMiddleName(Q2PSTRING(ui->photoAndName->getMiddleName())); + vcard->setFamilyName(Q2PSTRING(ui->photoAndName->getFamilyName())); + vcard->setSuffix(Q2PSTRING(ui->photoAndName->getSuffix())); + vcard->setPhoto(ui->photoAndName->getAvatarData()); + vcard->setPhotoType(ui->photoAndName->getAvatarType()); + + vcard->clearEMailAddresses(); + vcard->clearJIDs(); + vcard->clearURLs(); + vcard->clearTelephones(); + vcard->clearRoles(); + vcard->clearTitles(); + vcard->clearOrganizations(); + vcard->clearAddresses(); + vcard->clearAddressLabels(); + + + QtVCardBirthdayField* bdayField = NULL; + QtVCardDescriptionField* descriptionField = NULL; + + foreach(QtVCardGeneralField* field, fields) { + QtVCardInternetEMailField* emailField; + if ((emailField = dynamic_cast<QtVCardInternetEMailField*>(field))) { + vcard->addEMailAddress(emailField->getInternetEMailAddress()); + continue; + } + + QtVCardTelephoneField* telephoneField; + if ((telephoneField = dynamic_cast<QtVCardTelephoneField*>(field))) { + vcard->addTelephone(telephoneField->getTelephone()); + continue; + } + + QtVCardAddressField* addressField; + if ((addressField = dynamic_cast<QtVCardAddressField*>(field))) { + vcard->addAddress(addressField->getAddress()); + continue; + } + + QtVCardAddressLabelField* addressLabelField; + if ((addressLabelField = dynamic_cast<QtVCardAddressLabelField*>(field))) { + vcard->addAddressLabel(addressLabelField->getAddressLabel()); + continue; + } + + if ((bdayField = dynamic_cast<QtVCardBirthdayField*>(field))) { + continue; + } + + QtVCardJIDField* jidField; + if ((jidField = dynamic_cast<QtVCardJIDField*>(field))) { + vcard->addJID(jidField->getJID()); + continue; + } + + if ((descriptionField = dynamic_cast<QtVCardDescriptionField*>(field))) { + continue; + } + + QtVCardOrganizationField* orgField; + if ((orgField = dynamic_cast<QtVCardOrganizationField*>(field))) { + vcard->addOrganization(orgField->getOrganization()); + continue; + } + + QtVCardRoleField* roleField; + if ((roleField = dynamic_cast<QtVCardRoleField*>(field))) { + vcard->addRole(roleField->getRole()); + continue; + } + + QtVCardTitleField* titleField; + if ((titleField = dynamic_cast<QtVCardTitleField*>(field))) { + vcard->addTitle(titleField->getTitle()); + continue; + } + + QtVCardURLField* urlField; + if ((urlField = dynamic_cast<QtVCardURLField*>(field))) { + vcard->addURL(urlField->getURL()); + continue; + } + } + + if (bdayField) { + vcard->setBirthday(bdayField->getBirthday()); + } else { + vcard->setBirthday(boost::posix_time::ptime()); + } + + if (descriptionField) { + vcard->setDescription(descriptionField->getDescription()); + } else { + vcard->setDescription(""); + } + + return vcard; } void QtVCardWidget::addField() { - QAction* action = NULL; - if ((action = dynamic_cast<QAction*>(sender()))) { - boost::shared_ptr<QtVCardFieldInfo> fieldInfo = actionFieldInfo[action]; - QWidget* newField = fieldInfo->createFieldInstance(this, ui->cardFields, true); - QtVCardGeneralField* newGeneralField = dynamic_cast<QtVCardGeneralField*>(newField); - if (newGeneralField) { - newGeneralField->initialize(); - } - appendField(newGeneralField); - relayoutToolButton(); - } + QAction* action = NULL; + if ((action = dynamic_cast<QAction*>(sender()))) { + boost::shared_ptr<QtVCardFieldInfo> fieldInfo = actionFieldInfo[action]; + QWidget* newField = fieldInfo->createFieldInstance(this, ui->cardFields, true); + QtVCardGeneralField* newGeneralField = dynamic_cast<QtVCardGeneralField*>(newField); + if (newGeneralField) { + newGeneralField->initialize(); + } + appendField(newGeneralField); + relayoutToolButton(); + } } void QtVCardWidget::removeField(QtVCardGeneralField *field) { - int sameFields = 0; - QtVCardGeneralField* fieldToChange = NULL; - foreach (QtVCardGeneralField* vcardField, fields) { - if ((vcardField != field) && (typeid(*vcardField) == typeid(*field))) { - sameFields++; - fieldToChange = vcardField; - } - } - - if ((sameFields == 1) && fieldToChange) { - fieldToChange->setStarVisible(false); - } - - fields.remove(field); - delete field; + int sameFields = 0; + QtVCardGeneralField* fieldToChange = NULL; + foreach (QtVCardGeneralField* vcardField, fields) { + if ((vcardField != field) && (typeid(*vcardField) == typeid(*field))) { + sameFields++; + fieldToChange = vcardField; + } + } + + if ((sameFields == 1) && fieldToChange) { + fieldToChange->setStarVisible(false); + } + + fields.remove(field); + delete field; } void QtVCardWidget::addFieldType(QMenu* menu, boost::shared_ptr<QtVCardFieldInfo> fieldType) { - if (!fieldType->getMenuName().isEmpty()) { - QAction* action = new QAction(tr("Add %1").arg(fieldType->getMenuName()), this); - actionFieldInfo[action] = fieldType; - connect(action, SIGNAL(triggered()), this, SLOT(addField())); - menu->addAction(action); - } + if (!fieldType->getMenuName().isEmpty()) { + QAction* action = new QAction(tr("Add %1").arg(fieldType->getMenuName()), this); + actionFieldInfo[action] = fieldType; + connect(action, SIGNAL(triggered()), this, SLOT(addField())); + menu->addAction(action); + } } int QtVCardWidget::fieldTypeInstances(boost::shared_ptr<QtVCardFieldInfo> fieldType) { - int instances = 0; - for (int n = 0; n < ui->cardFields->count(); n++) { - if (fieldType->testInstance(ui->cardFields->itemAt(n)->widget())) instances++; - } - return instances; + int instances = 0; + for (int n = 0; n < ui->cardFields->count(); n++) { + if (fieldType->testInstance(ui->cardFields->itemAt(n)->widget())) instances++; + } + return instances; } void layoutDeleteChildren(QLayout *layout) { - while(layout->count() > 0) { - QLayoutItem* child; - if ((child = layout->takeAt(0)) != 0) { - if (child->layout()) { - layoutDeleteChildren(child->layout()); - } - if (dynamic_cast<QToolButton*>(child->widget())) { - delete child; - break; - } - delete child->widget(); - delete child; - } - } + while(layout->count() > 0) { + QLayoutItem* child; + if ((child = layout->takeAt(0)) != 0) { + if (child->layout()) { + layoutDeleteChildren(child->layout()); + } + if (dynamic_cast<QToolButton*>(child->widget())) { + delete child; + break; + } + delete child->widget(); + delete child; + } + } } void QtVCardWidget::clearFields() { - foreach(QtVCardGeneralField* field, fields) { - delete field; - } - fields.clear(); + foreach(QtVCardGeneralField* field, fields) { + delete field; + } + fields.clear(); - assert(ui->cardFields->count() >= 0); - layoutDeleteChildren(ui->cardFields); + assert(ui->cardFields->count() >= 0); + layoutDeleteChildren(ui->cardFields); } void QtVCardWidget::clearEmptyFields() { - std::vector<QtVCardGeneralField*> items_to_remove; - foreach (QtVCardGeneralField* field, fields) { - if (field->property("empty").isValid() && field->property("empty").toBool()) { - ui->cardFields->removeWidget(field); - items_to_remove.push_back(field); - delete field; - } - } - - foreach(QtVCardGeneralField* field, items_to_remove) { - fields.remove(field); - } + std::vector<QtVCardGeneralField*> items_to_remove; + foreach (QtVCardGeneralField* field, fields) { + if (field->property("empty").isValid() && field->property("empty").toBool()) { + ui->cardFields->removeWidget(field); + items_to_remove.push_back(field); + delete field; + } + } + + foreach(QtVCardGeneralField* field, items_to_remove) { + fields.remove(field); + } } void QtVCardWidget::appendField(QtVCardGeneralField *field) { - connect(field, SIGNAL(deleteField(QtVCardGeneralField*)), SLOT(removeField(QtVCardGeneralField*))); - - QtVCardGeneralField* fieldToChange = NULL; - foreach (QtVCardGeneralField* vcardField, fields) { - if (typeid(*vcardField) == typeid(*field)) { - fieldToChange = vcardField; - break; - } - } - - if (fieldToChange) { - fieldToChange->setStarVisible(true); - field->setStarVisible(true); - } - - fields.push_back(field); + connect(field, SIGNAL(deleteField(QtVCardGeneralField*)), SLOT(removeField(QtVCardGeneralField*))); + + QtVCardGeneralField* fieldToChange = NULL; + foreach (QtVCardGeneralField* vcardField, fields) { + if (typeid(*vcardField) == typeid(*field)) { + fieldToChange = vcardField; + break; + } + } + + if (fieldToChange) { + fieldToChange->setStarVisible(true); + field->setStarVisible(true); + } + + fields.push_back(field); } void QtVCardWidget::relayoutToolButton() { - ui->cardFields->addWidget(toolButton, ui->cardFields->rowCount(), ui->cardFields->columnCount()-2, 1, 1, Qt::AlignRight); + 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 8c0ff31..95283c5 100644 --- a/Swift/QtUI/QtVCardWidget/QtVCardWidget.h +++ b/Swift/QtUI/QtVCardWidget/QtVCardWidget.h @@ -24,50 +24,50 @@ #include <Swift/QtUI/QtVCardWidget/QtVCardPhotoAndNameFields.h> namespace Ui { - class QtVCardWidget; + class QtVCardWidget; } namespace Swift { - class QtVCardWidget : public QWidget { - Q_OBJECT - Q_PROPERTY(bool editable READ isEditable WRITE setEditable) - - public : - explicit QtVCardWidget(QWidget* parent = 0); - ~QtVCardWidget(); - - bool isEditable() const; - void setEditable(bool); - - void setVCard(VCard::ref vcard); - VCard::ref getVCard(); - - virtual QSize sizeHint() const; - - signals: - void editableChanged(bool editable); - - private slots: - void addField(); - void removeField(QtVCardGeneralField* field); - - private: - void addFieldType(QMenu*, boost::shared_ptr<QtVCardFieldInfo>); - int fieldTypeInstances(boost::shared_ptr<QtVCardFieldInfo>); - void clearFields(); - void clearEmptyFields(); - void appendField(QtVCardGeneralField* field); - void relayoutToolButton(); - - private: - VCard::ref vcard; - Ui::QtVCardWidget* ui; - QToolButton* toolButton; - bool editable; - QMenu* menu; - std::list<QtVCardGeneralField*> fields; - std::map<QAction*, boost::shared_ptr<QtVCardFieldInfo> > actionFieldInfo; - }; + class QtVCardWidget : public QWidget { + Q_OBJECT + Q_PROPERTY(bool editable READ isEditable WRITE setEditable) + + public : + explicit QtVCardWidget(QWidget* parent = 0); + ~QtVCardWidget(); + + bool isEditable() const; + void setEditable(bool); + + void setVCard(VCard::ref vcard); + VCard::ref getVCard(); + + virtual QSize sizeHint() const; + + signals: + void editableChanged(bool editable); + + private slots: + void addField(); + void removeField(QtVCardGeneralField* field); + + private: + void addFieldType(QMenu*, boost::shared_ptr<QtVCardFieldInfo>); + int fieldTypeInstances(boost::shared_ptr<QtVCardFieldInfo>); + void clearFields(); + void clearEmptyFields(); + void appendField(QtVCardGeneralField* field); + void relayoutToolButton(); + + private: + VCard::ref vcard; + Ui::QtVCardWidget* ui; + QToolButton* toolButton; + bool editable; + QMenu* menu; + std::list<QtVCardGeneralField*> fields; + std::map<QAction*, boost::shared_ptr<QtVCardFieldInfo> > actionFieldInfo; + }; } |