Hi,
I apply KLineEdit::clickMessage deprecating patch and modify kdelibs in order 
to have a consistant API. You can find patch as attachment.
I work on a patch for Qt5.1 in order to have the same API in QTextEdit.
Thans for reviewing.
-- 
Benjamin Port
http://blog.ben2367.fr
>From d939e7ce8e9cbd89f6b3cfb74db1afcd256cf3b9 Mon Sep 17 00:00:00 2001
From: Benjamin Port <port.benja...@gmail.com>
Date: Sat, 28 Apr 2012 20:41:22 +0200
Subject: [PATCH 1/3] Deprecate KLineEdit clickMessage, in order to use Qt
 alternative placeholderText

---
 kdeui/widgets/klineedit.cpp |   14 ++++++++++++++
 kdeui/widgets/klineedit.h   |   18 ++++++++++++++++--
 2 files changed, 30 insertions(+), 2 deletions(-)

diff --git a/kdeui/widgets/klineedit.cpp b/kdeui/widgets/klineedit.cpp
index 98b7d9f..bacec0e 100644
--- a/kdeui/widgets/klineedit.cpp
+++ b/kdeui/widgets/klineedit.cpp
@@ -169,9 +169,11 @@ public:
     QString squeezedText;
     QString userText;
 
+#ifndef KDE_NO_DEPRECATED
     QString clickMessage;
     bool enableClickMsg:1;
     bool drawClickMsg:1;
+#endif
     bool threeStars:1;
 
     bool possibleTripleClick :1;  // set in mousePressEvent, deleted in tripleClickTimeout
@@ -277,10 +279,12 @@ void KLineEdit::initWidget()
     connect(this, SIGNAL(textChanged(QString)), this, SLOT(_k_textChanged(QString)));
 }
 
+#ifndef KDE_NO_DEPRECATED
 QString KLineEdit::clickMessage() const
 {
     return d->clickMessage;
 }
+#endif
 
 void KLineEdit::setClearButtonShown(bool show)
 {
@@ -569,11 +573,13 @@ bool KLineEdit::isSqueezedTextEnabled() const
 
 void KLineEdit::setText( const QString& text )
 {
+#ifndef KDE_NO_DEPRECATED
     if( d->enableClickMsg )
     {
           d->drawClickMsg = text.isEmpty();
           update();
     }
+#endif
     if( d->enableSqueezedText && isReadOnly() )
     {
         d->squeezedText = text;
@@ -1754,6 +1760,7 @@ void KLineEdit::paintEvent( QPaintEvent *ev )
         QLineEdit::paintEvent( ev );
     }
 
+#ifndef KDE_NO_DEPRECATED
     if (d->enableClickMsg && d->drawClickMsg && !hasFocus() && text().isEmpty()) {
         QPainter p(this);
         QFont f = font();
@@ -1801,8 +1808,10 @@ void KLineEdit::paintEvent( QPaintEvent *ev )
         p.drawText(lineRect, Qt::AlignLeft|Qt::AlignVCenter, d->clickMessage);
 
     }
+#endif
 }
 
+#ifndef KDE_NO_DEPRECATED
 void KLineEdit::focusInEvent( QFocusEvent *ev )
 {
     if ( d->enableClickMsg && d->drawClickMsg )
@@ -1812,7 +1821,9 @@ void KLineEdit::focusInEvent( QFocusEvent *ev )
     }
     QLineEdit::focusInEvent( ev );
 }
+#endif
 
+#ifndef KDE_NO_DEPRECATED
 void KLineEdit::focusOutEvent( QFocusEvent *ev )
 {
     if ( d->enableClickMsg && text().isEmpty() )
@@ -1822,7 +1833,9 @@ void KLineEdit::focusOutEvent( QFocusEvent *ev )
     }
     QLineEdit::focusOutEvent( ev );
 }
+#endif
 
+#ifndef KDE_NO_DEPRECATED
 void KLineEdit::setClickMessage( const QString &msg )
 {
     d->enableClickMsg = !msg.isEmpty();
@@ -1830,6 +1843,7 @@ void KLineEdit::setClickMessage( const QString &msg )
     d->drawClickMsg = text().isEmpty();
     update();
 }
+#endif
 
 #ifndef KDE_NO_DEPRECATED
 void KLineEdit::setContextMenuEnabled( bool showMenu )
diff --git a/kdeui/widgets/klineedit.h b/kdeui/widgets/klineedit.h
index 8130a0e..fdcf30b 100644
--- a/kdeui/widgets/klineedit.h
+++ b/kdeui/widgets/klineedit.h
@@ -158,7 +158,9 @@ class KDEUI_EXPORT KLineEdit : public QLineEdit, public KCompletionBase //krazy:
     Q_PROPERTY( bool urlDropsEnabled READ urlDropsEnabled WRITE setUrlDropsEnabled )
     Q_PROPERTY( bool trapEnterKeyEvent READ trapReturnKey WRITE setTrapReturnKey )
     Q_PROPERTY( bool squeezedTextEnabled READ isSqueezedTextEnabled WRITE setSqueezedTextEnabled )
