-rw-r--r-- | libopie2/qt3/opieui/ocombobox.h | 4 | ||||
-rw-r--r-- | libopie2/qt3/opieui/olineedit.h | 6 |
2 files changed, 5 insertions, 5 deletions
diff --git a/libopie2/qt3/opieui/ocombobox.h b/libopie2/qt3/opieui/ocombobox.h index 4e35b61..3f60f54 100644 --- a/libopie2/qt3/opieui/ocombobox.h +++ b/libopie2/qt3/opieui/ocombobox.h | |||
@@ -1,484 +1,484 @@ | |||
1 | /* | 1 | /* |
2 | This file Copyright (C) 2003 Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de> | 2 | This file Copyright (C) 2003 Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de> |
3 | is part of the Copyright (C) 2000 Carsten Pfeiffer <pfeiffer@kde.org> | 3 | is part of the Copyright (C) 2000 Carsten Pfeiffer <pfeiffer@kde.org> |
4 | Opie Project Copyright (C) 2000 Dawit Alemayehu <adawit@kde.org> | 4 | Opie Project Copyright (C) 2000 Dawit Alemayehu <adawit@kde.org> |
5 | 5 | ||
6 | =. Originally part of the KDE projects | 6 | =. Originally part of the KDE projects |
7 | .=l. | 7 | .=l. |
8 | .>+-= | 8 | .>+-= |
9 | _;:, .> :=|. This program is free software; you can | 9 | _;:, .> :=|. This program is free software; you can |
10 | .> <`_, > . <= redistribute it and/or modify it under | 10 | .> <`_, > . <= redistribute it and/or modify it under |
11 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public | 11 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public |
12 | .="- .-=="i, .._ License as published by the Free Software | 12 | .="- .-=="i, .._ License as published by the Free Software |
13 | - . .-<_> .<> Foundation; either version 2 of the License, | 13 | - . .-<_> .<> Foundation; either version 2 of the License, |
14 | ._= =} : or (at your option) any later version. | 14 | ._= =} : or (at your option) any later version. |
15 | .%`+i> _;_. | 15 | .%`+i> _;_. |
16 | .i_,=:_. -<s. This program is distributed in the hope that | 16 | .i_,=:_. -<s. This program is distributed in the hope that |
17 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 17 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
18 | : .. .:, . . . without even the implied warranty of | 18 | : .. .:, . . . without even the implied warranty of |
19 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 19 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
20 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU | 20 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU |
21 | ..}^=.= = ; Library General Public License for more | 21 | ..}^=.= = ; Library General Public License for more |
22 | ++= -. .` .: details. | 22 | ++= -. .` .: details. |
23 | : = ...= . :.=- | 23 | : = ...= . :.=- |
24 | -. .:....=;==+<; You should have received a copy of the GNU | 24 | -. .:....=;==+<; You should have received a copy of the GNU |
25 | -_. . . )=. = Library General Public License along with | 25 | -_. . . )=. = Library General Public License along with |
26 | -- :-=` this library; see the file COPYING.LIB. | 26 | -- :-=` this library; see the file COPYING.LIB. |
27 | If not, write to the Free Software Foundation, | 27 | If not, write to the Free Software Foundation, |
28 | Inc., 59 Temple Place - Suite 330, | 28 | Inc., 59 Temple Place - Suite 330, |
29 | Boston, MA 02111-1307, USA. | 29 | Boston, MA 02111-1307, USA. |
30 | 30 | ||
31 | */ | 31 | */ |
32 | 32 | ||
33 | #ifndef OCOMBOBOX_H | 33 | #ifndef OCOMBOBOX_H |
34 | #define OCOMBOBOX_H | 34 | #define OCOMBOBOX_H |
35 | 35 | ||
36 | /* QT */ | 36 | /* QT */ |
37 | 37 | ||
38 | #include <qcombobox.h> | 38 | #include <qcombobox.h> |
39 | 39 | ||
40 | /* OPIE */ | 40 | /* OPIE */ |
41 | 41 | ||
42 | #include <opie2/olineedit.h> | 42 | #include <opie2/olineedit.h> |
43 | #include <opie2/ocompletion.h> | 43 | #include <opie2/ocompletion.h> |
44 | #include <opie2/ocompletionbase.h> | 44 | #include <opie2/ocompletionbase.h> |
45 | 45 | ||
46 | /* FORWARDS */ | 46 | /* FORWARDS */ |
47 | 47 | ||
48 | class QListBoxItem; | 48 | class QListBoxItem; |
49 | class QPopupMenu; | 49 | class QPopupMenu; |
50 | class OCompletionBox; | 50 | class OCompletionBox; |
51 | typedef QString OURL; | 51 | typedef QString OURL; |
52 | 52 | ||
53 | /** | 53 | /** |
54 | * A combined button, line-edit and a popup list widget. | 54 | * A combined button, line-edit and a popup list widget. |
55 | * | 55 | * |
56 | * @sect Detail | 56 | * @par Detail |
57 | * | 57 | * |
58 | * This widget inherits from @ref QComboBox and implements | 58 | * This widget inherits from @ref QComboBox and implements |
59 | * the following additional functionalities: a completion | 59 | * the following additional functionalities: a completion |
60 | * object that provides both automatic and manual text | 60 | * object that provides both automatic and manual text |
61 | * completion as well as text rotation features, configurable | 61 | * completion as well as text rotation features, configurable |
62 | * key-bindings to activate these features, and a popup-menu | 62 | * key-bindings to activate these features, and a popup-menu |
63 | * item that can be used to allow the user to set text completion | 63 | * item that can be used to allow the user to set text completion |
64 | * modes on the fly based on their preference. | 64 | * modes on the fly based on their preference. |
65 | * | 65 | * |
66 | * To support these new features OComboBox also emits a few | 66 | * To support these new features OComboBox also emits a few |
67 | * more additional signals as well. The main ones are the | 67 | * more additional signals as well. The main ones are the |
68 | * @ref completion( const QString& ) and @ref textRotation( KeyBindingType ) | 68 | * @ref completion( const QString& ) and @ref textRotation( KeyBindingType ) |
69 | * signals. The completion signal is intended to be connected to a slot | 69 | * signals. The completion signal is intended to be connected to a slot |
70 | * that will assist the user in filling out the remaining text while | 70 | * that will assist the user in filling out the remaining text while |
71 | * the rotation signals is intended to be used to traverse through all | 71 | * the rotation signals is intended to be used to traverse through all |
72 | * possible matches whenever text completion results in multiple matches. | 72 | * possible matches whenever text completion results in multiple matches. |
73 | * The @ref returnPressed() and @ref returnPressed( const QString& ) | 73 | * The @ref returnPressed() and @ref returnPressed( const QString& ) |
74 | * signal is emitted when the user presses the Enter/Return key. | 74 | * signal is emitted when the user presses the Enter/Return key. |
75 | * | 75 | * |
76 | * This widget by default creates a completion object when you invoke | 76 | * This widget by default creates a completion object when you invoke |
77 | * the @ref completionObject( bool ) member function for the first time | 77 | * the @ref completionObject( bool ) member function for the first time |
78 | * or use @ref setCompletionObject( OCompletion*, bool ) to assign your | 78 | * or use @ref setCompletionObject( OCompletion*, bool ) to assign your |
79 | * own completion object. Additionally, to make this widget more functional, | 79 | * own completion object. Additionally, to make this widget more functional, |
80 | * OComboBox will by default handle the text rotation and completion | 80 | * OComboBox will by default handle the text rotation and completion |
81 | * events internally whenever a completion object is created through either | 81 | * events internally whenever a completion object is created through either |
82 | * one of the methods mentioned above. If you do not need this functionality, | 82 | * one of the methods mentioned above. If you do not need this functionality, |
83 | * simply use @ref OCompletionBase::setHandleSignals( bool ) or alternatively | 83 | * simply use @ref OCompletionBase::setHandleSignals( bool ) or alternatively |
84 | * set the boolean parameter in the above methods to FALSE. | 84 | * set the boolean parameter in the above methods to FALSE. |
85 | * | 85 | * |
86 | * The default key-bindings for completion and rotation is determined | 86 | * The default key-bindings for completion and rotation is determined |
87 | * from the global settings in @ref OStdAccel. These values, however, | 87 | * from the global settings in @ref OStdAccel. These values, however, |
88 | * can be overriden locally by invoking @ref OCompletionBase::setKeyBinding(). | 88 | * can be overriden locally by invoking @ref OCompletionBase::setKeyBinding(). |
89 | * The values can easily be reverted back to the default setting, by simply | 89 | * The values can easily be reverted back to the default setting, by simply |
90 | * calling @ref useGlobalSettings(). An alternate method would be to default | 90 | * calling @ref useGlobalSettings(). An alternate method would be to default |
91 | * individual key-bindings by usning @ref setKeyBinding() with the default | 91 | * individual key-bindings by usning @ref setKeyBinding() with the default |
92 | * second argument. | 92 | * second argument. |
93 | * | 93 | * |
94 | * Note that if this widget is not editable ( i.e. select-only ), then only | 94 | * Note that if this widget is not editable ( i.e. select-only ), then only |
95 | * one completion mode, @p CompletionAuto, will work. All the other modes are | 95 | * one completion mode, @p CompletionAuto, will work. All the other modes are |
96 | * simply ignored. The @p CompletionAuto mode in this case allows you to | 96 | * simply ignored. The @p CompletionAuto mode in this case allows you to |
97 | * automatically select an item from the list by trying to match the pressed | 97 | * automatically select an item from the list by trying to match the pressed |
98 | * keycode with the first letter of the enteries in the combo box. | 98 | * keycode with the first letter of the enteries in the combo box. |
99 | * | 99 | * |
100 | * @sect Useage | 100 | * @par Usage |
101 | * | 101 | * |
102 | * To enable the basic completion feature: | 102 | * To enable the basic completion feature: |
103 | * | 103 | * |
104 | * <pre> | 104 | * <pre> |
105 | * OComboBox *combo = new OComboBox( true, this, "mywidget" ); | 105 | * OComboBox *combo = new OComboBox( true, this, "mywidget" ); |
106 | * OCompletion *comp = combo->completionObject(); | 106 | * OCompletion *comp = combo->completionObject(); |
107 | * // Connect to the return pressed signal - optional | 107 | * // Connect to the return pressed signal - optional |
108 | * connect(combo,SIGNAL(returnPressed(const QString&)),comp,SLOT(addItem(const QString&)); | 108 | * connect(combo,SIGNAL(returnPressed(const QString&)),comp,SLOT(addItem(const QString&)); |
109 | * </pre> | 109 | * </pre> |
110 | * | 110 | * |
111 | * To use your own completion object: | 111 | * To use your own completion object: |
112 | * | 112 | * |
113 | * <pre> | 113 | * <pre> |
114 | * OComboBox *combo = new OComboBox( this,"mywidget" ); | 114 | * OComboBox *combo = new OComboBox( this,"mywidget" ); |
115 | * OURLCompletion *comp = new OURLCompletion(); | 115 | * OURLCompletion *comp = new OURLCompletion(); |
116 | * combo->setCompletionObject( comp ); | 116 | * combo->setCompletionObject( comp ); |
117 | * // Connect to the return pressed signal - optional | 117 | * // Connect to the return pressed signal - optional |
118 | * connect(combo,SIGNAL(returnPressed(const QString&)),comp,SLOT(addItem(const QString&)); | 118 | * connect(combo,SIGNAL(returnPressed(const QString&)),comp,SLOT(addItem(const QString&)); |
119 | * </pre> | 119 | * </pre> |
120 | * | 120 | * |
121 | * Note that you have to either delete the allocated completion object | 121 | * Note that you have to either delete the allocated completion object |
122 | * when you don't need it anymore, or call | 122 | * when you don't need it anymore, or call |
123 | * setAutoDeleteCompletionObject( true ); | 123 | * setAutoDeleteCompletionObject( true ); |
124 | * | 124 | * |
125 | * Miscellaneous function calls: | 125 | * Miscellaneous function calls: |
126 | * | 126 | * |
127 | * <pre> | 127 | * <pre> |
128 | * // Tell the widget not to handle completion and rotation | 128 | * // Tell the widget not to handle completion and rotation |
129 | * combo->setHandleSignals( false ); | 129 | * combo->setHandleSignals( false ); |
130 | * // Set your own completion key for manual completions. | 130 | * // Set your own completion key for manual completions. |
131 | * combo->setKeyBinding( OCompletionBase::TextCompletion, Qt::End ); | 131 | * combo->setKeyBinding( OCompletionBase::TextCompletion, Qt::End ); |
132 | * // Hide the context (popup) menu | 132 | * // Hide the context (popup) menu |
133 | * combo->setContextMenuEnabled( false ); | 133 | * combo->setContextMenuEnabled( false ); |
134 | * // Temporarly disable signal emition | 134 | * // Temporarly disable signal emition |
135 | * combo->disableSignals(); | 135 | * combo->disableSignals(); |
136 | * // Default the all key-bindings to their system-wide settings. | 136 | * // Default the all key-bindings to their system-wide settings. |
137 | * combo->useGlobalKeyBindings(); | 137 | * combo->useGlobalKeyBindings(); |
138 | * </pre> | 138 | * </pre> |
139 | * | 139 | * |
140 | * @short An enhanced combo box. | 140 | * @short An enhanced combo box. |
141 | * @author Dawit Alemayehu <adawit@kde.org> | 141 | * @author Dawit Alemayehu <adawit@kde.org> |
142 | */ | 142 | */ |
143 | class OComboBox : public QComboBox, public OCompletionBase | 143 | class OComboBox : public QComboBox, public OCompletionBase |
144 | { | 144 | { |
145 | Q_OBJECT | 145 | Q_OBJECT |
146 | 146 | ||
147 | //Q_PROPERTY( bool autoCompletion READ autoCompletion WRITE setAutoCompletion ) | 147 | //Q_PROPERTY( bool autoCompletion READ autoCompletion WRITE setAutoCompletion ) |
148 | //Q_PROPERTY( bool contextMenuEnabled READ isContextMenuEnabled WRITE setContextMenuEnabled ) | 148 | //Q_PROPERTY( bool contextMenuEnabled READ isContextMenuEnabled WRITE setContextMenuEnabled ) |
149 | //Q_PROPERTY( bool urlDropsEnabled READ isURLDropsEnabled WRITE setURLDropsEnabled ) | 149 | //Q_PROPERTY( bool urlDropsEnabled READ isURLDropsEnabled WRITE setURLDropsEnabled ) |
150 | 150 | ||
151 | public: | 151 | public: |
152 | 152 | ||
153 | /** | 153 | /** |
154 | * Constructs a read-only or rather select-only combo box with a | 154 | * Constructs a read-only or rather select-only combo box with a |
155 | * parent object and a name. | 155 | * parent object and a name. |
156 | * | 156 | * |
157 | * @param parent The parent object of this widget | 157 | * @param parent The parent object of this widget |
158 | * @param name The name of this widget | 158 | * @param name The name of this widget |
159 | */ | 159 | */ |
160 | OComboBox( QWidget *parent=0, const char *name=0 ); | 160 | OComboBox( QWidget *parent=0, const char *name=0 ); |
161 | 161 | ||
162 | /** | 162 | /** |
163 | * Constructs a "read-write" or "read-only" combo box depending on | 163 | * Constructs a "read-write" or "read-only" combo box depending on |
164 | * the value of the first argument( @p rw ) with a parent, a | 164 | * the value of the first argument( @p rw ) with a parent, a |
165 | * name. | 165 | * name. |
166 | * | 166 | * |
167 | * @param rw When @p true, widget will be editable. | 167 | * @param rw When @p true, widget will be editable. |
168 | * @param parent The parent object of this widget. | 168 | * @param parent The parent object of this widget. |
169 | * @param name The name of this widget. | 169 | * @param name The name of this widget. |
170 | */ | 170 | */ |
171 | OComboBox( bool rw, QWidget *parent=0, const char *name=0 ); | 171 | OComboBox( bool rw, QWidget *parent=0, const char *name=0 ); |
172 | 172 | ||
173 | /** | 173 | /** |
174 | * Destructor. | 174 | * Destructor. |
175 | */ | 175 | */ |
176 | virtual ~OComboBox(); | 176 | virtual ~OComboBox(); |
177 | 177 | ||
178 | /** | 178 | /** |
179 | * Sets @p url into the edit field of the combobox. It uses | 179 | * Sets @p url into the edit field of the combobox. It uses |
180 | * @ref OURL::prettyURL() so that the url is properly decoded for | 180 | * @ref OURL::prettyURL() so that the url is properly decoded for |
181 | * displaying. | 181 | * displaying. |
182 | */ | 182 | */ |
183 | //void setEditURL( const OURL& url ); | 183 | //void setEditURL( const OURL& url ); |
184 | 184 | ||
185 | /** | 185 | /** |
186 | * Inserts @p url at position @p index into the combobox. The item will | 186 | * Inserts @p url at position @p index into the combobox. The item will |
187 | * be appended if @p index is negative. @ref OURL::prettyURL() is used | 187 | * be appended if @p index is negative. @ref OURL::prettyURL() is used |
188 | * so that the url is properly decoded for displaying. | 188 | * so that the url is properly decoded for displaying. |
189 | */ | 189 | */ |
190 | //void insertURL( const OURL& url, int index = -1 ); | 190 | //void insertURL( const OURL& url, int index = -1 ); |
191 | 191 | ||
192 | /** | 192 | /** |
193 | * Inserts @p url with the pixmap &p pixmap at position @p index into | 193 | * Inserts @p url with the pixmap &p pixmap at position @p index into |
194 | * the combobox. The item will be appended if @p index is negative. | 194 | * the combobox. The item will be appended if @p index is negative. |
195 | * @ref OURL::prettyURL() is used so that the url is properly decoded | 195 | * @ref OURL::prettyURL() is used so that the url is properly decoded |
196 | * for displaying. | 196 | * for displaying. |
197 | */ | 197 | */ |
198 | //void insertURL( const QPixmap& pixmap, const OURL& url, int index = -1 ); | 198 | //void insertURL( const QPixmap& pixmap, const OURL& url, int index = -1 ); |
199 | 199 | ||
200 | /** | 200 | /** |
201 | * Replaces the item at position @p index with @p url. | 201 | * Replaces the item at position @p index with @p url. |
202 | * @ref OURL::prettyURL() is used so that the url is properly decoded | 202 | * @ref OURL::prettyURL() is used so that the url is properly decoded |
203 | * for displaying. | 203 | * for displaying. |
204 | */ | 204 | */ |
205 | //void changeURL( const OURL& url, int index ); | 205 | //void changeURL( const OURL& url, int index ); |
206 | 206 | ||
207 | /** | 207 | /** |
208 | * Replaces the item at position @p index with @p url and pixmap @p pixmap. | 208 | * Replaces the item at position @p index with @p url and pixmap @p pixmap. |
209 | * @ref OURL::prettyURL() is used so that the url is properly decoded | 209 | * @ref OURL::prettyURL() is used so that the url is properly decoded |
210 | * for displaying. | 210 | * for displaying. |
211 | */ | 211 | */ |
212 | //void changeURL( const QPixmap& pixmap, const OURL& url, int index ); | 212 | //void changeURL( const QPixmap& pixmap, const OURL& url, int index ); |
213 | 213 | ||
214 | /** | 214 | /** |
215 | * Returns the current cursor position. | 215 | * Returns the current cursor position. |
216 | * | 216 | * |
217 | * This method always returns a -1 if the combo-box is @em not | 217 | * This method always returns a -1 if the combo-box is @em not |
218 | * editable (read-write). | 218 | * editable (read-write). |
219 | * | 219 | * |
220 | * @return Current cursor position. | 220 | * @return Current cursor position. |
221 | */ | 221 | */ |
222 | int cursorPosition() const { return ( lineEdit() ) ? lineEdit()->cursorPosition() : -1; } | 222 | int cursorPosition() const { return ( lineEdit() ) ? lineEdit()->cursorPosition() : -1; } |
223 | 223 | ||
224 | /** | 224 | /** |
225 | * Re-implemented from @ref QComboBox. | 225 | * Re-implemented from @ref QComboBox. |
226 | * | 226 | * |
227 | * If @p true, the completion mode will be set to automatic. | 227 | * If @p true, the completion mode will be set to automatic. |
228 | * Otherwise, it is defaulted to the global setting. This | 228 | * Otherwise, it is defaulted to the global setting. This |
229 | * method has been replaced by the more comprehensive | 229 | * method has been replaced by the more comprehensive |
230 | * @ref setCompletionMode(). | 230 | * @ref setCompletionMode(). |
231 | * | 231 | * |
232 | * @param autocomplete Flag to enable/disable automatic completion mode. | 232 | * @param autocomplete Flag to enable/disable automatic completion mode. |
233 | */ | 233 | */ |
234 | virtual void setAutoCompletion( bool autocomplete ); | 234 | virtual void setAutoCompletion( bool autocomplete ); |
235 | 235 | ||
236 | /** | 236 | /** |
237 | * Re-implemented from QComboBox. | 237 | * Re-implemented from QComboBox. |
238 | * | 238 | * |
239 | * Returns @p true if the current completion mode is set | 239 | * Returns @p true if the current completion mode is set |
240 | * to automatic. See its more comprehensive replacement | 240 | * to automatic. See its more comprehensive replacement |
241 | * @ref completionMode(). | 241 | * @ref completionMode(). |
242 | * | 242 | * |
243 | * @return @p true when completion mode is automatic. | 243 | * @return @p true when completion mode is automatic. |
244 | */ | 244 | */ |
245 | bool autoCompletion() const { | 245 | bool autoCompletion() const { |
246 | return completionMode() == OGlobalSettings::CompletionAuto; | 246 | return completionMode() == OGlobalSettings::CompletionAuto; |
247 | } | 247 | } |
248 | 248 | ||
249 | /** | 249 | /** |
250 | * Enables or disable the popup (context) menu. | 250 | * Enables or disable the popup (context) menu. |
251 | * | 251 | * |
252 | * This method only works if this widget is editable, i.e. | 252 | * This method only works if this widget is editable, i.e. |
253 | * read-write and allows you to enable/disable the context | 253 | * read-write and allows you to enable/disable the context |
254 | * menu. It does nothing if invoked for a none-editable | 254 | * menu. It does nothing if invoked for a none-editable |
255 | * combo-box. Note that by default the mode changer item | 255 | * combo-box. Note that by default the mode changer item |
256 | * is made visiable whenever the context menu is enabled. | 256 | * is made visiable whenever the context menu is enabled. |
257 | * Use @ref hideModechanger() if you want to hide this | 257 | * Use @ref hideModechanger() if you want to hide this |
258 | * item. Also by default, the context menu is created if | 258 | * item. Also by default, the context menu is created if |
259 | * this widget is editable. Call this function with the | 259 | * this widget is editable. Call this function with the |
260 | * argument set to false to disable the popup menu. | 260 | * argument set to false to disable the popup menu. |
261 | * | 261 | * |
262 | * @param showMenu If @p true, show the context menu. | 262 | * @param showMenu If @p true, show the context menu. |
263 | * @param showMode If @p true, show the mode changer. | 263 | * @param showMode If @p true, show the mode changer. |
264 | */ | 264 | */ |
265 | virtual void setContextMenuEnabled( bool showMenu ); | 265 | virtual void setContextMenuEnabled( bool showMenu ); |
266 | 266 | ||
267 | /** | 267 | /** |
268 | * Returns @p true when the context menu is enabled. | 268 | * Returns @p true when the context menu is enabled. |
269 | */ | 269 | */ |
270 | bool isContextMenuEnabled() const { return m_bEnableMenu; } | 270 | bool isContextMenuEnabled() const { return m_bEnableMenu; } |
271 | 271 | ||
272 | /** | 272 | /** |
273 | * Enables/Disables handling of URL drops. If enabled and the user | 273 | * Enables/Disables handling of URL drops. If enabled and the user |
274 | * drops an URL, the decoded URL will be inserted. Otherwise the default | 274 | * drops an URL, the decoded URL will be inserted. Otherwise the default |
275 | * behaviour of QComboBox is used, which inserts the encoded URL. | 275 | * behaviour of QComboBox is used, which inserts the encoded URL. |
276 | * | 276 | * |
277 | * @param enable If @p true, insert decoded URLs | 277 | * @param enable If @p true, insert decoded URLs |
278 | */ | 278 | */ |
279 | //void setURLDropsEnabled( bool enable ); | 279 | //void setURLDropsEnabled( bool enable ); |
280 | 280 | ||
281 | /** | 281 | /** |
282 | * Returns @p true when decoded URL drops are enabled | 282 | * Returns @p true when decoded URL drops are enabled |
283 | */ | 283 | */ |
284 | //bool isURLDropsEnabled() const; | 284 | //bool isURLDropsEnabled() const; |
285 | 285 | ||
286 | /** | 286 | /** |
287 | * Convenience method which iterates over all items and checks if | 287 | * Convenience method which iterates over all items and checks if |
288 | * any of them is equal to @p text. | 288 | * any of them is equal to @p text. |
289 | * | 289 | * |
290 | * If @p text is an empty string, @p false | 290 | * If @p text is an empty string, @p false |
291 | * is returned. | 291 | * is returned. |
292 | * | 292 | * |
293 | * @return @p true if an item with the string @p text is in the combobox. | 293 | * @return @p true if an item with the string @p text is in the combobox. |
294 | */ | 294 | */ |
295 | bool contains( const QString& text ) const; | 295 | bool contains( const QString& text ) const; |
296 | 296 | ||
297 | /** | 297 | /** |
298 | * By default, OComboBox recognizes Key_Return and Key_Enter | 298 | * By default, OComboBox recognizes Key_Return and Key_Enter |
299 | * and emits | 299 | * and emits |
300 | * the @ref returnPressed() signals, but it also lets the event pass, | 300 | * the @ref returnPressed() signals, but it also lets the event pass, |
301 | * for example causing a dialog's default-button to be called. | 301 | * for example causing a dialog's default-button to be called. |
302 | * | 302 | * |
303 | * Call this method with @p trap equal to true to make OComboBox | 303 | * Call this method with @p trap equal to true to make OComboBox |
304 | * stop these | 304 | * stop these |
305 | * events. The signals will still be emitted of course. | 305 | * events. The signals will still be emitted of course. |
306 | * | 306 | * |
307 | * Only affects read-writable comboboxes. | 307 | * Only affects read-writable comboboxes. |
308 | * | 308 | * |
309 | * @see setTrapReturnKey() | 309 | * @see setTrapReturnKey() |
310 | */ | 310 | */ |
311 | void setTrapReturnKey( bool trap ); | 311 | void setTrapReturnKey( bool trap ); |
312 | 312 | ||
313 | /** | 313 | /** |
314 | * @return @p true if keyevents of Key_Return or Key_Enter will | 314 | * @return @p true if keyevents of Key_Return or Key_Enter will |
315 | * be stopped or if they will be propagated. | 315 | * be stopped or if they will be propagated. |
316 | * | 316 | * |
317 | * @see setTrapReturnKey () | 317 | * @see setTrapReturnKey () |
318 | */ | 318 | */ |
319 | bool trapReturnKey() const; | 319 | bool trapReturnKey() const; |
320 | 320 | ||
321 | /** | 321 | /** |
322 | * Re-implemented for internal reasons. API not affected. | 322 | * Re-implemented for internal reasons. API not affected. |
323 | * | 323 | * |
324 | * @reimplemented | 324 | * @reimplemented |
325 | */ | 325 | */ |
326 | virtual bool eventFilter( QObject *, QEvent * ); | 326 | virtual bool eventFilter( QObject *, QEvent * ); |
327 | 327 | ||
328 | /** | 328 | /** |
329 | * @returns the completion-box, that is used in completion mode | 329 | * @returns the completion-box, that is used in completion mode |
330 | * @ref OGlobalSettings::CompletionPopup and @ref OGlobalSettings::CompletionPopupAuto. | 330 | * @ref OGlobalSettings::CompletionPopup and @ref OGlobalSettings::CompletionPopupAuto. |
331 | * This method will create a completion-box by calling | 331 | * This method will create a completion-box by calling |
332 | * @ref OLineEdit::completionBox, if none is there, yet. | 332 | * @ref OLineEdit::completionBox, if none is there, yet. |
333 | * | 333 | * |
334 | * @param create Set this to false if you don't want the box to be created | 334 | * @param create Set this to false if you don't want the box to be created |
335 | * i.e. to test if it is available. | 335 | * i.e. to test if it is available. |
336 | */ | 336 | */ |
337 | OCompletionBox * completionBox( bool create = true ); | 337 | OCompletionBox * completionBox( bool create = true ); |
338 | 338 | ||
339 | virtual void setLineEdit( OLineEdit * ); | 339 | virtual void setLineEdit( OLineEdit * ); |
340 | 340 | ||
341 | signals: | 341 | signals: |
342 | /** | 342 | /** |
343 | * Emitted when the user presses the Enter key. | 343 | * Emitted when the user presses the Enter key. |
344 | * | 344 | * |
345 | * Note that this signal is only | 345 | * Note that this signal is only |
346 | * emitted if this widget is editable. | 346 | * emitted if this widget is editable. |
347 | */ | 347 | */ |
348 | void returnPressed(); | 348 | void returnPressed(); |
349 | 349 | ||
350 | /** | 350 | /** |
351 | * Emitted when the user presses | 351 | * Emitted when the user presses |
352 | * the Enter key. | 352 | * the Enter key. |
353 | * | 353 | * |
354 | * The argument is the current | 354 | * The argument is the current |
355 | * text being edited. This signal is just like | 355 | * text being edited. This signal is just like |
356 | * @ref returnPressed() except it contains the | 356 | * @ref returnPressed() except it contains the |
357 | * current text as its argument. | 357 | * current text as its argument. |
358 | * | 358 | * |
359 | * Note that this signal is only emitted if this | 359 | * Note that this signal is only emitted if this |
360 | * widget is editable. | 360 | * widget is editable. |
361 | */ | 361 | */ |
362 | void returnPressed( const QString& ); | 362 | void returnPressed( const QString& ); |
363 | 363 | ||
364 | /** | 364 | /** |
365 | * This signal is emitted when the completion key | 365 | * This signal is emitted when the completion key |
366 | * is pressed. | 366 | * is pressed. |
367 | * | 367 | * |
368 | * The argument is the current text | 368 | * The argument is the current text |
369 | * being edited. | 369 | * being edited. |
370 | * | 370 | * |
371 | * Note that this signal is @em not available if this | 371 | * Note that this signal is @em not available if this |
372 | * widget is non-editable or the completion mode is | 372 | * widget is non-editable or the completion mode is |
373 | * set to @p OGlobalSettings::CompletionNone. | 373 | * set to @p OGlobalSettings::CompletionNone. |
374 | */ | 374 | */ |
375 | void completion( const QString& ); | 375 | void completion( const QString& ); |
376 | 376 | ||
377 | /** | 377 | /** |
378 | * Emitted when the shortcut for substring completion is pressed. | 378 | * Emitted when the shortcut for substring completion is pressed. |
379 | */ | 379 | */ |
380 | void substringCompletion( const QString& ); | 380 | void substringCompletion( const QString& ); |
381 | 381 | ||
382 | /** | 382 | /** |
383 | * Emitted when the text rotation key-bindings are pressed. | 383 | * Emitted when the text rotation key-bindings are pressed. |
384 | * | 384 | * |
385 | * The argument indicates which key-binding was pressed. | 385 | * The argument indicates which key-binding was pressed. |
386 | * In this case this can be either one of four values: | 386 | * In this case this can be either one of four values: |
387 | * @p PrevCompletionMatch, @p NextCompletionMatch, @p RotateUp or | 387 | * @p PrevCompletionMatch, @p NextCompletionMatch, @p RotateUp or |
388 | * @p RotateDown. See @ref OCompletionBase::setKeyBinding() for | 388 | * @p RotateDown. See @ref OCompletionBase::setKeyBinding() for |
389 | * details. | 389 | * details. |
390 | * | 390 | * |
391 | * Note that this signal is @em NOT emitted if the completion | 391 | * Note that this signal is @em NOT emitted if the completion |
392 | * mode is set to CompletionNone. | 392 | * mode is set to CompletionNone. |
393 | */ | 393 | */ |
394 | void textRotation( OCompletionBase::KeyBindingType ); | 394 | void textRotation( OCompletionBase::KeyBindingType ); |
395 | 395 | ||
396 | /** | 396 | /** |
397 | * Emitted when the user changed the completion mode by using the | 397 | * Emitted when the user changed the completion mode by using the |
398 | * popupmenu. | 398 | * popupmenu. |
399 | */ | 399 | */ |
400 | void completionModeChanged( OGlobalSettings::Completion ); | 400 | void completionModeChanged( OGlobalSettings::Completion ); |
401 | 401 | ||
402 | /** | 402 | /** |
403 | * Emitted before the context menu is displayed. | 403 | * Emitted before the context menu is displayed. |
404 | * | 404 | * |
405 | * The signal allows you to add your own entries into the | 405 | * The signal allows you to add your own entries into the |
406 | * the context menu that is created on demand. | 406 | * the context menu that is created on demand. |
407 | * | 407 | * |
408 | * NOTE: Do not store the pointer to the QPopupMenu | 408 | * NOTE: Do not store the pointer to the QPopupMenu |
409 | * provided through since it is created and deleted | 409 | * provided through since it is created and deleted |
410 | * on demand. | 410 | * on demand. |
411 | * | 411 | * |
412 | * @param the context menu about to be displayed | 412 | * @param the context menu about to be displayed |
413 | */ | 413 | */ |
414 | void aboutToShowContextMenu( QPopupMenu * ); | 414 | void aboutToShowContextMenu( QPopupMenu * ); |
415 | 415 | ||
416 | public slots: | 416 | public slots: |
417 | 417 | ||
418 | /** | 418 | /** |
419 | * Iterates through all possible matches of the completed text | 419 | * Iterates through all possible matches of the completed text |
420 | * or the history list. | 420 | * or the history list. |
421 | * | 421 | * |
422 | * Depending on the value of the argument, this function either | 422 | * Depending on the value of the argument, this function either |
423 | * iterates through the history list of this widget or the all | 423 | * iterates through the history list of this widget or the all |
424 | * possible matches in whenever multiple matches result from a | 424 | * possible matches in whenever multiple matches result from a |
425 | * text completion request. Note that the all-possible-match | 425 | * text completion request. Note that the all-possible-match |
426 | * iteration will not work if there are no previous matches, i.e. | 426 | * iteration will not work if there are no previous matches, i.e. |
427 | * no text has been completed and the *nix shell history list | 427 | * no text has been completed and the *nix shell history list |
428 | * rotation is only available if the insertion policy for this | 428 | * rotation is only available if the insertion policy for this |
429 | * widget is set either @p QComobBox::AtTop or @p QComboBox::AtBottom. | 429 | * widget is set either @p QComobBox::AtTop or @p QComboBox::AtBottom. |
430 | * For other insertion modes whatever has been typed by the user | 430 | * For other insertion modes whatever has been typed by the user |
431 | * when the rotation event was initiated will be lost. | 431 | * when the rotation event was initiated will be lost. |
432 | * | 432 | * |
433 | * @param type The key-binding invoked. | 433 | * @param type The key-binding invoked. |
434 | */ | 434 | */ |
435 | void rotateText( OCompletionBase::KeyBindingType /* type */ ); | 435 | void rotateText( OCompletionBase::KeyBindingType /* type */ ); |
436 | 436 | ||
437 | /** | 437 | /** |
438 | * Sets the completed text in the line-edit appropriately. | 438 | * Sets the completed text in the line-edit appropriately. |
439 | * | 439 | * |
440 | * This function is an implementation for | 440 | * This function is an implementation for |
441 | * @ref OCompletionBase::setCompletedText. | 441 | * @ref OCompletionBase::setCompletedText. |
442 | */ | 442 | */ |
443 | virtual void setCompletedText( const QString& ); | 443 | virtual void setCompletedText( const QString& ); |
444 | 444 | ||
445 | /** | 445 | /** |
446 | * Sets @p items into the completion-box if @ref completionMode() is | 446 | * Sets @p items into the completion-box if @ref completionMode() is |
447 | * CompletionPopup. The popup will be shown immediately. | 447 | * CompletionPopup. The popup will be shown immediately. |
448 | */ | 448 | */ |
449 | void setCompletedItems( const QStringList& items ); | 449 | void setCompletedItems( const QStringList& items ); |
450 | 450 | ||
451 | public: | 451 | public: |
452 | /** | 452 | /** |
453 | * Selects the first item that matches @p item. If there is no such item, | 453 | * Selects the first item that matches @p item. If there is no such item, |
454 | * it is inserted at position @p index if @p insert is true. Otherwise, | 454 | * it is inserted at position @p index if @p insert is true. Otherwise, |
455 | * no item is selected. | 455 | * no item is selected. |
456 | */ | 456 | */ |
457 | void setCurrentItem( const QString& item, bool insert = false, int index = -1 ); | 457 | void setCurrentItem( const QString& item, bool insert = false, int index = -1 ); |
458 | void setCurrentItem(int index); | 458 | void setCurrentItem(int index); |
459 | 459 | ||
460 | protected slots: | 460 | protected slots: |
461 | 461 | ||
462 | /** | 462 | /** |
463 | * @deprecated. | 463 | * @deprecated. |
464 | */ | 464 | */ |
465 | virtual void itemSelected( QListBoxItem* ) {}; | 465 | virtual void itemSelected( QListBoxItem* ) {}; |
466 | 466 | ||
467 | /** | 467 | /** |
468 | * Completes text according to the completion mode. | 468 | * Completes text according to the completion mode. |
469 | * | 469 | * |
470 | * Note: this method is @p not invoked if the completion mode is | 470 | * Note: this method is @p not invoked if the completion mode is |
471 | * set to CompletionNone. Also if the mode is set to @p CompletionShell | 471 | * set to CompletionNone. Also if the mode is set to @p CompletionShell |
472 | * and multiple matches are found, this method will complete the | 472 | * and multiple matches are found, this method will complete the |
473 | * text to the first match with a beep to inidicate that there are | 473 | * text to the first match with a beep to inidicate that there are |
474 | * more matches. Then any successive completion key event iterates | 474 | * more matches. Then any successive completion key event iterates |
475 | * through the remaining matches. This way the rotation functionality | 475 | * through the remaining matches. This way the rotation functionality |
476 | * is left to iterate through the list as usual. | 476 | * is left to iterate through the list as usual. |
477 | */ | 477 | */ |
478 | virtual void makeCompletion( const QString& ); | 478 | virtual void makeCompletion( const QString& ); |
479 | 479 | ||
480 | protected: | 480 | protected: |
481 | /* | 481 | /* |
482 | * This function simply sets the lineedit text and | 482 | * This function simply sets the lineedit text and |
483 | * highlights the text appropriately if the boolean | 483 | * highlights the text appropriately if the boolean |
484 | * value is set to true. | 484 | * value is set to true. |
diff --git a/libopie2/qt3/opieui/olineedit.h b/libopie2/qt3/opieui/olineedit.h index ecfca27..db3d7ef 100644 --- a/libopie2/qt3/opieui/olineedit.h +++ b/libopie2/qt3/opieui/olineedit.h | |||
@@ -1,498 +1,498 @@ | |||
1 | /* | 1 | /* |
2 | This file Copyright (C) 2003 Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de> | 2 | This file Copyright (C) 2003 Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de> |
3 | is part of the Copyright (C) 2001 Carsten Pfeiffer <pfeiffer@kde.org>, Dawit Alemayehu <adawit@kde.org> | 3 | is part of the Copyright (C) 2001 Carsten Pfeiffer <pfeiffer@kde.org>, Dawit Alemayehu <adawit@kde.org> |
4 | Opie Project Copyright (C) 1999 Preston Brown <pbrown@kde.org>, Patrick Ward <PAT_WARD@HP-USA-om5.om.hp.com> | 4 | Opie Project Copyright (C) 1999 Preston Brown <pbrown@kde.org>, Patrick Ward <PAT_WARD@HP-USA-om5.om.hp.com> |
5 | Copyright (C) 1997 Sven Radej (sven.radej@iname.com) | 5 | Copyright (C) 1997 Sven Radej (sven.radej@iname.com) |
6 | =. | 6 | =. |
7 | .=l. | 7 | .=l. |
8 | .>+-= | 8 | .>+-= |
9 | _;:, .> :=|. This program is free software; you can | 9 | _;:, .> :=|. This program is free software; you can |
10 | .> <`_, > . <= redistribute it and/or modify it under | 10 | .> <`_, > . <= redistribute it and/or modify it under |
11 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public | 11 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public |
12 | .="- .-=="i, .._ License as published by the Free Software | 12 | .="- .-=="i, .._ License as published by the Free Software |
13 | - . .-<_> .<> Foundation; either version 2 of the License, | 13 | - . .-<_> .<> Foundation; either version 2 of the License, |
14 | ._= =} : or (at your option) any later version. | 14 | ._= =} : or (at your option) any later version. |
15 | .%`+i> _;_. | 15 | .%`+i> _;_. |
16 | .i_,=:_. -<s. This program is distributed in the hope that | 16 | .i_,=:_. -<s. This program is distributed in the hope that |
17 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 17 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
18 | : .. .:, . . . without even the implied warranty of | 18 | : .. .:, . . . without even the implied warranty of |
19 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 19 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
20 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU | 20 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU |
21 | ..}^=.= = ; Library General Public License for more | 21 | ..}^=.= = ; Library General Public License for more |
22 | ++= -. .` .: details. | 22 | ++= -. .` .: details. |
23 | : = ...= . :.=- | 23 | : = ...= . :.=- |
24 | -. .:....=;==+<; You should have received a copy of the GNU | 24 | -. .:....=;==+<; You should have received a copy of the GNU |
25 | -_. . . )=. = Library General Public License along with | 25 | -_. . . )=. = Library General Public License along with |
26 | -- :-=` this library; see the file COPYING.LIB. | 26 | -- :-=` this library; see the file COPYING.LIB. |
27 | If not, write to the Free Software Foundation, | 27 | If not, write to the Free Software Foundation, |
28 | Inc., 59 Temple Place - Suite 330, | 28 | Inc., 59 Temple Place - Suite 330, |
29 | Boston, MA 02111-1307, USA. | 29 | Boston, MA 02111-1307, USA. |
30 | 30 | ||
31 | */ | 31 | */ |
32 | 32 | ||
33 | #ifndef OLINEEDIT_H | 33 | #ifndef OLINEEDIT_H |
34 | #define OLINEEDIT_H | 34 | #define OLINEEDIT_H |
35 | 35 | ||
36 | /* QT */ | 36 | /* QT */ |
37 | 37 | ||
38 | #include <qlineedit.h> | 38 | #include <qlineedit.h> |
39 | 39 | ||
40 | /* OPIE */ | 40 | /* OPIE */ |
41 | 41 | ||
42 | #include <opie2/ocompletion.h> | 42 | #include <opie2/ocompletion.h> |
43 | #include <opie2/ocompletionbase.h> | 43 | #include <opie2/ocompletionbase.h> |
44 | 44 | ||
45 | class QPopupMenu; | 45 | class QPopupMenu; |
46 | 46 | ||
47 | class OCompletionBox; | 47 | class OCompletionBox; |
48 | typedef QString KURL; //class KURL; | 48 | typedef QString KURL; //class KURL; |
49 | 49 | ||
50 | /** | 50 | /** |
51 | * An enhanced QLineEdit widget for inputting text. | 51 | * An enhanced QLineEdit widget for inputting text. |
52 | * | 52 | * |
53 | * @sect Detail | 53 | * @par Detail |
54 | * | 54 | * |
55 | * This widget inherits from @ref QLineEdit and implements the following | 55 | * This widget inherits from @ref QLineEdit and implements the following |
56 | * additional functionalities: q completion object that provides both | 56 | * additional functionalities: q completion object that provides both |
57 | * automatic and manual text completion as well as multiple match iteration | 57 | * automatic and manual text completion as well as multiple match iteration |
58 | * features, configurable key-bindings to activate these features and a | 58 | * features, configurable key-bindings to activate these features and a |
59 | * popup-menu item that can be used to allow the user to set text completion | 59 | * popup-menu item that can be used to allow the user to set text completion |
60 | * modes on the fly based on their preference. | 60 | * modes on the fly based on their preference. |
61 | * | 61 | * |
62 | * To support these new features OLineEdit also emits a few more | 62 | * To support these new features OLineEdit also emits a few more |
63 | * additional signals. These are: @ref completion( const QString& ), | 63 | * additional signals. These are: @ref completion( const QString& ), |
64 | * textRotation( KeyBindingType ), and @ref returnPressed( const QString& ). | 64 | * textRotation( KeyBindingType ), and @ref returnPressed( const QString& ). |
65 | * The completion signal can be connected to a slot that will assist the | 65 | * The completion signal can be connected to a slot that will assist the |
66 | * user in filling out the remaining text. The text rotation signal is | 66 | * user in filling out the remaining text. The text rotation signal is |
67 | * intended to be used to iterate through the list of all possible matches | 67 | * intended to be used to iterate through the list of all possible matches |
68 | * whenever there is more than one match for the entered text. The | 68 | * whenever there is more than one match for the entered text. The |
69 | * @p returnPressed( const QString& ) signals are the same as QLineEdit's | 69 | * @p returnPressed( const QString& ) signals are the same as QLineEdit's |
70 | * except it provides the current text in the widget as its argument whenever | 70 | * except it provides the current text in the widget as its argument whenever |
71 | * appropriate. | 71 | * appropriate. |
72 | * | 72 | * |
73 | * This widget by default creates a completion object when you invoke | 73 | * This widget by default creates a completion object when you invoke |
74 | * the @ref completionObject( bool ) member function for the first time or | 74 | * the @ref completionObject( bool ) member function for the first time or |
75 | * use @ref setCompletionObject( OCompletion*, bool ) to assign your own | 75 | * use @ref setCompletionObject( OCompletion*, bool ) to assign your own |
76 | * completion object. Additionally, to make this widget more functional, | 76 | * completion object. Additionally, to make this widget more functional, |
77 | * OLineEdit will by default handle the text rotation and completion | 77 | * OLineEdit will by default handle the text rotation and completion |
78 | * events internally when a completion object is created through either one | 78 | * events internally when a completion object is created through either one |
79 | * of the methods mentioned above. If you do not need this functionality, | 79 | * of the methods mentioned above. If you do not need this functionality, |
80 | * simply use @ref OCompletionBase::setHandleSignals( bool ) or set the | 80 | * simply use @ref OCompletionBase::setHandleSignals( bool ) or set the |
81 | * boolean parameter in the above functions to FALSE. | 81 | * boolean parameter in the above functions to FALSE. |
82 | * | 82 | * |
83 | * The default key-bindings for completion and rotation is determined | 83 | * The default key-bindings for completion and rotation is determined |
84 | * from the global settings in @ref OStdAccel. These values, however, | 84 | * from the global settings in @ref OStdAccel. These values, however, |
85 | * can be overriden locally by invoking @ref OCompletionBase::setKeyBinding(). | 85 | * can be overriden locally by invoking @ref OCompletionBase::setKeyBinding(). |
86 | * The values can easily be reverted back to the default setting, by simply | 86 | * The values can easily be reverted back to the default setting, by simply |
87 | * calling @ref useGlobalSettings(). An alternate method would be to default | 87 | * calling @ref useGlobalSettings(). An alternate method would be to default |
88 | * individual key-bindings by usning @ref setKeyBinding() with the default | 88 | * individual key-bindings by usning @ref setKeyBinding() with the default |
89 | * second argument. | 89 | * second argument. |
90 | * | 90 | * |
91 | * NOTE that if the @p EchoMode for this widget is set to something other | 91 | * NOTE that if the @p EchoMode for this widget is set to something other |
92 | * than @p QLineEdit::Normal, the completion mode will always be defaulted | 92 | * than @p QLineEdit::Normal, the completion mode will always be defaulted |
93 | * to @ref PGlobalSettings::CompletionNone. This is done purposefully to guard | 93 | * to @ref PGlobalSettings::CompletionNone. This is done purposefully to guard |
94 | * against protected entries such as passwords being cached in @ref OCompletion's | 94 | * against protected entries such as passwords being cached in @ref OCompletion's |
95 | * list. Hence, if the @p EchoMode is not @ref QLineEdit::Normal, the completion | 95 | * list. Hence, if the @p EchoMode is not @ref QLineEdit::Normal, the completion |
96 | * mode is automatically disabled. | 96 | * mode is automatically disabled. |
97 | * | 97 | * |
98 | * @sect Useage | 98 | * @par Usage |
99 | * | 99 | * |
100 | * To enable the basic completion feature : | 100 | * To enable the basic completion feature : |
101 | * | 101 | * |
102 | * <pre> | 102 | * <pre> |
103 | * OLineEdit *edit = new OLineEdit( this, "mywidget" ); | 103 | * OLineEdit *edit = new OLineEdit( this, "mywidget" ); |
104 | * OCompletion *comp = edit->completionObject(); | 104 | * OCompletion *comp = edit->completionObject(); |
105 | * // Fill the completion object with a list of possible matches | 105 | * // Fill the completion object with a list of possible matches |
106 | * QStringList list; | 106 | * QStringList list; |
107 | * list << "mickeyl@handhelds.org" << "mickey@tm.informatik.uni-frankfurt.de>" << "mickey@Vanille.de"; | 107 | * list << "mickeyl@handhelds.org" << "mickey@tm.informatik.uni-frankfurt.de>" << "mickey@Vanille.de"; |
108 | * comp->setItems( list ); | 108 | * comp->setItems( list ); |
109 | * // Connect to the return pressed signal (optional) | 109 | * // Connect to the return pressed signal (optional) |
110 | * connect(edit,SIGNAL(returnPressed(const QString&)),comp,SLOT(addItem(const QString&)); | 110 | * connect(edit,SIGNAL(returnPressed(const QString&)),comp,SLOT(addItem(const QString&)); |
111 | * </pre> | 111 | * </pre> |
112 | * | 112 | * |
113 | * To use a customized completion objects or your | 113 | * To use a customized completion objects or your |
114 | * own completion object : | 114 | * own completion object : |
115 | * | 115 | * |
116 | * <pre> | 116 | * <pre> |
117 | * OLineEdit *edit = new OLineEdit( this,"mywidget" ); | 117 | * OLineEdit *edit = new OLineEdit( this,"mywidget" ); |
118 | * KURLCompletion *comp = new KURLCompletion(); | 118 | * KURLCompletion *comp = new KURLCompletion(); |
119 | * edit->setCompletionObject( comp ); | 119 | * edit->setCompletionObject( comp ); |
120 | * // Connect to the return pressed signal - optional | 120 | * // Connect to the return pressed signal - optional |
121 | * connect(edit,SIGNAL(returnPressed(const QString&)),comp,SLOT(addItem(const QString&)); | 121 | * connect(edit,SIGNAL(returnPressed(const QString&)),comp,SLOT(addItem(const QString&)); |
122 | * </pre> | 122 | * </pre> |
123 | * | 123 | * |
124 | * Note that you have to either delete the allocated completion object | 124 | * Note that you have to either delete the allocated completion object |
125 | * when you don't need it anymore, or call | 125 | * when you don't need it anymore, or call |
126 | * setAutoDeleteCompletionObject( true ); | 126 | * setAutoDeleteCompletionObject( true ); |
127 | * | 127 | * |
128 | * @sect Miscellaneous function calls : | 128 | * @par Miscellaneous function calls : |
129 | * | 129 | * |
130 | * <pre> | 130 | * <pre> |
131 | * // Tell the widget not to handle completion and | 131 | * // Tell the widget not to handle completion and |
132 | * // iteration internally. | 132 | * // iteration internally. |
133 | * edit->setHandleSignals( false ); | 133 | * edit->setHandleSignals( false ); |
134 | * // Set your own completion key for manual completions. | 134 | * // Set your own completion key for manual completions. |
135 | * edit->setKeyBinding( OCompletionBase::TextCompletion, Qt::End ); | 135 | * edit->setKeyBinding( OCompletionBase::TextCompletion, Qt::End ); |
136 | * // Hide the context (popup) menu | 136 | * // Hide the context (popup) menu |
137 | * edit->setContextMenuEnabled( false ); | 137 | * edit->setContextMenuEnabled( false ); |
138 | * // Temporarly disable signal emitions | 138 | * // Temporarly disable signal emitions |
139 | * // (both completion & iteration signals) | 139 | * // (both completion & iteration signals) |
140 | * edit->disableSignals(); | 140 | * edit->disableSignals(); |
141 | * // Default the key-bindings to system settings. | 141 | * // Default the key-bindings to system settings. |
142 | * edit->useGlobalKeyBindings(); | 142 | * edit->useGlobalKeyBindings(); |
143 | * </pre> | 143 | * </pre> |
144 | * | 144 | * |
145 | * @short An enhanced single line input widget. | 145 | * @short An enhanced single line input widget. |
146 | * @author Dawit Alemayehu <adawit@kde.org> | 146 | * @author Dawit Alemayehu <adawit@kde.org> |
147 | * @author Opie adaption by Michael Lauer <mickey@tm.informatik.uni-frankfurt.de> | 147 | * @author Opie adaption by Michael Lauer <mickey@tm.informatik.uni-frankfurt.de> |
148 | */ | 148 | */ |
149 | 149 | ||
150 | class OLineEdit : public QLineEdit, public OCompletionBase | 150 | class OLineEdit : public QLineEdit, public OCompletionBase |
151 | { | 151 | { |
152 | friend class OComboBox; | 152 | friend class OComboBox; |
153 | 153 | ||
154 | Q_OBJECT | 154 | Q_OBJECT |
155 | Q_PROPERTY( bool contextMenuEnabled READ isContextMenuEnabled WRITE setContextMenuEnabled ) | 155 | Q_PROPERTY( bool contextMenuEnabled READ isContextMenuEnabled WRITE setContextMenuEnabled ) |
156 | Q_PROPERTY( bool urlDropsEnabled READ isURLDropsEnabled WRITE setURLDropsEnabled ) | 156 | Q_PROPERTY( bool urlDropsEnabled READ isURLDropsEnabled WRITE setURLDropsEnabled ) |
157 | 157 | ||
158 | public: | 158 | public: |
159 | 159 | ||
160 | /** | 160 | /** |
161 | * Constructs a OLineEdit object with a default text, a parent, | 161 | * Constructs a OLineEdit object with a default text, a parent, |
162 | * and a name. | 162 | * and a name. |
163 | * | 163 | * |
164 | * @param string Text to be shown in the edit widget. | 164 | * @param string Text to be shown in the edit widget. |
165 | * @param parent The parent object of this widget. | 165 | * @param parent The parent object of this widget. |
166 | * @param name the name of this widget | 166 | * @param name the name of this widget |
167 | */ | 167 | */ |
168 | OLineEdit( const QString &string, QWidget *parent, const char *name = 0 ); | 168 | OLineEdit( const QString &string, QWidget *parent, const char *name = 0 ); |
169 | 169 | ||
170 | /** | 170 | /** |
171 | * Constructs a OLineEdit object with a parent and a name. | 171 | * Constructs a OLineEdit object with a parent and a name. |
172 | * | 172 | * |
173 | * @param string Text to be shown in the edit widget. | 173 | * @param string Text to be shown in the edit widget. |
174 | * @param parent The parent object of this widget. | 174 | * @param parent The parent object of this widget. |
175 | * @param name The name of this widget. | 175 | * @param name The name of this widget. |
176 | */ | 176 | */ |
177 | OLineEdit ( QWidget *parent=0, const char *name=0 ); | 177 | OLineEdit ( QWidget *parent=0, const char *name=0 ); |
178 | 178 | ||
179 | /** | 179 | /** |
180 | * Destructor. | 180 | * Destructor. |
181 | */ | 181 | */ |
182 | virtual ~OLineEdit (); | 182 | virtual ~OLineEdit (); |
183 | 183 | ||
184 | /** | 184 | /** |
185 | * Sets @p url into the lineedit. It uses @ref KURL::prettyURL() so | 185 | * Sets @p url into the lineedit. It uses @ref KURL::prettyURL() so |
186 | * that the url is properly decoded for displaying. | 186 | * that the url is properly decoded for displaying. |
187 | */ | 187 | */ |
188 | void setURL( const KURL& url ); | 188 | void setURL( const KURL& url ); |
189 | 189 | ||
190 | /** | 190 | /** |
191 | * Puts the text cursor at the end of the string. | 191 | * Puts the text cursor at the end of the string. |
192 | * | 192 | * |
193 | * This method is deprecated. Use @ref QLineEdit::end() | 193 | * This method is deprecated. Use @ref QLineEdit::end() |
194 | * instead. | 194 | * instead. |
195 | * | 195 | * |
196 | * @deprecated | 196 | * @deprecated |
197 | * @ref QLineEdit::end() | 197 | * @ref QLineEdit::end() |
198 | */ | 198 | */ |
199 | void cursorAtEnd() { end( false ); } | 199 | void cursorAtEnd() { end( false ); } |
200 | 200 | ||
201 | /** | 201 | /** |
202 | * Re-implemented from @ref OCompletionBase for internal reasons. | 202 | * Re-implemented from @ref OCompletionBase for internal reasons. |
203 | * | 203 | * |
204 | * This function is re-implemented in order to make sure that | 204 | * This function is re-implemented in order to make sure that |
205 | * the EchoMode is acceptable before we set the completion mode. | 205 | * the EchoMode is acceptable before we set the completion mode. |
206 | * | 206 | * |
207 | * See @ref OCompletionBase::setCompletionMode | 207 | * See @ref OCompletionBase::setCompletionMode |
208 | */ | 208 | */ |
209 | virtual void setCompletionMode( OGlobalSettings::Completion mode ); | 209 | virtual void setCompletionMode( OGlobalSettings::Completion mode ); |
210 | 210 | ||
211 | /** | 211 | /** |
212 | * Enables/disables the popup (context) menu. | 212 | * Enables/disables the popup (context) menu. |
213 | * | 213 | * |
214 | * Note that when this function is invoked with its argument | 214 | * Note that when this function is invoked with its argument |
215 | * set to @p true, then both the context menu and the completion | 215 | * set to @p true, then both the context menu and the completion |
216 | * menu item are enabled. If you do not want to the completion | 216 | * menu item are enabled. If you do not want to the completion |
217 | * item to be visible simply invoke @ref hideModechanger() right | 217 | * item to be visible simply invoke @ref hideModechanger() right |
218 | * after calling this method. Also by default, the context | 218 | * after calling this method. Also by default, the context |
219 | * menu is automatically created if this widget is editable. Thus | 219 | * menu is automatically created if this widget is editable. Thus |
220 | * you need to call this function with the argument set to false | 220 | * you need to call this function with the argument set to false |
221 | * if you do not want this behaviour. | 221 | * if you do not want this behaviour. |
222 | * | 222 | * |
223 | * @param showMenu If @p true, show the context menu. | 223 | * @param showMenu If @p true, show the context menu. |
224 | */ | 224 | */ |
225 | virtual void setContextMenuEnabled( bool showMenu ) { m_bEnableMenu = showMenu; } | 225 | virtual void setContextMenuEnabled( bool showMenu ) { m_bEnableMenu = showMenu; } |
226 | 226 | ||
227 | /** | 227 | /** |
228 | * Returns @p true when the context menu is enabled. | 228 | * Returns @p true when the context menu is enabled. |
229 | */ | 229 | */ |
230 | bool isContextMenuEnabled() const { return m_bEnableMenu; } | 230 | bool isContextMenuEnabled() const { return m_bEnableMenu; } |
231 | 231 | ||
232 | /** | 232 | /** |
233 | * Enables/Disables handling of URL drops. If enabled and the user | 233 | * Enables/Disables handling of URL drops. If enabled and the user |
234 | * drops an URL, the decoded URL will be inserted. Otherwise the default | 234 | * drops an URL, the decoded URL will be inserted. Otherwise the default |
235 | * behaviour of QLineEdit is used, which inserts the encoded URL. | 235 | * behaviour of QLineEdit is used, which inserts the encoded URL. |
236 | * | 236 | * |
237 | * @param enable If @p true, insert decoded URLs | 237 | * @param enable If @p true, insert decoded URLs |
238 | */ | 238 | */ |
239 | void setURLDropsEnabled( bool enable ); | 239 | void setURLDropsEnabled( bool enable ); |
240 | 240 | ||
241 | /** | 241 | /** |
242 | * Returns @p true when decoded URL drops are enabled | 242 | * Returns @p true when decoded URL drops are enabled |
243 | */ | 243 | */ |
244 | bool isURLDropsEnabled() const; | 244 | bool isURLDropsEnabled() const; |
245 | 245 | ||
246 | /** | 246 | /** |
247 | * By default, OLineEdit recognizes @p Key_Return and @p Key_Enter and emits | 247 | * By default, OLineEdit recognizes @p Key_Return and @p Key_Enter and emits |
248 | * the @ref returnPressed() signals, but it also lets the event pass, | 248 | * the @ref returnPressed() signals, but it also lets the event pass, |
249 | * for example causing a dialog's default-button to be called. | 249 | * for example causing a dialog's default-button to be called. |
250 | * | 250 | * |
251 | * Call this method with @p trap = @p true to make @p OLineEdit stop these | 251 | * Call this method with @p trap = @p true to make @p OLineEdit stop these |
252 | * events. The signals will still be emitted of course. | 252 | * events. The signals will still be emitted of course. |
253 | * | 253 | * |
254 | * @see trapReturnKey() | 254 | * @see trapReturnKey() |
255 | */ | 255 | */ |
256 | void setTrapReturnKey( bool trap ); | 256 | void setTrapReturnKey( bool trap ); |
257 | 257 | ||
258 | /** | 258 | /** |
259 | * @returns @p true if keyevents of @p Key_Return or | 259 | * @returns @p true if keyevents of @p Key_Return or |
260 | * @p Key_Enter will be stopped or if they will be propagated. | 260 | * @p Key_Enter will be stopped or if they will be propagated. |
261 | * | 261 | * |
262 | * @see setTrapReturnKey () | 262 | * @see setTrapReturnKey () |
263 | */ | 263 | */ |
264 | bool trapReturnKey() const; | 264 | bool trapReturnKey() const; |
265 | 265 | ||
266 | /** | 266 | /** |
267 | * Re-implemented for internal reasons. API not affected. | 267 | * Re-implemented for internal reasons. API not affected. |
268 | * | 268 | * |
269 | * @reimplemented | 269 | * @reimplemented |
270 | */ | 270 | */ |
271 | virtual bool eventFilter( QObject *, QEvent * ); | 271 | virtual bool eventFilter( QObject *, QEvent * ); |
272 | 272 | ||
273 | /** | 273 | /** |
274 | * @returns the completion-box, that is used in completion mode | 274 | * @returns the completion-box, that is used in completion mode |
275 | * @ref KGlobalSettings::CompletionPopup. | 275 | * @ref KGlobalSettings::CompletionPopup. |
276 | * This method will create a completion-box if none is there, yet. | 276 | * This method will create a completion-box if none is there, yet. |
277 | * | 277 | * |
278 | * @param create Set this to false if you don't want the box to be created | 278 | * @param create Set this to false if you don't want the box to be created |
279 | * i.e. to test if it is available. | 279 | * i.e. to test if it is available. |
280 | */ | 280 | */ |
281 | OCompletionBox * completionBox( bool create = true ); | 281 | OCompletionBox * completionBox( bool create = true ); |
282 | 282 | ||
283 | /** | 283 | /** |
284 | * Reimplemented for internal reasons, the API is not affected. | 284 | * Reimplemented for internal reasons, the API is not affected. |
285 | */ | 285 | */ |
286 | virtual void setCompletionObject( OCompletion *, bool hsig = true ); | 286 | virtual void setCompletionObject( OCompletion *, bool hsig = true ); |
287 | 287 | ||
288 | 288 | ||
289 | signals: | 289 | signals: |
290 | 290 | ||
291 | /** | 291 | /** |
292 | * Emitted when the user presses the return key. | 292 | * Emitted when the user presses the return key. |
293 | * | 293 | * |
294 | * The argument is the current text. Note that this | 294 | * The argument is the current text. Note that this |
295 | * signal is @em not emitted if the widget's @p EchoMode is set to | 295 | * signal is @em not emitted if the widget's @p EchoMode is set to |
296 | * @ref QLineEdit::EchoMode. | 296 | * @ref QLineEdit::EchoMode. |
297 | */ | 297 | */ |
298 | void returnPressed( const QString& ); | 298 | void returnPressed( const QString& ); |
299 | 299 | ||
300 | /** | 300 | /** |
301 | * Emitted when the completion key is pressed. | 301 | * Emitted when the completion key is pressed. |
302 | * | 302 | * |
303 | * Please note that this signal is @em not emitted if the | 303 | * Please note that this signal is @em not emitted if the |
304 | * completion mode is set to @p CompletionNone or @p EchoMode is | 304 | * completion mode is set to @p CompletionNone or @p EchoMode is |
305 | * @em normal. | 305 | * @em normal. |
306 | */ | 306 | */ |
307 | void completion( const QString& ); | 307 | void completion( const QString& ); |
308 | 308 | ||
309 | /** | 309 | /** |
310 | * Emitted when the shortcut for substring completion is pressed. | 310 | * Emitted when the shortcut for substring completion is pressed. |
311 | */ | 311 | */ |
312 | void substringCompletion( const QString& ); | 312 | void substringCompletion( const QString& ); |
313 | 313 | ||
314 | /** | 314 | /** |
315 | * Emitted when the text rotation key-bindings are pressed. | 315 | * Emitted when the text rotation key-bindings are pressed. |
316 | * | 316 | * |
317 | * The argument indicates which key-binding was pressed. | 317 | * The argument indicates which key-binding was pressed. |
318 | * In OLineEdit's case this can be either one of two values: | 318 | * In OLineEdit's case this can be either one of two values: |
319 | * @ref PrevCompletionMatch or @ref NextCompletionMatch. See | 319 | * @ref PrevCompletionMatch or @ref NextCompletionMatch. See |
320 | * @ref OCompletionBase::setKeyBinding for details. | 320 | * @ref OCompletionBase::setKeyBinding for details. |
321 | * | 321 | * |
322 | * Note that this signal is @em not emitted if the completion | 322 | * Note that this signal is @em not emitted if the completion |
323 | * mode is set to @p KGlobalSettings::CompletionNone or @p echoMode() is @em not normal. | 323 | * mode is set to @p KGlobalSettings::CompletionNone or @p echoMode() is @em not normal. |
324 | */ | 324 | */ |
325 | void textRotation( OCompletionBase::KeyBindingType ); | 325 | void textRotation( OCompletionBase::KeyBindingType ); |
326 | 326 | ||
327 | /** | 327 | /** |
328 | * Emitted when the user changed the completion mode by using the | 328 | * Emitted when the user changed the completion mode by using the |
329 | * popupmenu. | 329 | * popupmenu. |
330 | */ | 330 | */ |
331 | void completionModeChanged( OGlobalSettings::Completion ); | 331 | void completionModeChanged( OGlobalSettings::Completion ); |
332 | 332 | ||
333 | /** | 333 | /** |
334 | * Emitted before the context menu is displayed. | 334 | * Emitted before the context menu is displayed. |
335 | * | 335 | * |
336 | * The signal allows you to add your own entries into the | 336 | * The signal allows you to add your own entries into the |
337 | * the context menu that is created on demand. | 337 | * the context menu that is created on demand. |
338 | * | 338 | * |
339 | * NOTE: Do not store the pointer to the QPopupMenu | 339 | * NOTE: Do not store the pointer to the QPopupMenu |
340 | * provided through since it is created and deleted | 340 | * provided through since it is created and deleted |
341 | * on demand. | 341 | * on demand. |
342 | * | 342 | * |
343 | * @param the context menu about to be displayed | 343 | * @param the context menu about to be displayed |
344 | */ | 344 | */ |
345 | void aboutToShowContextMenu( QPopupMenu* ); | 345 | void aboutToShowContextMenu( QPopupMenu* ); |
346 | 346 | ||
347 | public slots: | 347 | public slots: |
348 | 348 | ||
349 | /** | 349 | /** |
350 | * Re-implemented for internal reasons. API not changed. | 350 | * Re-implemented for internal reasons. API not changed. |
351 | */ | 351 | */ |
352 | virtual void setReadOnly(bool); | 352 | virtual void setReadOnly(bool); |
353 | 353 | ||
354 | /** | 354 | /** |
355 | * Iterates through all possible matches of the completed text or | 355 | * Iterates through all possible matches of the completed text or |
356 | * the history list. | 356 | * the history list. |
357 | * | 357 | * |
358 | * This function simply iterates over all possible matches in case | 358 | * This function simply iterates over all possible matches in case |
359 | * multimple matches are found as a result of a text completion request. | 359 | * multimple matches are found as a result of a text completion request. |
360 | * It will have no effect if only a single match is found. | 360 | * It will have no effect if only a single match is found. |
361 | * | 361 | * |
362 | * @param type The key-binding invoked. | 362 | * @param type The key-binding invoked. |
363 | */ | 363 | */ |
364 | void rotateText( OCompletionBase::KeyBindingType /* type */ ); | 364 | void rotateText( OCompletionBase::KeyBindingType /* type */ ); |
365 | 365 | ||
366 | /** | 366 | /** |
367 | * See @ref OCompletionBase::setCompletedText. | 367 | * See @ref OCompletionBase::setCompletedText. |
368 | */ | 368 | */ |
369 | virtual void setCompletedText( const QString& ); | 369 | virtual void setCompletedText( const QString& ); |
370 | 370 | ||
371 | /** | 371 | /** |
372 | * Sets @p items into the completion-box if @ref completionMode() is | 372 | * Sets @p items into the completion-box if @ref completionMode() is |
373 | * CompletionPopup. The popup will be shown immediately. | 373 | * CompletionPopup. The popup will be shown immediately. |
374 | */ | 374 | */ |
375 | void setCompletedItems( const QStringList& items ); | 375 | void setCompletedItems( const QStringList& items ); |
376 | 376 | ||
377 | /** | 377 | /** |
378 | * Reimplemented to workaround a buggy QLineEdit::clear() | 378 | * Reimplemented to workaround a buggy QLineEdit::clear() |
379 | * (changing the clipboard to the text we just had in the lineedit) | 379 | * (changing the clipboard to the text we just had in the lineedit) |
380 | */ | 380 | */ |
381 | virtual void clear(); | 381 | virtual void clear(); |
382 | 382 | ||
383 | protected slots: | 383 | protected slots: |
384 | 384 | ||
385 | /** | 385 | /** |
386 | * Completes the remaining text with a matching one from | 386 | * Completes the remaining text with a matching one from |
387 | * a given list. | 387 | * a given list. |
388 | */ | 388 | */ |
389 | virtual void makeCompletion( const QString& ); | 389 | virtual void makeCompletion( const QString& ); |
390 | 390 | ||
391 | /** | 391 | /** |
392 | * @deprecated. Will be removed in the next major release! | 392 | * @deprecated. Will be removed in the next major release! |
393 | */ | 393 | */ |
394 | void slotAboutToShow() {} | 394 | void slotAboutToShow() {} |
395 | 395 | ||
396 | /** | 396 | /** |
397 | * @deprecated. Will be removed in the next major release! | 397 | * @deprecated. Will be removed in the next major release! |
398 | */ | 398 | */ |
399 | void slotCancelled() {} | 399 | void slotCancelled() {} |
400 | 400 | ||
401 | protected: | 401 | protected: |
402 | 402 | ||
403 | /** | 403 | /** |
404 | * Re-implemented for internal reasons. API not affected. | 404 | * Re-implemented for internal reasons. API not affected. |
405 | * | 405 | * |
406 | * See @ref QLineEdit::keyPressEvent(). | 406 | * See @ref QLineEdit::keyPressEvent(). |
407 | */ | 407 | */ |
408 | virtual void keyPressEvent( QKeyEvent * ); | 408 | virtual void keyPressEvent( QKeyEvent * ); |
409 | 409 | ||
410 | /** | 410 | /** |
411 | * Re-implemented for internal reasons. API not affected. | 411 | * Re-implemented for internal reasons. API not affected. |
412 | * | 412 | * |
413 | * See @ref QLineEdit::mousePressEvent(). | 413 | * See @ref QLineEdit::mousePressEvent(). |
414 | */ | 414 | */ |
415 | virtual void mousePressEvent( QMouseEvent * ); | 415 | virtual void mousePressEvent( QMouseEvent * ); |
416 | 416 | ||
417 | /** | 417 | /** |
418 | * Re-implemented for internal reasons. API not affected. | 418 | * Re-implemented for internal reasons. API not affected. |
419 | * | 419 | * |
420 | * See @ref QWidget::mouseDoubleClickEvent(). | 420 | * See @ref QWidget::mouseDoubleClickEvent(). |
421 | */ | 421 | */ |
422 | virtual void mouseDoubleClickEvent( QMouseEvent * ); | 422 | virtual void mouseDoubleClickEvent( QMouseEvent * ); |
423 | 423 | ||
424 | /** | 424 | /** |
425 | * Re-implemented for internal reasons. API not affected. | 425 | * Re-implemented for internal reasons. API not affected. |
426 | * | 426 | * |
427 | * See @ref QLineEdit::createPopupMenu(). | 427 | * See @ref QLineEdit::createPopupMenu(). |
428 | */ | 428 | */ |
429 | virtual QPopupMenu *createPopupMenu(); | 429 | virtual QPopupMenu *createPopupMenu(); |
430 | 430 | ||
431 | /** | 431 | /** |
432 | * Re-implemented to handle URI drops. | 432 | * Re-implemented to handle URI drops. |
433 | * | 433 | * |
434 | * See @ref QLineEdit::dropEvent(). | 434 | * See @ref QLineEdit::dropEvent(). |
435 | */ | 435 | */ |
436 | //virtual void dropEvent( QDropEvent * ); | 436 | //virtual void dropEvent( QDropEvent * ); |
437 | 437 | ||
438 | /* | 438 | /* |
439 | * This function simply sets the lineedit text and | 439 | * This function simply sets the lineedit text and |
440 | * highlights the text appropriately if the boolean | 440 | * highlights the text appropriately if the boolean |
441 | * value is set to true. | 441 | * value is set to true. |
442 | * | 442 | * |
443 | * @param text | 443 | * @param text |
444 | * @param marked | 444 | * @param marked |
445 | */ | 445 | */ |
446 | virtual void setCompletedText( const QString& /*text*/, bool /*marked*/ ); | 446 | virtual void setCompletedText( const QString& /*text*/, bool /*marked*/ ); |
447 | 447 | ||
448 | /** | 448 | /** |
449 | * Reimplemented for internal reasons, the API is not affected. | 449 | * Reimplemented for internal reasons, the API is not affected. |
450 | */ | 450 | */ |
451 | virtual void create( WId = 0, bool initializeWindow = true, | 451 | virtual void create( WId = 0, bool initializeWindow = true, |
452 | bool destroyOldWindow = true ); | 452 | bool destroyOldWindow = true ); |
453 | 453 | ||
454 | private slots: | 454 | private slots: |
455 | void completionMenuActivated( int id ); | 455 | void completionMenuActivated( int id ); |
456 | void tripleClickTimeout(); // resets possibleTripleClick | 456 | void tripleClickTimeout(); // resets possibleTripleClick |
457 | 457 | ||
458 | private: | 458 | private: |
459 | // Constants that represent the ID's of the popup menu. | 459 | // Constants that represent the ID's of the popup menu. |
460 | // TODO: See if we can replace this mess with KActionMenu | 460 | // TODO: See if we can replace this mess with KActionMenu |
461 | // in the future though it's working lovely. | 461 | // in the future though it's working lovely. |
462 | enum MenuID { | 462 | enum MenuID { |
463 | Default = 42, | 463 | Default = 42, |
464 | NoCompletion, | 464 | NoCompletion, |
465 | AutoCompletion, | 465 | AutoCompletion, |
466 | ShellCompletion, | 466 | ShellCompletion, |
467 | PopupCompletion, | 467 | PopupCompletion, |
468 | SemiAutoCompletion | 468 | SemiAutoCompletion |
469 | }; | 469 | }; |
470 | 470 | ||
471 | /** | 471 | /** |
472 | * Initializes variables. Called from the constructors. | 472 | * Initializes variables. Called from the constructors. |
473 | */ | 473 | */ |
474 | void init(); | 474 | void init(); |
475 | 475 | ||
476 | /** | 476 | /** |
477 | * Creates the completion box | 477 | * Creates the completion box |
478 | */ | 478 | */ |
479 | void makeCompletionBox(); | 479 | void makeCompletionBox(); |
480 | 480 | ||
481 | /** | 481 | /** |
482 | * Checks whether we should/should not consume a key used as | 482 | * Checks whether we should/should not consume a key used as |
483 | * an accelerator. | 483 | * an accelerator. |
484 | */ | 484 | */ |
485 | //bool overrideAccel (const QKeyEvent* e); | 485 | //bool overrideAccel (const QKeyEvent* e); |
486 | 486 | ||
487 | bool m_bEnableMenu; | 487 | bool m_bEnableMenu; |
488 | 488 | ||
489 | bool possibleTripleClick; // set in mousePressEvent, deleted in tripleClickTimeout | 489 | bool possibleTripleClick; // set in mousePressEvent, deleted in tripleClickTimeout |
490 | 490 | ||
491 | protected: | 491 | protected: |
492 | //virtual void virtual_hook( int id, void* data ); | 492 | //virtual void virtual_hook( int id, void* data ); |
493 | private: | 493 | private: |
494 | class OLineEditPrivate; | 494 | class OLineEditPrivate; |
495 | OLineEditPrivate *d; | 495 | OLineEditPrivate *d; |
496 | }; | 496 | }; |
497 | 497 | ||
498 | #endif | 498 | #endif |