From e349fb48b4efd898f3eebe66e951a3e55aabdf82 Mon Sep 17 00:00:00 2001
From: Andrew Knight <andrew.knight@digia.com>
Date: Sat, 13 Jul 2013 14:44:26 +0300
Subject: [PATCH] Improve property offering in Utils::PathChooser

Add notifier to path property.
Add promptDialogFilter to property list.

Change-Id: Ic0e5dbdc1a2c1ac64477baeee5f55bc4416bc526
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
---
 src/libs/utils/pathchooser.cpp | 6 ++++++
 src/libs/utils/pathchooser.h   | 5 ++++-
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/libs/utils/pathchooser.cpp b/src/libs/utils/pathchooser.cpp
index ea60dd770d5..18e680e4acb 100644
--- a/src/libs/utils/pathchooser.cpp
+++ b/src/libs/utils/pathchooser.cpp
@@ -246,6 +246,7 @@ PathChooser::PathChooser(QWidget *parent) :
     connect(d->m_lineEdit, SIGNAL(validChanged()), this, SIGNAL(validChanged()));
     connect(d->m_lineEdit, SIGNAL(validChanged(bool)), this, SIGNAL(validChanged(bool)));
     connect(d->m_lineEdit, SIGNAL(editingFinished()), this, SIGNAL(editingFinished()));
+    connect(d->m_lineEdit, SIGNAL(textChanged(QString)), this, SLOT(slotTextChanged()));
 
     d->m_lineEdit->setMinimumWidth(120);
     d->m_hLayout->addWidget(d->m_lineEdit);
@@ -421,6 +422,11 @@ void PathChooser::slotBrowse()
     d->m_lineEdit->triggerChanged();
 }
 
+void PathChooser::slotTextChanged()
+{
+    emit pathChanged(path());
+}
+
 bool PathChooser::isValid() const
 {
     return d->m_lineEdit->isValid();
diff --git a/src/libs/utils/pathchooser.h b/src/libs/utils/pathchooser.h
index fd687ca514e..2dc33c0c9d0 100644
--- a/src/libs/utils/pathchooser.h
+++ b/src/libs/utils/pathchooser.h
@@ -50,8 +50,9 @@ class QTCREATOR_UTILS_EXPORT PathChooser : public QWidget
 {
     Q_OBJECT
     Q_ENUMS(Kind)
-    Q_PROPERTY(QString path READ path WRITE setPath DESIGNABLE true)
+    Q_PROPERTY(QString path READ path WRITE setPath NOTIFY pathChanged DESIGNABLE true)
     Q_PROPERTY(QString promptDialogTitle READ promptDialogTitle WRITE setPromptDialogTitle DESIGNABLE true)
+    Q_PROPERTY(QString promptDialogFilter READ promptDialogFilter WRITE setPromptDialogFilter DESIGNABLE true)
     Q_PROPERTY(Kind expectedKind READ expectedKind WRITE setExpectedKind DESIGNABLE true)
     Q_PROPERTY(QString baseDirectory READ baseDirectory WRITE setBaseDirectory DESIGNABLE true)
     Q_PROPERTY(QStringList commandVersionArguments READ commandVersionArguments WRITE setCommandVersionArguments)
@@ -139,6 +140,7 @@ signals:
     void validChanged();
     void validChanged(bool validState);
     void changed(const QString &text);
+    void pathChanged(const QString &path);
     void editingFinished();
     void beforeBrowsing();
     void browsingFinished();
@@ -150,6 +152,7 @@ public slots:
 
 private slots:
     void slotBrowse();
+    void slotTextChanged();
 
 private:
     PathChooserPrivate *d;
-- 
GitLab