diff options
Diffstat (limited to 'Swift/QtUI/Roster')
-rw-r--r-- | Swift/QtUI/Roster/QtFilterWidget.cpp | 4 | ||||
-rw-r--r-- | Swift/QtUI/Roster/QtOccupantListWidget.cpp | 2 | ||||
-rw-r--r-- | Swift/QtUI/Roster/RosterModel.cpp | 2 | ||||
-rw-r--r-- | Swift/QtUI/Roster/RosterTooltip.cpp | 8 |
4 files changed, 8 insertions, 8 deletions
diff --git a/Swift/QtUI/Roster/QtFilterWidget.cpp b/Swift/QtUI/Roster/QtFilterWidget.cpp index d2e4d09..2e1ead9 100644 --- a/Swift/QtUI/Roster/QtFilterWidget.cpp +++ b/Swift/QtUI/Roster/QtFilterWidget.cpp @@ -73,72 +73,72 @@ bool QtFilterWidget::eventFilter(QObject*, QEvent* event) { QPoint itemOffset(2,2); QPoint contextMenuPosition = treeView_->visualRect(treeView_->currentIndex()).topLeft() + itemOffset;; QApplication::postEvent(treeView_, new QContextMenuEvent(QContextMenuEvent::Keyboard, contextMenuPosition, treeView_->mapToGlobal(contextMenuPosition))); return true; } else if (keyEvent->key() == Qt::Key_Return) { JID target = treeView_->selectedJID(); if (target.isValid()) { eventStream_->send(std::make_shared<RequestChatUIEvent>(target)); } filterLineEdit_->setText(""); updateRosterFilters(); } else if (keyEvent->key() == Qt::Key_Escape) { filterLineEdit_->setText(""); } else { isModifierSinglePressed_ = false; } } filterLineEdit_->event(event); if (event->type() == QEvent::KeyRelease) { updateRosterFilters(); } return true; } return false; } void QtFilterWidget::popAllFilters() { std::vector<RosterFilter*> filters = treeView_->getRoster()->getFilters(); - foreach(RosterFilter* filter, filters) { + for (auto filter : filters) { filters_.push_back(filter); treeView_->getRoster()->removeFilter(filter); } treeView_->getRoster()->onFilterAdded.connect(boost::bind(&QtFilterWidget::handleFilterAdded, this, _1)); treeView_->getRoster()->onFilterRemoved.connect(boost::bind(&QtFilterWidget::handleFilterRemoved, this, _1)); } void QtFilterWidget::pushAllFilters() { treeView_->getRoster()->onFilterAdded.disconnect(boost::bind(&QtFilterWidget::handleFilterAdded, this, _1)); treeView_->getRoster()->onFilterRemoved.disconnect(boost::bind(&QtFilterWidget::handleFilterRemoved, this, _1)); - foreach(RosterFilter* filter, filters_) { + for (auto filter : filters_) { treeView_->getRoster()->addFilter(filter); } filters_.clear(); } void QtFilterWidget::updateRosterFilters() { if (fuzzyRosterFilter_) { if (filterLineEdit_->text().isEmpty()) { // remove currently installed search filter and put old filters back treeView_->getRoster()->removeFilter(fuzzyRosterFilter_); delete fuzzyRosterFilter_; fuzzyRosterFilter_ = nullptr; pushAllFilters(); } else { // remove currently intsalled search filter and put new search filter in place updateSearchFilter(); } } else { if (!filterLineEdit_->text().isEmpty()) { // remove currently installed filters and put a search filter in place popAllFilters(); updateSearchFilter(); } } filterLineEdit_->setVisible(!filterLineEdit_->text().isEmpty()); } void QtFilterWidget::updateSearchFilter() { if (fuzzyRosterFilter_) { treeView_->getRoster()->removeFilter(fuzzyRosterFilter_); diff --git a/Swift/QtUI/Roster/QtOccupantListWidget.cpp b/Swift/QtUI/Roster/QtOccupantListWidget.cpp index 03c14fd..a12863d 100644 --- a/Swift/QtUI/Roster/QtOccupantListWidget.cpp +++ b/Swift/QtUI/Roster/QtOccupantListWidget.cpp @@ -23,54 +23,54 @@ namespace Swift { QtOccupantListWidget::QtOccupantListWidget(UIEventStream* eventStream, SettingsProvider* settings, MessageTarget privateMessageTarget, QWidget* parent) : QtTreeWidget(eventStream, settings, privateMessageTarget, parent) { } QtOccupantListWidget::~QtOccupantListWidget() { } void QtOccupantListWidget::setAvailableOccupantActions(const std::vector<ChatWindow::OccupantAction>& actions) { availableOccupantActions_ = actions; } void QtOccupantListWidget::contextMenuEvent(QContextMenuEvent* event) { QModelIndex index = indexAt(event->pos()); if (!index.isValid()) { return; } RosterItem* item = static_cast<RosterItem*>(index.internalPointer()); ContactRosterItem* contact = dynamic_cast<ContactRosterItem*>(item); if (contact) { onSomethingSelectedChanged(contact); QMenu contextMenu; if (availableOccupantActions_.empty()) { QAction* noAction = contextMenu.addAction(tr("No actions for this user")); noAction->setEnabled(false); contextMenu.exec(event->globalPos()); } else { std::map<QAction*, ChatWindow::OccupantAction> actions; - foreach (ChatWindow::OccupantAction availableAction, availableOccupantActions_) { + for (const auto& availableAction : availableOccupantActions_) { QString text = "Error: missing string"; switch (availableAction) { case ChatWindow::Kick: text = tr("Kick user"); break; case ChatWindow::Ban: text = tr("Kick and ban user"); break; case ChatWindow::MakeModerator: text = tr("Make moderator"); break; case ChatWindow::MakeParticipant: text = tr("Make participant"); break; case ChatWindow::MakeVisitor: text = tr("Remove voice"); break; case ChatWindow::AddContact: text = tr("Add to contacts"); break; case ChatWindow::ShowProfile: text = tr("Show profile"); break; } QAction* action = contextMenu.addAction(text); actions[action] = availableAction; } QAction* result = contextMenu.exec(event->globalPos()); if (result) { onOccupantActionSelected(actions[result], contact); } } } } } diff --git a/Swift/QtUI/Roster/RosterModel.cpp b/Swift/QtUI/Roster/RosterModel.cpp index 3f77c86..ef4d778 100644 --- a/Swift/QtUI/Roster/RosterModel.cpp +++ b/Swift/QtUI/Roster/RosterModel.cpp @@ -26,61 +26,61 @@ #include <Swift/QtUI/Roster/QtTreeWidget.h> #include <Swift/QtUI/Roster/RosterTooltip.h> namespace Swift { RosterModel::RosterModel(QtTreeWidget* view, bool screenReaderMode) : roster_(nullptr), view_(view), screenReader_(screenReaderMode) { const int tooltipAvatarSize = 96; // maximal suggested size according to XEP-0153 cachedImageScaler_ = new QtScaledAvatarCache(tooltipAvatarSize); } RosterModel::~RosterModel() { delete cachedImageScaler_; } void RosterModel::setRoster(Roster* roster) { roster_ = roster; if (roster_) { roster->onChildrenChanged.connect(boost::bind(&RosterModel::handleChildrenChanged, this, _1)); roster->onDataChanged.connect(boost::bind(&RosterModel::handleDataChanged, this, _1)); } reLayout(); } void RosterModel::reLayout() { //emit layoutChanged(); beginResetModel(); endResetModel(); // TODO: Not sure if this isn't too early? if (!roster_) { return; } - foreach (RosterItem* item, roster_->getRoot()->getDisplayedChildren()) { + for (auto item : roster_->getRoot()->getDisplayedChildren()) { GroupRosterItem* child = dynamic_cast<GroupRosterItem*>(item); if (!child) continue; emit itemExpanded(index(child), child->isExpanded()); } } void RosterModel::handleChildrenChanged(GroupRosterItem* /*group*/) { reLayout(); } void RosterModel::handleDataChanged(RosterItem* item) { Q_ASSERT(item); QModelIndex modelIndex = index(item); if (modelIndex.isValid()) { emit dataChanged(modelIndex, modelIndex); view_->refreshTooltip(); } } Qt::ItemFlags RosterModel::flags(const QModelIndex& index) const { Qt::ItemFlags flags = QAbstractItemModel::flags(index); if (dynamic_cast<GroupRosterItem*>(getItem(index)) == nullptr) { flags |= Qt::ItemIsDragEnabled; } return flags; } int RosterModel::columnCount(const QModelIndex& /*parent*/) const { return 1; } diff --git a/Swift/QtUI/Roster/RosterTooltip.cpp b/Swift/QtUI/Roster/RosterTooltip.cpp index 8d467fd..ea4c9cd 100644 --- a/Swift/QtUI/Roster/RosterTooltip.cpp +++ b/Swift/QtUI/Roster/RosterTooltip.cpp @@ -95,81 +95,81 @@ QString RosterTooltip::buildDetailedTooltip(ContactRosterItem* contact, QtScaled QString statusMessage = contact->getStatusText().empty() ? QObject::tr("(No message)") : P2QSTRING(contact->getStatusText()); boost::posix_time::ptime idleTime = contact->getIdle(); QString idleString; if (!idleTime.is_not_a_date_time()) { idleString = QObject::tr("Idle since %1").arg(P2QSTRING(Swift::Translator::getInstance()->ptimeToHumanReadableString(idleTime))); idleString = htmlEscape(idleString) + "<br/>"; } boost::posix_time::ptime lastSeenTime = contact->getOfflineSince(); QString lastSeen; if (!lastSeenTime.is_not_a_date_time()) { lastSeen = QObject::tr("Last seen %1").arg(P2QSTRING(Swift::Translator::getInstance()->ptimeToHumanReadableString(lastSeenTime))); lastSeen = htmlEscape(lastSeen) + "<br/>"; } QString mucOccupant= P2QSTRING(contact->getMUCAffiliationText()); if (!mucOccupant.isEmpty()) { mucOccupant = htmlEscape(mucOccupant) + "<br/>"; } return tooltipTemplate.arg(scaledAvatarPath, htmlEscape(fullName), htmlEscape(bareJID), presenceIconTag, htmlEscape(statusMessage), mucOccupant, idleString, lastSeen, vCardSummary); } QString RosterTooltip::buildVCardSummary(VCard::ref vcard) { QString summary; summary = "<table>"; // star | name | content QString currentBlock; - foreach (const VCard::Telephone& tel, vcard->getTelephones()) { + for (const auto& tel : vcard->getTelephones()) { QString type = tel.isFax ? QObject::tr("Fax") : QObject::tr("Telephone"); QString field = buildVCardField(tel.isPreferred, type, htmlEscape(P2QSTRING(tel.number))); if (tel.isPreferred) { currentBlock = field; break; } currentBlock += field; } summary += currentBlock; currentBlock = ""; - foreach (const VCard::EMailAddress& mail, vcard->getEMailAddresses()) { + for (const auto& mail : vcard->getEMailAddresses()) { QString field = buildVCardField(mail.isPreferred, QObject::tr("E-Mail"), htmlEscape(P2QSTRING(mail.address))); if (mail.isPreferred) { currentBlock = field; break; } currentBlock += field; } summary += currentBlock; currentBlock = ""; - foreach (const VCard::Organization& org, vcard->getOrganizations()) { + for (const auto& org : vcard->getOrganizations()) { QString field = buildVCardField(false, QObject::tr("Organization"), htmlEscape(P2QSTRING(org.name))); currentBlock += field; } summary += currentBlock; currentBlock = ""; - foreach(const std::string& title, vcard->getTitles()) { + for (const auto& title : vcard->getTitles()) { QString field = buildVCardField(false, QObject::tr("Title"), htmlEscape(P2QSTRING(title))); currentBlock += field; } summary += currentBlock; summary += "</table>"; return summary; } QString RosterTooltip::buildVCardField(bool preferred, const QString& name, const QString& content) { QString rowTemplate; if (QApplication::layoutDirection() == Qt::RightToLeft) { rowTemplate = QString("<tr><td>%3</td><td valign='middle'><strong>%2</strong></td><td valign='middle'>%1</td></tr>"); } else { rowTemplate = QString("<tr><td>%1</td><td valign='middle'><strong>%2</strong></td><td valign='middle'>%3</td></tr>"); } return rowTemplate.arg(preferred ? "<img src=':/icons/star-checked.png' />" : "", name, content); } } |