+#ifndef KDE_NO_DEPRECATED
     Q_PROPERTY( QString clickMessage READ clickMessage WRITE setClickMessage )
+#endif
     Q_PROPERTY( bool showClearButton READ isClearButtonShown WRITE setClearButtonShown )
     Q_PROPERTY( bool passwordMode READ passwordMode WRITE setPasswordMode )
 
@@ -336,13 +338,19 @@ public:
      * This makes the line edit display a grayed-out hinting text as long as
      * the user didn't enter any text. It is often used as indication about
      * the purpose of the line edit.
+     * @deprecated Use QLineEdit::setPlaceholderText instead.
      */
-    void setClickMessage( const QString &msg );
+#ifndef KDE_NO_DEPRECATED
+    void KDEUI_DEPRECATED setClickMessage( const QString &msg );
+#endif
 
     /**
+     * @deprecated Use QLineEdit::placeholderText instead.
      * @return the message set with setClickMessage
      */
-    QString clickMessage() const;
+#ifndef KDE_NO_DEPRECATED
+    QString KDEUI_DEPRECATED clickMessage() const;
+#endif
 
     /**
      * This makes the line edit display an icon on one side of the line edit
@@ -628,9 +636,15 @@ protected:
 
     virtual void paintEvent( QPaintEvent *ev );
 
+//Required only by clickMessage code
+#ifndef KDE_NO_DEPRECATED
     virtual void focusInEvent( QFocusEvent *ev );
+#endif KDE_NO_DEPRECATED
 
+//Required only by clickMessage code
+#ifndef KDE_NO_DEPRECATED
     virtual void focusOutEvent( QFocusEvent *ev );
+#endif
 
 private Q_SLOTS:
     void completionMenuActivated( QAction *act );
-- 
1.7.7

>From ae0f35ab5d1ae72d18df658e36fc73f0c465b8c0 Mon Sep 17 00:00:00 2001
From: Benjamin Port <port.benja...@gmail.com>
Date: Sat, 28 Apr 2012 20:48:56 +0200
Subject: [PATCH 2/3] Deprecate KUrlRequester::clickMessage in order to have a
 consistant API with KLineEdit

---
 kio/kfile/kurlrequester.cpp |   18 ++++++++++++++++--
 kio/kfile/kurlrequester.h   |   27 +++++++++++++++++++++++++--
 2 files changed, 41 insertions(+), 4 deletions(-)

diff --git a/kio/kfile/kurlrequester.cpp b/kio/kfile/kurlrequester.cpp
index d171156..365b8d0 100644
--- a/kio/kfile/kurlrequester.cpp
+++ b/kio/kfile/kurlrequester.cpp
@@ -483,16 +483,30 @@ KUrlCompletion *KUrlRequester::completionObject() const
     return d->myCompletion;
 }
 
+#ifndef KDE_NO_DEPRECATED
 void KUrlRequester::setClickMessage(const QString& msg)
 {
+    setPlaceholderText(msg);
+}
+#endif
+
+void KUrlRequester::setPlaceholderText(const QString& msg)
+{
     if(d->edit)
-        d->edit->setClickMessage(msg);
+        d->edit->setPlaceholderText(msg);
 }
 
+#ifndef KDE_NO_DEPRECATED
 QString KUrlRequester::clickMessage() const
 {
+    return placeholderText();
+}
+#endif
+
+QString KUrlRequester::placeholderText() const
+{
     if(d->edit)
-        return d->edit->clickMessage();
+        return d->edit->placeholderText();
     else
         return QString();
 }
diff --git a/kio/kfile/kurlrequester.h b/kio/kfile/kurlrequester.h
index 836a38d..3fbe9d8 100644
--- a/kio/kfile/kurlrequester.h
+++ b/kio/kfile/kurlrequester.h
@@ -63,7 +63,10 @@ class KIO_EXPORT KUrlRequester : public KHBox
     Q_PROPERTY( QUrl url READ url WRITE setUrl NOTIFY textChanged USER true )
     Q_PROPERTY( QString filter READ filter WRITE setFilter )
     Q_PROPERTY( KFile::Modes mode READ mode WRITE setMode )
+    #ifndef KDE_NO_DEPRECATED
     Q_PROPERTY( QString clickMessage READ clickMessage WRITE setClickMessage )
+    #endif
+    Q_PROPERTY( QString placeholderText READ placeholderText WRITE setPlaceholderText )
     Q_PROPERTY(QString text READ text WRITE setText)
     Q_PROPERTY( Qt::WindowModality fileDialogModality READ fileDialogModality WRITE setFileDialogModality )
 
@@ -196,14 +199,34 @@ public:
     /**
      * @returns the message set with setClickMessage
      * @since 4.2
+     * @deprecated use KUrlRequester::placeholderText instead.
      */
