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