[SCM] ktp-contact-list packaging branch, master, updated. debian/15.12.1-2-1070-g6c56f91

Maximiliano Curia maxy at moszumanska.debian.org
Sat May 28 00:08:07 UTC 2016


Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-contact-list.git;a=commitdiff;h=dc065d9

The following commit has been merged in the master branch:
commit dc065d93256b818800f365fc49ef449ce61f3e35
Author: Martin Klapetek <martin.klapetek at gmail.com>
Date:   Mon Nov 21 16:20:30 2011 +0100

    Fix correct buttons enabling/disabling
    
    Reviewed-by: David Edmundson
    BUG: 286898
---
 dialogs/custom-presence-dialog.cpp | 60 ++++++++++++++++++++++++++++++++------
 dialogs/custom-presence-dialog.h   |  8 +++++
 2 files changed, 59 insertions(+), 9 deletions(-)

diff --git a/dialogs/custom-presence-dialog.cpp b/dialogs/custom-presence-dialog.cpp
index 3a59fd6..88716c6 100644
--- a/dialogs/custom-presence-dialog.cpp
+++ b/dialogs/custom-presence-dialog.cpp
@@ -38,7 +38,9 @@
 #include <QLineEdit>
 #include <QKeyEvent>
 
-class FilteredModel : public QSortFilterProxyModel {
+class FilteredModel : public QSortFilterProxyModel
+{
+    Q_OBJECT
 public:
     FilteredModel(QObject *parent);
     bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const;
@@ -76,6 +78,12 @@ void CustomPresenceDialog::setupDialog()
     m_listView = new QListView(mainDialogWidget);
     m_listView->setModel(filteredModel);
 
+    connect(m_listView, SIGNAL(clicked(QModelIndex)),
+            this, SLOT(presenceViewSelectionChanged(QModelIndex)));
+
+    connect(m_listView, SIGNAL(activated(QModelIndex)),
+            this, SLOT(presenceViewSelectionChanged(QModelIndex)));
+
     m_statusMessage = new KComboBox(true, mainDialogWidget);
 
     m_statusMessage->addItem(KIcon("user-online"), i18n("Set custom available message ..."),qVariantFromValue(Tp::Presence::available()));
@@ -87,10 +95,16 @@ void CustomPresenceDialog::setupDialog()
     m_statusMessage->show();
 
     m_statusMessage->lineEdit()->setPlaceholderText(m_statusMessage->currentText());
-    m_statusMessage->lineEdit()->setText(QString());
 
-    QPushButton *addStatus = new QPushButton(KIcon("list-add"), i18n("Add Presence"), mainDialogWidget);
-    QPushButton *removeStatus = new QPushButton(KIcon("list-remove"), i18n("Remove Presence"), mainDialogWidget);
+    connect(m_statusMessage, SIGNAL(editTextChanged(QString)),
+            this, SLOT(presenceMessageTextChanged(QString)));
+
+    m_addStatus = new QPushButton(KIcon("list-add"), i18n("Add Presence"), mainDialogWidget);
+    m_removeStatus = new QPushButton(KIcon("list-remove"), i18n("Remove Presence"), mainDialogWidget);
+    m_removeStatus->setEnabled(false);
+
+    //this triggers the presenceMessageTextChanged() slot and disables the m_addStatus button
+    m_statusMessage->lineEdit()->setText(QString());
 
     QVBoxLayout *vLayout = new QVBoxLayout(mainDialogWidget);
     vLayout->addWidget(m_statusMessage);
@@ -99,8 +113,8 @@ void CustomPresenceDialog::setupDialog()
     hLayout->addWidget(m_listView);
 
     QVBoxLayout *vLayout2 = new QVBoxLayout();
-    vLayout2->addWidget(addStatus);
-    vLayout2->addWidget(removeStatus);
+    vLayout2->addWidget(m_addStatus);
+    vLayout2->addWidget(m_removeStatus);
     vLayout2->addStretch(1);
 
     hLayout->addLayout(vLayout2);
@@ -108,8 +122,8 @@ void CustomPresenceDialog::setupDialog()
 
     setMainWidget(mainDialogWidget);
 
-    connect(addStatus, SIGNAL(clicked()), SLOT(addCustomPresence()));
-    connect(removeStatus, SIGNAL(clicked()), SLOT(removeCustomPresence()));
+    connect(m_addStatus, SIGNAL(clicked()), SLOT(addCustomPresence()));
+    connect(m_removeStatus, SIGNAL(clicked()), SLOT(removeCustomPresence()));
     connect(m_statusMessage, SIGNAL(currentIndexChanged(QString)), SLOT(comboboxIndexChanged(QString)));
 
     m_statusMessage->installEventFilter(this);
@@ -121,7 +135,10 @@ void CustomPresenceDialog::addCustomPresence()
     Tp::Presence presence = m_statusMessage->itemData(presenceIndex).value<Tp::Presence>();
     presence.setStatus(presence.type(), QString(), m_statusMessage->currentText());
 
-    m_model->addPresence(presence);
+    m_listView->setCurrentIndex(qobject_cast<FilteredModel*>(m_listView->model())->mapFromSource(m_model->addPresence(presence)));
+    m_statusMessage->lineEdit()->clear();
+    m_listView->setFocus();
+    m_removeStatus->setEnabled(true);
 }
 
 void CustomPresenceDialog::removeCustomPresence()
@@ -132,6 +149,10 @@ void CustomPresenceDialog::removeCustomPresence()
 
     Tp::Presence presence = m_listView->currentIndex().data(PresenceModel::PresenceRole).value<Tp::Presence>();
     m_model->removePresence(presence);
+
+    if (m_listView->model()->rowCount(QModelIndex()) == 0) {
+        m_removeStatus->setEnabled(false);
+    }
 }
 
 void CustomPresenceDialog::comboboxIndexChanged(const QString& text)