-    QString clickMessage() const;
+#ifndef KDE_NO_DEPRECATED
+    QString KDEUI_DEPRECATED clickMessage() const;
+#endif
 
     /**
      * Set a click message @p msg
      * @since 4.2
+     * @deprecated use KUrlRequester::setPlaceholderText instead.
      */
-    void setClickMessage(const QString& msg);
+#ifndef KDE_NO_DEPRECATED
+    void KDEUI_DEPRECATED setClickMessage(const QString& msg);
+#endif
+
+    /**
+     * @return the message set with setPlaceholderText
+     * @since 5.0
+    */
+    QString placeholderText() const;
+
+    /**
+     * This makes the KUrlRequester line edit display a grayed-out hinting text as long as
+     * the user didn't enter any text. It is often used as indication about
+     * the purpose of the line edit.
+     * @since 5.0
+    */
+    void setPlaceholderText(const QString& msg);
 
     /**
      * @returns the window modality of the file dialog set with setFileDialogModality
-- 
1.7.7

>From 0845af340cc9359f48ac1b0e59ef30c453b7d585 Mon Sep 17 00:00:00 2001
From: Benjamin Port <port.benja...@gmail.com>
Date: Sat, 28 Apr 2012 20:57:38 +0200
Subject: [PATCH 3/3] Deprecate LineEdit::clickMessage in order to have a
 consistant API with KLineEdit

---
 plasma/widgets/lineedit.cpp |   18 ++++++++++++++++--
 plasma/widgets/lineedit.h   |   27 +++++++++++++++++++++++++--
 2 files changed, 41 insertions(+), 4 deletions(-)

diff --git a/plasma/widgets/lineedit.cpp b/plasma/widgets/lineedit.cpp
index 3907831..9f8b9cb 100644
--- a/plasma/widgets/lineedit.cpp
+++ b/plasma/widgets/lineedit.cpp
@@ -99,14 +99,28 @@ bool LineEdit::isClearButtonShown() const
     return nativeWidget()->isClearButtonShown();
 }
 
+#ifndef KDE_NO_DEPRECATED
 void LineEdit::setClickMessage(const QString &message)
 {
-    nativeWidget()->setClickMessage(message);
+    setPlaceholderText(message);
+}
+#endif
+
+void LineEdit::setPlaceholderText(const QString &message)
+{
+    nativeWidget()->setPlaceholderText(message);
 }
 
+#ifndef KDE_NO_DEPRECATED
 QString LineEdit::clickMessage() const
 {
-    return nativeWidget()->clickMessage();
+    return placeholderText();
+}
+#endif
+
+QString LineEdit::placeholderText() const
+{
+    return nativeWidget()->placeholderText();
 }
 
 void LineEdit::setStyleSheet(const QString &stylesheet)
diff --git a/plasma/widgets/lineedit.h b/plasma/widgets/lineedit.h
index 74314e6..43d3a39 100644
--- a/plasma/widgets/lineedit.h
+++ b/plasma/widgets/lineedit.h
@@ -43,7 +43,10 @@ class PLASMA_EXPORT LineEdit : public QGraphicsProxyWidget
     Q_PROPERTY(QGraphicsWidget *parentWidget READ parentWidget)
     Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged)
     Q_PROPERTY(bool clearButtonShown READ isClearButtonShown WRITE setClearButtonShown)
+#ifndef KDE_NO_DEPRECATED
     Q_PROPERTY(QString clickMessage READ clickMessage WRITE setClickMessage)
+#endif
+    Q_PROPERTY(QString placeholderText READ placeholderText WRITE setPlaceholderText)
     Q_PROPERTY(QString styleSheet READ styleSheet WRITE setStyleSheet)
     Q_PROPERTY(KLineEdit *nativeWidget READ nativeWidget WRITE setNativeWidget)
 
@@ -80,14 +83,34 @@ public:
      *
      * @param message the message
      * @since 4.5
+     * @deprecated use LineEdit::setPlaceholderText instead
      */
-    void setClickMessage(const QString &message);
+#ifndef KDE_NO_DEPRECATED
+    void KDE_DEPRECATED setClickMessage(const QString &message);
+#endif
 
     /**
      * @return the text of a greyed out message that will go away when clicked
      * @since 4.5
+     * @deprecated use LineEdit::placeholderText instead
      */
-    QString clickMessage() const;
+#ifndef KDE_NO_DEPRECATED
+    QString KDE_DEPRECATED clickMessage() const;
+#endif
+
+    /**
+     * @return the message set with setPlaceholderText
+     * @since 5.0
+     */
+    QString placeholderText() const;
+
+    /**
+     * This makes the KUrlRequester line edit display a grayed-out hinting text as long as
+     * the user didn't enter any text. It is often used as indication about
+     * the purpose of the line edit.
+     * @since 5.0
+     */
+    void setPlaceholderText(const QString &message);
 
     /**
      * Sets the stylesheet used to control the visual display of this LineEdit
-- 
1.7.7

_______________________________________________
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel

Reply via email to