From 245185ca3133fd496b90c5c9973713e8aa02f0ef Mon Sep 17 00:00:00 2001 From: Kevin Smith Date: Fri, 24 Sep 2010 17:58:30 +0100 Subject: Rename contacts in the QtUI. Resolves: #575 diff --git a/Swift/QtUI/ContextMenus/QtRosterContextMenu.cpp b/Swift/QtUI/ContextMenus/QtRosterContextMenu.cpp index e6b5ae5..59c3b78 100644 --- a/Swift/QtUI/ContextMenus/QtRosterContextMenu.cpp +++ b/Swift/QtUI/ContextMenus/QtRosterContextMenu.cpp @@ -6,6 +6,8 @@ #include "Swift/QtUI/ContextMenus/QtRosterContextMenu.h" +#include +#include #include #include @@ -15,6 +17,7 @@ #include "Swiften/Base/String.h" #include "Swift/Controllers/UIEvents/UIEvent.h" #include "Swift/Controllers/UIEvents/RemoveRosterItemUIEvent.h" +#include "Swift/Controllers/UIEvents/RenameRosterItemUIEvent.h" #include "Swift/QtUI/QtSwiftUtil.h" namespace Swift { @@ -30,14 +33,25 @@ void QtRosterContextMenu::show(RosterItem* item) { } item_ = item; QMenu* contextMenu = new QMenu(); - contextMenu->addAction("Remove", this, SLOT(handleRemove())); + contextMenu->addAction("Remove", this, SLOT(handleRemoveContact())); + contextMenu->addAction("Rename", this, SLOT(handleRenameContact())); contextMenu->exec(QCursor::pos()); } -void QtRosterContextMenu::handleRemove() { +void QtRosterContextMenu::handleRemoveContact() { ContactRosterItem* contact = dynamic_cast(item_); assert(contact); eventStream_->send(boost::shared_ptr(new RemoveRosterItemUIEvent(contact->getJID()))); } +void QtRosterContextMenu::handleRenameContact() { + ContactRosterItem* contact = dynamic_cast(item_); + assert(contact); + bool ok; + QString newName = QInputDialog::getText(NULL, "Rename contact", "New name for " + P2QSTRING(item_->getDisplayName()), QLineEdit::Normal, P2QSTRING(item_->getDisplayName()), &ok); + if (ok) { + eventStream_->send(boost::shared_ptr(new RenameRosterItemUIEvent(contact->getJID(), Q2PSTRING(newName)))); + } +} + } diff --git a/Swift/QtUI/ContextMenus/QtRosterContextMenu.h b/Swift/QtUI/ContextMenus/QtRosterContextMenu.h index 51556e4..44f3314 100644 --- a/Swift/QtUI/ContextMenus/QtRosterContextMenu.h +++ b/Swift/QtUI/ContextMenus/QtRosterContextMenu.h @@ -20,7 +20,8 @@ namespace Swift { void show(RosterItem* item); private slots: - void handleRemove(); + void handleRemoveContact(); + void handleRenameContact(); private: RosterItem* item_; -- cgit v0.10.2-6-g49f6