diff options
Diffstat (limited to 'Swift/QtUI/QtSetGroupsDialog.cpp')
-rw-r--r-- | Swift/QtUI/QtSetGroupsDialog.cpp | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/Swift/QtUI/QtSetGroupsDialog.cpp b/Swift/QtUI/QtSetGroupsDialog.cpp deleted file mode 100644 index d19a55d..0000000 --- a/Swift/QtUI/QtSetGroupsDialog.cpp +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright (c) 2010 Kevin Smith - * Licensed under the GNU General Public License v3. - * See Documentation/Licenses/GPLv3.txt for more information. - */ - -#include "QtSetGroupsDialog.h" - -#include <algorithm> - -#include <QScrollArea> -#include <QBoxLayout> -#include <QLabel> -#include <QDialogButtonBox> - -#include "Swift/QtUI/QtSwiftUtil.h" - -namespace Swift { - -QtSetGroupsDialog::QtSetGroupsDialog(ContactRosterItem* contact, const QList<QString>& allGroups) : contact_(contact) { - //resize(300,300); - setWindowTitle("Edit contact"); - QBoxLayout* layout = new QBoxLayout(QBoxLayout::TopToBottom, this); - setContentsMargins(0,0,0,0); - QScrollArea* scrollArea = new QScrollArea(this); - layout->addWidget(scrollArea); - scrollArea->setWidgetResizable(true); - scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); - scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded); - QWidget* scroll = new QWidget(scrollArea); - scrollArea->setWidget(scroll); - QVBoxLayout* scrollLayout = new QVBoxLayout(scroll); - QLabel* label = new QLabel(scroll); - label->setText("Choose groups for " + P2QSTRING(contact->getDisplayName()) + " (" + P2QSTRING(contact->getJID().toString()) + ")"); - scrollLayout->addWidget(label); - foreach (QString group, allGroups) { - QCheckBox* check = new QCheckBox(scroll); - check->setText(group); - check->setCheckState(Qt::Unchecked); - checkBoxes_[Q2PSTRING(group)] = check; - scrollLayout->addWidget(check); - } - foreach (String group, contact->getGroups()) { - checkBoxes_[group]->setCheckState(Qt::Checked); - } - - QHBoxLayout* newGroupLayout = new QHBoxLayout(); - newGroup_ = new QCheckBox(scroll); - newGroup_->setText("New Group:"); - newGroup_->setCheckState(Qt::Unchecked); - newGroupLayout->addWidget(newGroup_); - newGroupName_ = new QLineEdit(scroll); - newGroupLayout->addWidget(newGroupName_); - scrollLayout->addLayout(newGroupLayout); - - scrollLayout->addItem(new QSpacerItem(20, 73, QSizePolicy::Minimum, QSizePolicy::Expanding)); - - QDialogButtonBox* buttons = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal, this); - layout->addWidget(buttons); - connect(buttons, SIGNAL(accepted()), this, SLOT(accept())); - connect(buttons, SIGNAL(rejected()), this, SLOT(reject())); -} - -QtSetGroupsDialog::~QtSetGroupsDialog() { - // TODO Auto-generated destructor stub -} - -typedef std::pair<String, QCheckBox*> CheckStringPair; - -boost::shared_ptr<RegroupRosterItemUIEvent> QtSetGroupsDialog::getRegroupEvent() { - std::vector<String> addedGroups; - std::vector<String> removedGroups; - std::vector<String> existingGroups = contact_->getGroups(); - int tickedCount = 0; - bool wantsContacts = false; - foreach (CheckStringPair pair, checkBoxes_) { - bool existing = std::find(existingGroups.begin(), existingGroups.end(), pair.first) != existingGroups.end(); - if (pair.second->checkState() == Qt::Checked) { - tickedCount++; - if (pair.first == "Contacts") { - wantsContacts = true; - } - if (!existing && pair.first != "Contacts") { - addedGroups.push_back(pair.first); - } - } else { - if (existing) { - removedGroups.push_back(pair.first); - } - } - } - if (newGroup_->checkState() == Qt::Checked) { - tickedCount++; - String name = Q2PSTRING(newGroupName_->text()); - if (std::find(existingGroups.begin(), existingGroups.end(), name) == existingGroups.end()) { - addedGroups.push_back(name); - } - } - if (tickedCount > 1 && wantsContacts) { - addedGroups.push_back("Contacts"); - } - boost::shared_ptr<RegroupRosterItemUIEvent> result(new RegroupRosterItemUIEvent(contact_->getJID(), addedGroups, removedGroups)); - return result; -} - -} |