@@ -157,3 +178,24 @@ bool CustomPresenceDialog::eventFilter(QObject* obj, QEvent* event)
         return QObject::eventFilter(obj, event);
     }
 }
+
+void CustomPresenceDialog::presenceMessageTextChanged(const QString& text)
+{
+    if (text.isEmpty()) {
+        m_addStatus->setEnabled(false);
+    } else {
+        m_addStatus->setEnabled(true);
+    }
+}
+
+void CustomPresenceDialog::presenceViewSelectionChanged(const QModelIndex& index)
+{
+    if (index.isValid()) {
+        m_removeStatus->setEnabled(true);
+    } else {
+        m_removeStatus->setEnabled(false);
+    }
+}
+
+#include "custom-presence-dialog.moc"
+#include "moc_custom-presence-dialog.cpp" //hack because we have two QObejcts in teh same file
diff --git a/dialogs/custom-presence-dialog.h b/dialogs/custom-presence-dialog.h
index b6a343e..f48788a 100644
--- a/dialogs/custom-presence-dialog.h
+++ b/dialogs/custom-presence-dialog.h
@@ -25,6 +25,7 @@
 #include <KComboBox>
 #include <KDialog>
 
+class QPushButton;
 //Forward declrare classes
 class KIcon;
 class QListView;
@@ -42,6 +43,8 @@ private Q_SLOTS:
     void addCustomPresence();
     void removeCustomPresence();
     void comboboxIndexChanged(const QString &text);
+    void presenceMessageTextChanged(const QString &text);
+    void presenceViewSelectionChanged(const QModelIndex &index);
 
 private:
     ///Setup the initial dialog
@@ -57,6 +60,11 @@ private:
     KComboBox    *m_statusMessage;
 
     PresenceModel *m_model;
+
+    QPushButton *m_addStatus;
+    QPushButton *m_removeStatus;
+
+//     FilteredModel *m_filteredModel;
 };
 
 #endif // CUSTOM_PRESENCE_DIALOG_H

-- 
ktp-contact-list packaging



More information about the pkg-kde-commits mailing list