diff options
Diffstat (limited to 'Swift/QtUI/Roster')
-rw-r--r-- | Swift/QtUI/Roster/QtRosterWidget.cpp | 10 | ||||
-rw-r--r-- | Swift/QtUI/Roster/QtTreeWidget.cpp | 10 | ||||
-rw-r--r-- | Swift/QtUI/Roster/QtTreeWidget.h | 4 |
3 files changed, 22 insertions, 2 deletions
diff --git a/Swift/QtUI/Roster/QtRosterWidget.cpp b/Swift/QtUI/Roster/QtRosterWidget.cpp index 4a3c9f3..8c296e5 100644 --- a/Swift/QtUI/Roster/QtRosterWidget.cpp +++ b/Swift/QtUI/Roster/QtRosterWidget.cpp @@ -60,33 +60,38 @@ void QtRosterWidget::contextMenuEvent(QContextMenuEvent* event) { QMenu contextMenu; if (ContactRosterItem* contact = dynamic_cast<ContactRosterItem*>(item)) { QAction* editContact = contextMenu.addAction(tr("Edit…")); + editContact->setEnabled(isOnline()); QAction* removeContact = contextMenu.addAction(tr("Remove")); + removeContact->setEnabled(isOnline()); QAction* showProfileForContact = contextMenu.addAction(tr("Show Profile")); QAction* unblockContact = NULL; if (contact->blockState() == ContactRosterItem::IsBlocked || contact->blockState() == ContactRosterItem::IsDomainBlocked) { unblockContact = contextMenu.addAction(tr("Unblock")); + unblockContact->setEnabled(isOnline()); } QAction* blockContact = NULL; if (contact->blockState() == ContactRosterItem::IsUnblocked) { blockContact = contextMenu.addAction(tr("Block")); + blockContact->setEnabled(isOnline()); } #ifdef SWIFT_EXPERIMENTAL_FT QAction* sendFile = NULL; if (contact->supportsFeature(ContactRosterItem::FileTransferFeature)) { sendFile = contextMenu.addAction(tr("Send File")); + sendFile->setEnabled(isOnline()); } #endif #ifdef SWIFT_EXPERIMENTAL_WB QAction* startWhiteboardChat = NULL; if (contact->supportsFeature(ContactRosterItem::WhiteboardFeature)) { startWhiteboardChat = contextMenu.addAction(tr("Start Whiteboard Chat")); + startWhiteboardChat->setEnabled(isOnline()); } #endif - QAction* result = contextMenu.exec(event->globalPos()); if (result == editContact) { eventStream_->send(boost::make_shared<RequestContactEditorUIEvent>(contact->getJID())); @@ -135,6 +140,9 @@ void QtRosterWidget::contextMenuEvent(QContextMenuEvent* event) { if (P2QSTRING(group->getDisplayName()) == tr("Contacts")) { renameGroupAction->setEnabled(false); } + else { + renameGroupAction->setEnabled(isOnline()); + } QAction* result = contextMenu.exec(event->globalPos()); if (result == renameGroupAction) { renameGroup(group); diff --git a/Swift/QtUI/Roster/QtTreeWidget.cpp b/Swift/QtUI/Roster/QtTreeWidget.cpp index 5333260..f296088 100644 --- a/Swift/QtUI/Roster/QtTreeWidget.cpp +++ b/Swift/QtUI/Roster/QtTreeWidget.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2012 Kevin Smith + * Copyright (c) 2010-2014 Kevin Smith * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. */ @@ -252,4 +252,12 @@ JID QtTreeWidget::selectedJID() const { return jidFromIndex(list[0]); } +void QtTreeWidget::setOnline(bool isOnline) { + isOnline_ = isOnline; +} + +bool QtTreeWidget::isOnline() const { + return isOnline_; +} + } diff --git a/Swift/QtUI/Roster/QtTreeWidget.h b/Swift/QtUI/Roster/QtTreeWidget.h index cf2f73e..12d34f5 100644 --- a/Swift/QtUI/Roster/QtTreeWidget.h +++ b/Swift/QtUI/Roster/QtTreeWidget.h @@ -36,6 +36,8 @@ class QtTreeWidget : public QTreeView { void setMessageTarget(MessageTarget messageTarget); JID jidFromIndex(const QModelIndex& index) const; JID selectedJID() const; + void setOnline(bool isOnline); + public: boost::signal<void (RosterItem*)> onSomethingSelectedChanged; @@ -54,6 +56,7 @@ class QtTreeWidget : public QTreeView { void dragMoveEvent(QDragMoveEvent* event); bool event(QEvent* event); QModelIndexList getSelectedIndexes() const; + bool isOnline() const; private: void drawBranches(QPainter*, const QRect&, const QModelIndex&) const; @@ -71,6 +74,7 @@ class QtTreeWidget : public QTreeView { SettingsProvider* settings_; bool tooltipShown_; MessageTarget messageTarget_; + bool isOnline_; }; } |