diff options
author | Kevin Smith <git@kismith.co.uk> | 2012-05-31 18:11:54 (GMT) |
---|---|---|
committer | Kevin Smith <git@kismith.co.uk> | 2012-05-31 18:11:54 (GMT) |
commit | ce9b4d1865df52497cf0d336efe0de3d1dbb7dec (patch) | |
tree | c8822916a2b6d43b158c00065f038e778c206336 /Swift/QtUI | |
parent | 6aeb44a905b0c1955ea3afe4ea2025370544e699 (diff) | |
download | swift-ce9b4d1865df52497cf0d336efe0de3d1dbb7dec.zip swift-ce9b4d1865df52497cf0d336efe0de3d1dbb7dec.tar.bz2 |
Better MUC inviting
Diffstat (limited to 'Swift/QtUI')
-rw-r--r-- | Swift/QtUI/QtInviteToChatWindow.cpp | 22 | ||||
-rw-r--r-- | Swift/QtUI/QtInviteToChatWindow.h | 5 |
2 files changed, 22 insertions, 5 deletions
diff --git a/Swift/QtUI/QtInviteToChatWindow.cpp b/Swift/QtUI/QtInviteToChatWindow.cpp index d53c493..3b8f1fc 100644 --- a/Swift/QtUI/QtInviteToChatWindow.cpp +++ b/Swift/QtUI/QtInviteToChatWindow.cpp @@ -19,8 +19,8 @@ namespace Swift { QtInviteToChatWindow::QtInviteToChatWindow(QWidget* parent) : QDialog(parent) { QBoxLayout *layout = new QBoxLayout(QBoxLayout::TopToBottom, this); - layout->setContentsMargins(0,0,0,0); - layout->setSpacing(2); + //layout->setContentsMargins(0,0,0,0); + //layout->setSpacing(2); QLabel* description = new QLabel(tr("Users to invite to this chat (one per line):")); layout->addWidget(description); @@ -45,6 +45,8 @@ QtInviteToChatWindow::QtInviteToChatWindow(QWidget* parent) : QDialog(parent) { layout->addWidget(buttonBox); + jids_[0]->setFocus(); + setModal(false); show(); } @@ -81,7 +83,7 @@ std::vector<JID> QtInviteToChatWindow::getJIDs() const { void QtInviteToChatWindow::addJIDLine() { QLineEdit* jid = new QLineEdit(this); - QCompleter* completer = new QCompleter(completions_, this); + QCompleter* completer = new QCompleter(&completions_, this); completer->setCaseSensitivity(Qt::CaseInsensitive); jid->setCompleter(completer); jids_.push_back(jid); @@ -101,6 +103,20 @@ void QtInviteToChatWindow::handleJIDTextChanged() { } } +typedef std::pair<JID, std::string> JIDString; + +void QtInviteToChatWindow::setAutoCompletions(std::vector<std::pair<JID, std::string> > completions) { + QStringList list; + foreach (JIDString jidPair, completions) { + QString line = P2QSTRING(jidPair.first.toString()); + if (jidPair.second != jidPair.first.toString() && !jidPair.second.empty()) { + line = P2QSTRING(jidPair.second) + " - " + line; + } + list.append(line); + } + completions_.setStringList(list); +} + } diff --git a/Swift/QtUI/QtInviteToChatWindow.h b/Swift/QtUI/QtInviteToChatWindow.h index c009861..a0167db 100644 --- a/Swift/QtUI/QtInviteToChatWindow.h +++ b/Swift/QtUI/QtInviteToChatWindow.h @@ -9,7 +9,7 @@ #include <Swift/Controllers/UIInterfaces/InviteToChatWindow.h> #include <QDialog> -#include <QStringList> +#include <QStringListModel> class QLineEdit; class QBoxLayout; @@ -24,6 +24,7 @@ namespace Swift { virtual std::string getReason() const; virtual std::vector<JID> getJIDs() const; + virtual void setAutoCompletions(std::vector<std::pair<JID, std::string> > completions); private: void addJIDLine(); private slots: @@ -31,7 +32,7 @@ namespace Swift { void handleAccepting(); void handleRejecting(); private: - QStringList completions_; + QStringListModel completions_; QLineEdit* reason_; QBoxLayout* jidsLayout_; std::vector<QLineEdit*> jids_; |