summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Smith <git@kismith.co.uk>2012-05-31 18:11:54 (GMT)
committerKevin Smith <git@kismith.co.uk>2012-05-31 18:11:54 (GMT)
commitce9b4d1865df52497cf0d336efe0de3d1dbb7dec (patch)
treec8822916a2b6d43b158c00065f038e778c206336 /Swift/QtUI
parent6aeb44a905b0c1955ea3afe4ea2025370544e699 (diff)
downloadswift-contrib-ce9b4d1865df52497cf0d336efe0de3d1dbb7dec.zip
swift-contrib-ce9b4d1865df52497cf0d336efe0de3d1dbb7dec.tar.bz2
Better MUC inviting
Diffstat (limited to 'Swift/QtUI')
-rw-r--r--Swift/QtUI/QtInviteToChatWindow.cpp22
-rw-r--r--Swift/QtUI/QtInviteToChatWindow.h5
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_;