summaryrefslogtreecommitdiff
authorar <ar>2005-01-21 20:19:00 (UTC)
committer ar <ar>2005-01-21 20:19:00 (UTC)
commit55eccecc08f839878e5743d6e6be25af386b5a3f (patch) (unidiff)
treefd663ded2a2c097ce53bac6c021ca652ef5b5508
parentcd51d382be50bc021739395309e23760f1619759 (diff)
downloadopie-55eccecc08f839878e5743d6e6be25af386b5a3f.zip
opie-55eccecc08f839878e5743d6e6be25af386b5a3f.tar.gz
opie-55eccecc08f839878e5743d6e6be25af386b5a3f.tar.bz2
- make opie compilable against qte 2.3.10 snapshot
change QT_VERSION > 290 into QT_VERSION <= 0x030000
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opieui/olistview.cpp8
-rw-r--r--libopie2/opieui/opopupmenu.cpp4
-rw-r--r--libopie2/opieui/oselector.cpp2
-rw-r--r--libopie2/opieui/oselector.h4
-rw-r--r--libopie2/qt3/opiecore/osortablevaluelist.h2
-rw-r--r--libopie2/qt3/opieui/ocombobox.cpp6
-rw-r--r--libopie2/qt3/opieui/oeditlistbox.cpp6
-rw-r--r--libopie2/qt3/opieui/olineedit.cpp6
8 files changed, 19 insertions, 19 deletions
diff --git a/libopie2/opieui/olistview.cpp b/libopie2/opieui/olistview.cpp
index 67b4b83..4386e0e 100644
--- a/libopie2/opieui/olistview.cpp
+++ b/libopie2/opieui/olistview.cpp
@@ -1,199 +1,199 @@
1/* 1/*
2                 This file is part of the Opie Project 2                 This file is part of the Opie Project
3 =. (C) 2003-2004 Michael 'Mickey' Lauer <mickey@Vanille.de> 3 =. (C) 2003-2004 Michael 'Mickey' Lauer <mickey@Vanille.de>
4 .=l. 4 .=l.
5           .>+-= 5           .>+-=
6 _;:,     .>    :=|. This program is free software; you can 6 _;:,     .>    :=|. This program is free software; you can
7.> <`_,   >  .   <= redistribute it and/or modify it under 7.> <`_,   >  .   <= redistribute it and/or modify it under
8:`=1 )Y*s>-.--   : the terms of the GNU Library General Public 8:`=1 )Y*s>-.--   : the terms of the GNU Library General Public
9.="- .-=="i,     .._ License as published by the Free Software 9.="- .-=="i,     .._ License as published by the Free Software
10 - .   .-<_>     .<> Foundation; either version 2 of the License, 10 - .   .-<_>     .<> Foundation; either version 2 of the License,
11     ._= =}       : or (at your option) any later version. 11     ._= =}       : or (at your option) any later version.
12    .%`+i>       _;_. 12    .%`+i>       _;_.
13    .i_,=:_.      -<s. This program is distributed in the hope that 13    .i_,=:_.      -<s. This program is distributed in the hope that
14     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 14     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
15    : ..    .:,     . . . without even the implied warranty of 15    : ..    .:,     . . . without even the implied warranty of
16    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 16    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
17  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 17  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
18..}^=.=       =       ; Library General Public License for more 18..}^=.=       =       ; Library General Public License for more
19++=   -.     .`     .: details. 19++=   -.     .`     .: details.
20 :     =  ...= . :.=- 20 :     =  ...= . :.=-
21 -.   .:....=;==+<; You should have received a copy of the GNU 21 -.   .:....=;==+<; You should have received a copy of the GNU
22  -_. . .   )=.  = Library General Public License along with 22  -_. . .   )=.  = Library General Public License along with
23    --        :-=` this library; see the file COPYING.LIB. 23    --        :-=` this library; see the file COPYING.LIB.
24 If not, write to the Free Software Foundation, 24 If not, write to the Free Software Foundation,
25 Inc., 59 Temple Place - Suite 330, 25 Inc., 59 Temple Place - Suite 330,
26 Boston, MA 02111-1307, USA. 26 Boston, MA 02111-1307, USA.
27 27
28*/ 28*/
29 29
30/* QT */ 30/* QT */
31 31
32#include <qpixmap.h> 32#include <qpixmap.h>
33 33
34/* OPIE */ 34/* OPIE */
35 35
36#include <opie2/odebug.h> 36#include <opie2/odebug.h>
37#include <opie2/olistview.h> 37#include <opie2/olistview.h>
38 38
39using namespace Opie::Core; 39using namespace Opie::Core;
40 40
41 41
42namespace Opie { 42namespace Opie {
43namespace Ui { 43namespace Ui {
44/*====================================================================================== 44/*======================================================================================
45 * OListView 45 * OListView
46 *======================================================================================*/ 46 *======================================================================================*/
47 47
48OListView::OListView( QWidget *parent, const char *name, WFlags fl ) 48OListView::OListView( QWidget *parent, const char *name, WFlags fl )
49 :QListView( parent, name, fl ) 49 :QListView( parent, name, fl )
50{ 50{
51 //FIXME: get from global settings and calculate ==> see oglobalsettings.* 51 //FIXME: get from global settings and calculate ==> see oglobalsettings.*
52 52
53 m_alternateBackground = QColor( 238, 246, 255 ); 53 m_alternateBackground = QColor( 238, 246, 255 );
54 m_columnSeparator = QPen( QColor( 150, 160, 170 ), 0, DotLine ); 54 m_columnSeparator = QPen( QColor( 150, 160, 170 ), 0, DotLine );
55 m_fullWidth = true; 55 m_fullWidth = true;
56 connect( this, SIGNAL(expanded(QListViewItem*)), SLOT(expand(QListViewItem*))); 56 connect( this, SIGNAL(expanded(QListViewItem*)), SLOT(expand(QListViewItem*)));
57} 57}
58 58
59OListView::~OListView() 59OListView::~OListView()
60{ 60{
61} 61}
62 62
63void OListView::setFullWidth( bool fullWidth ) 63void OListView::setFullWidth( bool fullWidth )
64{ 64{
65 m_fullWidth = fullWidth; 65 m_fullWidth = fullWidth;
66 #if QT_VERSION > 290 66 #if QT_VERSION >= 0x030000
67 header()->setStretchEnabled( fullWidth, columns()-1 ); 67 header()->setStretchEnabled( fullWidth, columns()-1 );
68 #endif 68 #endif
69} 69}
70 70
71bool OListView::fullWidth() const 71bool OListView::fullWidth() const
72{ 72{
73 return m_fullWidth; 73 return m_fullWidth;
74} 74}
75 75
76int OListView::addColumn( const QString& label, int width ) 76int OListView::addColumn( const QString& label, int width )
77{ 77{
78 int result = QListView::addColumn( label, width ); 78 int result = QListView::addColumn( label, width );
79 #if QT_VERSION > 290 79 #if QT_VERSION >= 0x030000
80 if (m_fullWidth) { 80 if (m_fullWidth) {
81 header()->setStretchEnabled( false, columns()-2 ); 81 header()->setStretchEnabled( false, columns()-2 );
82 header()->setStretchEnabled( true, columns()-1 ); 82 header()->setStretchEnabled( true, columns()-1 );
83 } 83 }
84 #endif 84 #endif
85 return result; 85 return result;
86} 86}
87 87
88int OListView::addColumn( const QIconSet& iconset, const QString& label, int width ) 88int OListView::addColumn( const QIconSet& iconset, const QString& label, int width )
89{ 89{
90 int result = QListView::addColumn( iconset, label, width ); 90 int result = QListView::addColumn( iconset, label, width );
91 #if QT_VERSION > 290 91 #if QT_VERSION >= 0x030000
92 if (m_fullWidth) { 92 if (m_fullWidth) {
93 header()->setStretchEnabled( false, columns()-2 ); 93 header()->setStretchEnabled( false, columns()-2 );
94 header()->setStretchEnabled( true, columns()-1 ); 94 header()->setStretchEnabled( true, columns()-1 );
95 } 95 }
96 #endif 96 #endif
97 return result; 97 return result;
98} 98}
99 99
100void OListView::removeColumn( int index ) 100void OListView::removeColumn( int index )
101{ 101{
102 QListView::removeColumn(index); 102 QListView::removeColumn(index);
103 #if QT_VERSION > 290 103 #if QT_VERSION >= 0x030000
104 if ( m_fullWidth && index == columns() ) 104 if ( m_fullWidth && index == columns() )
105 { 105 {
106 header()->setStretchEnabled( true, columns()-1 ); 106 header()->setStretchEnabled( true, columns()-1 );
107 } 107 }
108 #endif 108 #endif
109} 109}
110 110
111const QColor& OListView::alternateBackground() const 111const QColor& OListView::alternateBackground() const
112{ 112{
113 return m_alternateBackground; 113 return m_alternateBackground;
114} 114}
115 115
116void OListView::setAlternateBackground( const QColor &c ) 116void OListView::setAlternateBackground( const QColor &c )
117{ 117{
118 m_alternateBackground = c; 118 m_alternateBackground = c;
119 repaint(); 119 repaint();
120} 120}
121 121
122const QPen& OListView::columnSeparator() const 122const QPen& OListView::columnSeparator() const
123{ 123{
124 return m_columnSeparator; 124 return m_columnSeparator;
125} 125}
126 126
127void OListView::setColumnSeparator( const QPen& p ) 127void OListView::setColumnSeparator( const QPen& p )
128{ 128{
129 m_columnSeparator = p; 129 m_columnSeparator = p;
130 repaint(); 130 repaint();
131} 131}
132 132
133void OListView::expand(QListViewItem *item) 133void OListView::expand(QListViewItem *item)
134{ 134{
135 ((OListViewItem*)item)->expand(); 135 ((OListViewItem*)item)->expand();
136} 136}
137 137
138OListViewItem* OListView::childFactory() 138OListViewItem* OListView::childFactory()
139{ 139{
140 return new OListViewItem( this ); 140 return new OListViewItem( this );
141} 141}
142 142
143#ifndef QT_NO_DATASTREAM 143#ifndef QT_NO_DATASTREAM
144void OListView::serializeTo( QDataStream& s ) const 144void OListView::serializeTo( QDataStream& s ) const
145{ 145{
146 #warning Caution... the binary format is still under construction... 146 #warning Caution... the binary format is still under construction...
147 odebug << "storing OListView..." << oendl; 147 odebug << "storing OListView..." << oendl;
148 148
149 // store number of columns and the labels 149 // store number of columns and the labels
150 s << columns(); 150 s << columns();
151 for ( int i = 0; i < columns(); ++i ) 151 for ( int i = 0; i < columns(); ++i )
152 s << columnText( i ); 152 s << columnText( i );
153 153
154 // calculate the number of top-level items to serialize 154 // calculate the number of top-level items to serialize
155 int items = 0; 155 int items = 0;
156 QListViewItem* item = firstChild(); 156 QListViewItem* item = firstChild();
157 while ( item ) 157 while ( item )
158 { 158 {
159 item = item->nextSibling(); 159 item = item->nextSibling();
160 items++; 160 items++;
161 } 161 }
162 162
163 // store number of items and the items itself 163 // store number of items and the items itself
164 s << items; 164 s << items;
165 item = firstChild(); 165 item = firstChild();
166 for ( int i = 0; i < items; ++i ) 166 for ( int i = 0; i < items; ++i )
167 { 167 {
168 s << *static_cast<OListViewItem*>( item ); 168 s << *static_cast<OListViewItem*>( item );
169 item = item->nextSibling(); 169 item = item->nextSibling();
170 } 170 }
171 171
172 odebug << "OListview stored." << oendl; 172 odebug << "OListview stored." << oendl;
173} 173}
174 174
175void OListView::serializeFrom( QDataStream& s ) 175void OListView::serializeFrom( QDataStream& s )
176{ 176{
177 #warning Caution... the binary format is still under construction... 177 #warning Caution... the binary format is still under construction...
178 odebug << "loading OListView..." << oendl; 178 odebug << "loading OListView..." << oendl;
179 179
180 int cols; 180 int cols;
181 s >> cols; 181 s >> cols;
182 odebug << "read number of columns = " << cols << oendl; 182 odebug << "read number of columns = " << cols << oendl;
183 183
184 while ( columns() < cols ) addColumn( QString::null ); 184 while ( columns() < cols ) addColumn( QString::null );
185 185
186 for ( int i = 0; i < cols; ++i ) 186 for ( int i = 0; i < cols; ++i )
187 { 187 {
188 QString coltext; 188 QString coltext;
189 s >> coltext; 189 s >> coltext;
190 odebug << "read text '" << coltext << "' for column " << i << "" << oendl; 190 odebug << "read text '" << coltext << "' for column " << i << "" << oendl;
191 setColumnText( i, coltext ); 191 setColumnText( i, coltext );
192 } 192 }
193 193
194 int items; 194 int items;
195 s >> items; 195 s >> items;
196 odebug << "read number of items = " << items << oendl; 196 odebug << "read number of items = " << items << oendl;
197 197
198 for ( int i = 0; i < items; ++i ) 198 for ( int i = 0; i < items; ++i )
199 { 199 {
diff --git a/libopie2/opieui/opopupmenu.cpp b/libopie2/opieui/opopupmenu.cpp
index 50c613f..5ce048e 100644
--- a/libopie2/opieui/opopupmenu.cpp
+++ b/libopie2/opieui/opopupmenu.cpp
@@ -1,184 +1,184 @@
1/* This file is part of the KDE libraries 1/* This file is part of the KDE libraries
2 Copyright (C) 2000 Daniel M. Duley <mosfet@kde.org> 2 Copyright (C) 2000 Daniel M. Duley <mosfet@kde.org>
3 Copyright (C) 2002 Hamish Rodda <meddie@yoyo.its.monash.edu.au> 3 Copyright (C) 2002 Hamish Rodda <meddie@yoyo.its.monash.edu.au>
4 4
5 This library is free software; you can redistribute it and/or 5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public 6 modify it under the terms of the GNU Library General Public
7 License version 2 as published by the Free Software Foundation. 7 License version 2 as published by the Free Software Foundation.
8 8
9 This library is distributed in the hope that it will be useful, 9 This library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of 10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Library General Public License for more details. 12 Library General Public License for more details.
13 13
14 You should have received a copy of the GNU Library General Public License 14 You should have received a copy of the GNU Library General Public License
15 along with this library; see the file COPYING.LIB. If not, write to 15 along with this library; see the file COPYING.LIB. If not, write to
16 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 16 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17 Boston, MA 02111-1307, USA. 17 Boston, MA 02111-1307, USA.
18*/ 18*/
19 19
20/* OPIE */ 20/* OPIE */
21#include <opie2/opopupmenu.h> 21#include <opie2/opopupmenu.h>
22#include <opie2/oconfig.h> 22#include <opie2/oconfig.h>
23#include <opie2/odebug.h> 23#include <opie2/odebug.h>
24 24
25/* QT */ 25/* QT */
26#include <qdrawutil.h> 26#include <qdrawutil.h>
27#include <qtimer.h> 27#include <qtimer.h>
28 28
29 29
30using namespace Opie::Core; 30using namespace Opie::Core;
31using namespace Opie::Ui; 31using namespace Opie::Ui;
32 32
33OPopupTitle::OPopupTitle(QWidget *parent, const char *name) 33OPopupTitle::OPopupTitle(QWidget *parent, const char *name)
34 : QWidget(parent, name) 34 : QWidget(parent, name)
35{ 35{
36 setMinimumSize(16, fontMetrics().height()+8); 36 setMinimumSize(16, fontMetrics().height()+8);
37} 37}
38 38
39OPopupTitle::OPopupTitle(OPixmapEffect::GradientType /* gradient */, 39OPopupTitle::OPopupTitle(OPixmapEffect::GradientType /* gradient */,
40 const QColor &/* color */, const QColor &/* textColor */, 40 const QColor &/* color */, const QColor &/* textColor */,
41 QWidget *parent, const char *name) 41 QWidget *parent, const char *name)
42 : QWidget(parent, name) 42 : QWidget(parent, name)
43{ 43{
44 setMinimumSize(16, fontMetrics().height()+8); 44 setMinimumSize(16, fontMetrics().height()+8);
45} 45}
46 46
47OPopupTitle::OPopupTitle(const OPixmap & /* background */, const QColor &/* color */, 47OPopupTitle::OPopupTitle(const OPixmap & /* background */, const QColor &/* color */,
48 const QColor &/* textColor */, QWidget *parent, 48 const QColor &/* textColor */, QWidget *parent,
49 const char *name) 49 const char *name)
50 : QWidget(parent, name) 50 : QWidget(parent, name)
51{ 51{
52 setMinimumSize(16, fontMetrics().height()+8); 52 setMinimumSize(16, fontMetrics().height()+8);
53} 53}
54 54
55void OPopupTitle::setTitle(const QString &text, const QPixmap *icon) 55void OPopupTitle::setTitle(const QString &text, const QPixmap *icon)
56{ 56{
57 titleStr = text; 57 titleStr = text;
58 if (icon) 58 if (icon)
59 miniicon = *icon; 59 miniicon = *icon;
60 else 60 else
61 miniicon.resize(0, 0); 61 miniicon.resize(0, 0);
62 62
63 int w = miniicon.width()+fontMetrics().width(titleStr); 63 int w = miniicon.width()+fontMetrics().width(titleStr);
64 int h = QMAX( fontMetrics().height(), miniicon.height() ); 64 int h = QMAX( fontMetrics().height(), miniicon.height() );
65 setMinimumSize( w+16, h+8 ); 65 setMinimumSize( w+16, h+8 );
66} 66}
67 67
68void OPopupTitle::setText( const QString &text ) 68void OPopupTitle::setText( const QString &text )
69{ 69{
70 titleStr = text; 70 titleStr = text;
71 int w = miniicon.width()+fontMetrics().width(titleStr); 71 int w = miniicon.width()+fontMetrics().width(titleStr);
72 int h = QMAX( fontMetrics().height(), miniicon.height() ); 72 int h = QMAX( fontMetrics().height(), miniicon.height() );
73 setMinimumSize( w+16, h+8 ); 73 setMinimumSize( w+16, h+8 );
74} 74}
75 75
76void OPopupTitle::setIcon( const QPixmap &pix ) 76void OPopupTitle::setIcon( const QPixmap &pix )
77{ 77{
78 miniicon = pix; 78 miniicon = pix;
79 int w = miniicon.width()+fontMetrics().width(titleStr); 79 int w = miniicon.width()+fontMetrics().width(titleStr);
80 int h = QMAX( fontMetrics().height(), miniicon.height() ); 80 int h = QMAX( fontMetrics().height(), miniicon.height() );
81 setMinimumSize( w+16, h+8 ); 81 setMinimumSize( w+16, h+8 );
82} 82}
83 83
84void OPopupTitle::paintEvent(QPaintEvent *) 84void OPopupTitle::paintEvent(QPaintEvent *)
85{ 85{
86 QRect r(rect()); 86 QRect r(rect());
87 QPainter p(this); 87 QPainter p(this);
88 #if QT_VERSION > 290 88 #if QT_VERSION >= 0x030000
89 qApp->style().drawPrimitive(QStyle::PE_HeaderSection, &p, r, palette().active()); 89 qApp->style().drawPrimitive(QStyle::PE_HeaderSection, &p, r, palette().active());
90 #else 90 #else
91 #warning OPopupMenu is not fully functional on Qt2 91 #warning OPopupMenu is not fully functional on Qt2
92 #endif 92 #endif
93 93
94 if (!miniicon.isNull()) 94 if (!miniicon.isNull())
95 p.drawPixmap(4, (r.height()-miniicon.height())/2, miniicon); 95 p.drawPixmap(4, (r.height()-miniicon.height())/2, miniicon);
96 96
97 if (!titleStr.isNull()) 97 if (!titleStr.isNull())
98 { 98 {
99 p.setPen(palette().active().text()); 99 p.setPen(palette().active().text());
100 QFont f = p.font(); 100 QFont f = p.font();
101 f.setBold(true); 101 f.setBold(true);
102 p.setFont(f); 102 p.setFont(f);
103 if(!miniicon.isNull()) 103 if(!miniicon.isNull())
104 { 104 {
105 p.drawText(miniicon.width()+8, 0, width()-(miniicon.width()+8), 105 p.drawText(miniicon.width()+8, 0, width()-(miniicon.width()+8),
106 height(), AlignLeft | AlignVCenter | SingleLine, 106 height(), AlignLeft | AlignVCenter | SingleLine,
107 titleStr); 107 titleStr);
108 } 108 }
109 else 109 else
110 { 110 {
111 p.drawText(0, 0, width(), height(), 111 p.drawText(0, 0, width(), height(),
112 AlignCenter | SingleLine, titleStr); 112 AlignCenter | SingleLine, titleStr);
113 } 113 }
114 } 114 }
115 115
116 p.setPen(palette().active().highlight()); 116 p.setPen(palette().active().highlight());
117 p.drawLine(0, 0, r.right(), 0); 117 p.drawLine(0, 0, r.right(), 0);
118} 118}
119 119
120QSize OPopupTitle::sizeHint() const 120QSize OPopupTitle::sizeHint() const
121{ 121{
122 return(minimumSize()); 122 return(minimumSize());
123} 123}
124 124
125class OPopupMenu::OPopupMenuPrivate 125class OPopupMenu::OPopupMenuPrivate
126{ 126{
127public: 127public:
128 OPopupMenuPrivate () 128 OPopupMenuPrivate ()
129 : noMatches(false) 129 : noMatches(false)
130 , shortcuts(false) 130 , shortcuts(false)
131 , autoExec(false) 131 , autoExec(false)
132 , lastHitIndex(-1) 132 , lastHitIndex(-1)
133 , m_ctxMenu(0) 133 , m_ctxMenu(0)
134 {} 134 {}
135 135
136 ~OPopupMenuPrivate () 136 ~OPopupMenuPrivate ()
137 { 137 {
138 delete m_ctxMenu; 138 delete m_ctxMenu;
139 } 139 }
140 140
141 QString m_lastTitle; 141 QString m_lastTitle;
142 142
143 // variables for keyboard navigation 143 // variables for keyboard navigation
144 QTimer clearTimer; 144 QTimer clearTimer;
145 145
146 bool noMatches : 1; 146 bool noMatches : 1;
147 bool shortcuts : 1; 147 bool shortcuts : 1;
148 bool autoExec : 1; 148 bool autoExec : 1;
149 149
150 QString keySeq; 150 QString keySeq;
151 QString originalText; 151 QString originalText;
152 152
153 int lastHitIndex; 153 int lastHitIndex;
154 154
155 // support for RMB menus on menus 155 // support for RMB menus on menus
156 QPopupMenu* m_ctxMenu; 156 QPopupMenu* m_ctxMenu;
157 static bool s_continueCtxMenuShow; 157 static bool s_continueCtxMenuShow;
158 static int s_highlightedItem; 158 static int s_highlightedItem;
159 static OPopupMenu* s_contextedMenu; 159 static OPopupMenu* s_contextedMenu;
160}; 160};
161 161
162int OPopupMenu::OPopupMenuPrivate::s_highlightedItem(-1); 162int OPopupMenu::OPopupMenuPrivate::s_highlightedItem(-1);
163OPopupMenu* OPopupMenu::OPopupMenuPrivate::s_contextedMenu(0); 163OPopupMenu* OPopupMenu::OPopupMenuPrivate::s_contextedMenu(0);
164bool OPopupMenu::OPopupMenuPrivate::s_continueCtxMenuShow(true); 164bool OPopupMenu::OPopupMenuPrivate::s_continueCtxMenuShow(true);
165 165
166OPopupMenu::OPopupMenu(QWidget *parent, const char *name) 166OPopupMenu::OPopupMenu(QWidget *parent, const char *name)
167 : QPopupMenu(parent, name) 167 : QPopupMenu(parent, name)
168{ 168{
169 d = new OPopupMenuPrivate; 169 d = new OPopupMenuPrivate;
170 resetKeyboardVars(); 170 resetKeyboardVars();
171 connect(&(d->clearTimer), SIGNAL(timeout()), SLOT(resetKeyboardVars())); 171 connect(&(d->clearTimer), SIGNAL(timeout()), SLOT(resetKeyboardVars()));
172} 172}
173 173
174OPopupMenu::~OPopupMenu() 174OPopupMenu::~OPopupMenu()
175{ 175{
176 if (OPopupMenuPrivate::s_contextedMenu == this) 176 if (OPopupMenuPrivate::s_contextedMenu == this)
177 { 177 {
178 OPopupMenuPrivate::s_contextedMenu = 0; 178 OPopupMenuPrivate::s_contextedMenu = 0;
179 OPopupMenuPrivate::s_highlightedItem = -1; 179 OPopupMenuPrivate::s_highlightedItem = -1;
180 } 180 }
181 181
182 delete d; 182 delete d;
183} 183}
184 184
@@ -456,145 +456,145 @@ void OPopupMenu::resetKeyboardVars(bool noMatches /* = false */)
456} 456}
457 457
458void OPopupMenu::setKeyboardShortcutsEnabled(bool enable) 458void OPopupMenu::setKeyboardShortcutsEnabled(bool enable)
459{ 459{
460 d->shortcuts = enable; 460 d->shortcuts = enable;
461} 461}
462 462
463void OPopupMenu::setKeyboardShortcutsExecute(bool enable) 463void OPopupMenu::setKeyboardShortcutsExecute(bool enable)
464{ 464{
465 d->autoExec = enable; 465 d->autoExec = enable;
466} 466}
467/** 467/**
468 * End keyboard navigation. 468 * End keyboard navigation.
469 */ 469 */
470 470
471/** 471/**
472 * RMB menus on menus 472 * RMB menus on menus
473 */ 473 */
474QPopupMenu* OPopupMenu::contextMenu() 474QPopupMenu* OPopupMenu::contextMenu()
475{ 475{
476 if (!d->m_ctxMenu) 476 if (!d->m_ctxMenu)
477 { 477 {
478 d->m_ctxMenu = new QPopupMenu(this); 478 d->m_ctxMenu = new QPopupMenu(this);
479 installEventFilter(this); 479 installEventFilter(this);
480 connect(d->m_ctxMenu, SIGNAL(aboutToHide()), this, SLOT(ctxMenuHiding())); 480 connect(d->m_ctxMenu, SIGNAL(aboutToHide()), this, SLOT(ctxMenuHiding()));
481 } 481 }
482 482
483 return d->m_ctxMenu; 483 return d->m_ctxMenu;
484} 484}
485 485
486void OPopupMenu::cancelContextMenuShow() 486void OPopupMenu::cancelContextMenuShow()
487{ 487{
488 OPopupMenuPrivate::s_continueCtxMenuShow = false; 488 OPopupMenuPrivate::s_continueCtxMenuShow = false;
489} 489}
490 490
491int OPopupMenu::contextMenuFocusItem() 491int OPopupMenu::contextMenuFocusItem()
492{ 492{
493 return OPopupMenuPrivate::s_highlightedItem; 493 return OPopupMenuPrivate::s_highlightedItem;
494} 494}
495 495
496OPopupMenu* OPopupMenu::contextMenuFocus() 496OPopupMenu* OPopupMenu::contextMenuFocus()
497{ 497{
498 return OPopupMenuPrivate::s_contextedMenu; 498 return OPopupMenuPrivate::s_contextedMenu;
499} 499}
500 500
501void OPopupMenu::itemHighlighted(int /* whichItem */) 501void OPopupMenu::itemHighlighted(int /* whichItem */)
502{ 502{
503 if (!d->m_ctxMenu || !d->m_ctxMenu->isVisible()) 503 if (!d->m_ctxMenu || !d->m_ctxMenu->isVisible())
504 { 504 {
505 return; 505 return;
506 } 506 }
507 507
508 d->m_ctxMenu->hide(); 508 d->m_ctxMenu->hide();
509 showCtxMenu(mapFromGlobal(QCursor::pos())); 509 showCtxMenu(mapFromGlobal(QCursor::pos()));
510} 510}
511 511
512void OPopupMenu::showCtxMenu(QPoint pos) 512void OPopupMenu::showCtxMenu(QPoint pos)
513{ 513{
514 OPopupMenuPrivate::s_highlightedItem = idAt(pos); 514 OPopupMenuPrivate::s_highlightedItem = idAt(pos);
515 515
516 if (OPopupMenuPrivate::s_highlightedItem == -1) 516 if (OPopupMenuPrivate::s_highlightedItem == -1)
517 { 517 {
518 OPopupMenuPrivate::s_contextedMenu = 0; 518 OPopupMenuPrivate::s_contextedMenu = 0;
519 return; 519 return;
520 } 520 }
521 521
522 emit aboutToShowContextMenu(this, OPopupMenuPrivate::s_highlightedItem, d->m_ctxMenu); 522 emit aboutToShowContextMenu(this, OPopupMenuPrivate::s_highlightedItem, d->m_ctxMenu);
523 523
524 if (!OPopupMenuPrivate::s_continueCtxMenuShow) 524 if (!OPopupMenuPrivate::s_continueCtxMenuShow)
525 { 525 {
526 OPopupMenuPrivate::s_continueCtxMenuShow = true; 526 OPopupMenuPrivate::s_continueCtxMenuShow = true;
527 return; 527 return;
528 } 528 }
529 529
530 OPopupMenuPrivate::s_contextedMenu = this; 530 OPopupMenuPrivate::s_contextedMenu = this;
531 d->m_ctxMenu->popup(this->mapToGlobal(pos)); 531 d->m_ctxMenu->popup(this->mapToGlobal(pos));
532 connect(this, SIGNAL(highlighted(int)), this, SLOT(itemHighlighted(int))); 532 connect(this, SIGNAL(highlighted(int)), this, SLOT(itemHighlighted(int)));
533} 533}
534 534
535void OPopupMenu::ctxMenuHiding() 535void OPopupMenu::ctxMenuHiding()
536{ 536{
537 disconnect(this, SIGNAL(highlighted(int)), this, SLOT(itemHighlighted(int))); 537 disconnect(this, SIGNAL(highlighted(int)), this, SLOT(itemHighlighted(int)));
538 OPopupMenuPrivate::s_continueCtxMenuShow = true; 538 OPopupMenuPrivate::s_continueCtxMenuShow = true;
539} 539}
540 540
541bool OPopupMenu::eventFilter(QObject* obj, QEvent* event) 541bool OPopupMenu::eventFilter(QObject* obj, QEvent* event)
542{ 542{
543 if (d->m_ctxMenu && obj == this) 543 if (d->m_ctxMenu && obj == this)
544 { 544 {
545 if (event->type() == QEvent::MouseButtonRelease) 545 if (event->type() == QEvent::MouseButtonRelease)
546 { 546 {
547 if (d->m_ctxMenu->isVisible()) 547 if (d->m_ctxMenu->isVisible())
548 { 548 {
549 return true; 549 return true;
550 } 550 }
551 } 551 }
552 #if QT_VERSION > 290 552 #if QT_VERSION >= 0x030000
553 else if (event->type() == QEvent::ContextMenu) 553 else if (event->type() == QEvent::ContextMenu)
554 #else 554 #else
555 else if ( (event->type() == QEvent::MouseButtonPress) && 555 else if ( (event->type() == QEvent::MouseButtonPress) &&
556 ( (QMouseEvent*) event )->button() == QMouseEvent::RightButton ) 556 ( (QMouseEvent*) event )->button() == QMouseEvent::RightButton )
557 #endif 557 #endif
558 { 558 {
559 showCtxMenu(mapFromGlobal(QCursor::pos())); 559 showCtxMenu(mapFromGlobal(QCursor::pos()));
560 return true; 560 return true;
561 } 561 }
562 } 562 }
563 563
564 return QWidget::eventFilter(obj, event); 564 return QWidget::eventFilter(obj, event);
565} 565}
566 566
567void OPopupMenu::hideEvent(QHideEvent*) 567void OPopupMenu::hideEvent(QHideEvent*)
568{ 568{
569 if (d->m_ctxMenu) 569 if (d->m_ctxMenu)
570 { 570 {
571 d->m_ctxMenu->hide(); 571 d->m_ctxMenu->hide();
572 } 572 }
573} 573}
574/** 574/**
575 * end of RMB menus on menus support 575 * end of RMB menus on menus support
576 */ 576 */
577 577
578// Obsolete 578// Obsolete
579OPopupMenu::OPopupMenu(const QString& title, QWidget *parent, const char *name) 579OPopupMenu::OPopupMenu(const QString& title, QWidget *parent, const char *name)
580 : QPopupMenu(parent, name) 580 : QPopupMenu(parent, name)
581{ 581{
582 d = new OPopupMenuPrivate; 582 d = new OPopupMenuPrivate;
583 setTitle(title); 583 setTitle(title);
584} 584}
585 585
586// Obsolete 586// Obsolete
587void OPopupMenu::setTitle(const QString &title) 587void OPopupMenu::setTitle(const QString &title)
588{ 588{
589 OPopupTitle *titleItem = new OPopupTitle(); 589 OPopupTitle *titleItem = new OPopupTitle();
590 titleItem->setTitle(title); 590 titleItem->setTitle(title);
591 insertItem(titleItem); 591 insertItem(titleItem);
592 d->m_lastTitle = title; 592 d->m_lastTitle = title;
593} 593}
594 594
595void OPopupTitle::virtual_hook( int, void* ) 595void OPopupTitle::virtual_hook( int, void* )
596{ /*BASE::virtual_hook( id, data );*/ } 596{ /*BASE::virtual_hook( id, data );*/ }
597 597
598void OPopupMenu::virtual_hook( int, void* ) 598void OPopupMenu::virtual_hook( int, void* )
599{ /*BASE::virtual_hook( id, data );*/ } 599{ /*BASE::virtual_hook( id, data );*/ }
600 600
diff --git a/libopie2/opieui/oselector.cpp b/libopie2/opieui/oselector.cpp
index 05543c5..936dfe6 100644
--- a/libopie2/opieui/oselector.cpp
+++ b/libopie2/opieui/oselector.cpp
@@ -46,193 +46,193 @@ OXYSelector::OXYSelector( QWidget *parent, const char *name )
46 minX = 0; 46 minX = 0;
47 minY = 0; 47 minY = 0;
48 maxX = 100; 48 maxX = 100;
49 maxY = 100; 49 maxY = 100;
50 store.setOptimization( QPixmap::BestOptim ); 50 store.setOptimization( QPixmap::BestOptim );
51 store.resize( STORE_W2, STORE_W2 ); 51 store.resize( STORE_W2, STORE_W2 );
52} 52}
53 53
54 54
55OXYSelector::~OXYSelector() 55OXYSelector::~OXYSelector()
56{} 56{}
57 57
58 58
59void OXYSelector::setRange( int _minX, int _minY, int _maxX, int _maxY ) 59void OXYSelector::setRange( int _minX, int _minY, int _maxX, int _maxY )
60{ 60{
61 px = 2; 61 px = 2;
62 py = 2; 62 py = 2;
63 minX = _minX; 63 minX = _minX;
64 minY = _minY; 64 minY = _minY;
65 maxX = _maxX; 65 maxX = _maxX;
66 maxY = _maxY; 66 maxY = _maxY;
67} 67}
68 68
69void OXYSelector::setValues( int _xPos, int _yPos ) 69void OXYSelector::setValues( int _xPos, int _yPos )
70{ 70{
71 xPos = _xPos; 71 xPos = _xPos;
72 yPos = _yPos; 72 yPos = _yPos;
73 73
74 if ( xPos > maxX ) 74 if ( xPos > maxX )
75 xPos = maxX; 75 xPos = maxX;
76 else if ( xPos < minX ) 76 else if ( xPos < minX )
77 xPos = minX; 77 xPos = minX;
78 78
79 if ( yPos > maxY ) 79 if ( yPos > maxY )
80 yPos = maxY; 80 yPos = maxY;
81 else if ( yPos < minY ) 81 else if ( yPos < minY )
82 yPos = minY; 82 yPos = minY;
83 83
84 int xp = 2 + (width() - 4) * xPos / (maxX - minX); 84 int xp = 2 + (width() - 4) * xPos / (maxX - minX);
85 int yp = height() - 2 - (height() - 4) * yPos / (maxY - minY); 85 int yp = height() - 2 - (height() - 4) * yPos / (maxY - minY);
86 86
87 setPosition( xp, yp ); 87 setPosition( xp, yp );
88} 88}
89 89
90QRect OXYSelector::contentsRect() const 90QRect OXYSelector::contentsRect() const
91{ 91{
92 return QRect( 2, 2, width()-4, height()-4 ); 92 return QRect( 2, 2, width()-4, height()-4 );
93} 93}
94 94
95void OXYSelector::paintEvent( QPaintEvent *ev ) 95void OXYSelector::paintEvent( QPaintEvent *ev )
96{ 96{
97 QRect cursorRect( px - STORE_W, py - STORE_W, STORE_W2, STORE_W2); 97 QRect cursorRect( px - STORE_W, py - STORE_W, STORE_W2, STORE_W2);
98 QRect paintRect = ev->rect(); 98 QRect paintRect = ev->rect();
99 99
100 QPainter painter; 100 QPainter painter;
101 painter.begin( this ); 101 painter.begin( this );
102 102
103 QBrush brush; 103 QBrush brush;
104 qDrawShadePanel( &painter, 0, 0, width(), height(), colorGroup(), 104 qDrawShadePanel( &painter, 0, 0, width(), height(), colorGroup(),
105 TRUE, 2, &brush ); 105 TRUE, 2, &brush );
106 106
107 drawContents( &painter ); 107 drawContents( &painter );
108 if (paintRect.contains(cursorRect)) 108 if (paintRect.contains(cursorRect))
109 { 109 {
110 bitBlt( &store, 0, 0, this, px - STORE_W, py - STORE_W, 110 bitBlt( &store, 0, 0, this, px - STORE_W, py - STORE_W,
111 STORE_W2, STORE_W2, CopyROP ); 111 STORE_W2, STORE_W2, CopyROP );
112 drawCursor( &painter, px, py ); 112 drawCursor( &painter, px, py );
113 } 113 }
114 else if (paintRect.intersects(cursorRect)) 114 else if (paintRect.intersects(cursorRect))
115 { 115 {
116 repaint( cursorRect, false); 116 repaint( cursorRect, false);
117 } 117 }
118 118
119 painter.end(); 119 painter.end();
120} 120}
121 121
122void OXYSelector::mousePressEvent( QMouseEvent *e ) 122void OXYSelector::mousePressEvent( QMouseEvent *e )
123{ 123{
124 int xVal, yVal; 124 int xVal, yVal;
125 valuesFromPosition( e->pos().x() - 2, e->pos().y() - 2, xVal, yVal ); 125 valuesFromPosition( e->pos().x() - 2, e->pos().y() - 2, xVal, yVal );
126 setValues( xVal, yVal ); 126 setValues( xVal, yVal );
127 127
128 emit valueChanged( xPos, yPos ); 128 emit valueChanged( xPos, yPos );
129} 129}
130 130
131void OXYSelector::mouseMoveEvent( QMouseEvent *e ) 131void OXYSelector::mouseMoveEvent( QMouseEvent *e )
132{ 132{
133 int xVal, yVal; 133 int xVal, yVal;
134 valuesFromPosition( e->pos().x() - 2, e->pos().y() - 2, xVal, yVal ); 134 valuesFromPosition( e->pos().x() - 2, e->pos().y() - 2, xVal, yVal );
135 setValues( xVal, yVal ); 135 setValues( xVal, yVal );
136 136
137 emit valueChanged( xPos, yPos ); 137 emit valueChanged( xPos, yPos );
138} 138}
139 139
140void OXYSelector::wheelEvent( QWheelEvent *e ) 140void OXYSelector::wheelEvent( QWheelEvent *e )
141{ 141{
142 #if QT_VERSION > 290 142 #if QT_VERSION >= 0x030000
143 if ( e->orientation() == Qt::Horizontal ) 143 if ( e->orientation() == Qt::Horizontal )
144 setValues( xValue() + e->delta()/120, yValue() ); 144 setValues( xValue() + e->delta()/120, yValue() );
145 else 145 else
146 setValues( xValue(), yValue() + e->delta()/120 ); 146 setValues( xValue(), yValue() + e->delta()/120 );
147 147
148 emit valueChanged( xPos, yPos ); 148 emit valueChanged( xPos, yPos );
149 #else 149 #else
150 Q_UNUSED( e ) 150 Q_UNUSED( e )
151 #endif 151 #endif
152} 152}
153 153
154void OXYSelector::valuesFromPosition( int x, int y, int &xVal, int &yVal ) const 154void OXYSelector::valuesFromPosition( int x, int y, int &xVal, int &yVal ) const
155{ 155{
156 xVal = ( (maxX-minX) * (x-2) ) / ( width()-4 ); 156 xVal = ( (maxX-minX) * (x-2) ) / ( width()-4 );
157 yVal = maxY - ( ( (maxY-minY) * (y-2) ) / ( height()-4 ) ); 157 yVal = maxY - ( ( (maxY-minY) * (y-2) ) / ( height()-4 ) );
158 158
159 if ( xVal > maxX ) 159 if ( xVal > maxX )
160 xVal = maxX; 160 xVal = maxX;
161 else if ( xVal < minX ) 161 else if ( xVal < minX )
162 xVal = minX; 162 xVal = minX;
163 163
164 if ( yVal > maxY ) 164 if ( yVal > maxY )
165 yVal = maxY; 165 yVal = maxY;
166 else if ( yVal < minY ) 166 else if ( yVal < minY )
167 yVal = minY; 167 yVal = minY;
168} 168}
169 169
170void OXYSelector::setPosition( int xp, int yp ) 170void OXYSelector::setPosition( int xp, int yp )
171{ 171{
172 if ( xp < 2 ) 172 if ( xp < 2 )
173 xp = 2; 173 xp = 2;
174 else if ( xp > width() - 2 ) 174 else if ( xp > width() - 2 )
175 xp = width() - 2; 175 xp = width() - 2;
176 176
177 if ( yp < 2 ) 177 if ( yp < 2 )
178 yp = 2; 178 yp = 2;
179 else if ( yp > height() - 2 ) 179 else if ( yp > height() - 2 )
180 yp = height() - 2; 180 yp = height() - 2;
181 181
182 QPainter painter; 182 QPainter painter;
183 painter.begin( this ); 183 painter.begin( this );
184 184
185 bitBlt( this, px - STORE_W, py - STORE_W, &store, 0, 0, 185 bitBlt( this, px - STORE_W, py - STORE_W, &store, 0, 0,
186 STORE_W2, STORE_W2, CopyROP ); 186 STORE_W2, STORE_W2, CopyROP );
187 bitBlt( &store, 0, 0, this, xp - STORE_W, yp - STORE_W, 187 bitBlt( &store, 0, 0, this, xp - STORE_W, yp - STORE_W,
188 STORE_W2, STORE_W2, CopyROP ); 188 STORE_W2, STORE_W2, CopyROP );
189 drawCursor( &painter, xp, yp ); 189 drawCursor( &painter, xp, yp );
190 px = xp; 190 px = xp;
191 py = yp; 191 py = yp;
192 192
193 painter.end(); 193 painter.end();
194} 194}
195 195
196void OXYSelector::drawContents( QPainter * ) 196void OXYSelector::drawContents( QPainter * )
197{} 197{}
198 198
199 199
200void OXYSelector::drawCursor( QPainter *p, int xp, int yp ) 200void OXYSelector::drawCursor( QPainter *p, int xp, int yp )
201{ 201{
202 p->setPen( QPen( white ) ); 202 p->setPen( QPen( white ) );
203 203
204 p->drawLine( xp - 6, yp - 6, xp - 2, yp - 2 ); 204 p->drawLine( xp - 6, yp - 6, xp - 2, yp - 2 );
205 p->drawLine( xp - 6, yp + 6, xp - 2, yp + 2 ); 205 p->drawLine( xp - 6, yp + 6, xp - 2, yp + 2 );
206 p->drawLine( xp + 6, yp - 6, xp + 2, yp - 2 ); 206 p->drawLine( xp + 6, yp - 6, xp + 2, yp - 2 );
207 p->drawLine( xp + 6, yp + 6, xp + 2, yp + 2 ); 207 p->drawLine( xp + 6, yp + 6, xp + 2, yp + 2 );
208} 208}
209 209
210//----------------------------------------------------------------------------- 210//-----------------------------------------------------------------------------
211/* 211/*
212 * 1D value selector with contents drawn by derived class. 212 * 1D value selector with contents drawn by derived class.
213 * See OColorDialog for example. 213 * See OColorDialog for example.
214 */ 214 */
215 215
216 216
217OSelector::OSelector( QWidget *parent, const char *name ) 217OSelector::OSelector( QWidget *parent, const char *name )
218 : QWidget( parent, name ), QRangeControl() 218 : QWidget( parent, name ), QRangeControl()
219{ 219{
220 _orientation = Horizontal; 220 _orientation = Horizontal;
221 _indent = TRUE; 221 _indent = TRUE;
222} 222}
223 223
224OSelector::OSelector( Orientation o, QWidget *parent, const char *name ) 224OSelector::OSelector( Orientation o, QWidget *parent, const char *name )
225 : QWidget( parent, name ), QRangeControl() 225 : QWidget( parent, name ), QRangeControl()
226{ 226{
227 _orientation = o; 227 _orientation = o;
228 _indent = TRUE; 228 _indent = TRUE;
229} 229}
230 230
231 231
232OSelector::~OSelector() 232OSelector::~OSelector()
233{} 233{}
234 234
235 235
236QRect OSelector::contentsRect() const 236QRect OSelector::contentsRect() const
237{ 237{
238 if ( orientation() == Vertical ) 238 if ( orientation() == Vertical )
diff --git a/libopie2/opieui/oselector.h b/libopie2/opieui/oselector.h
index fe75a46..3dbdb38 100644
--- a/libopie2/opieui/oselector.h
+++ b/libopie2/opieui/oselector.h
@@ -115,208 +115,208 @@ protected:
115 /** 115 /**
116 * @reimplemented 116 * @reimplemented
117 */ 117 */
118 virtual void wheelEvent( QWheelEvent * ); 118 virtual void wheelEvent( QWheelEvent * );
119 /** 119 /**
120 * Converts a pixel position to its corresponding values. 120 * Converts a pixel position to its corresponding values.
121 */ 121 */
122 void valuesFromPosition( int x, int y, int& xVal, int& yVal ) const; 122 void valuesFromPosition( int x, int y, int& xVal, int& yVal ) const;
123 123
124private: 124private:
125 void setPosition( int xp, int yp ); 125 void setPosition( int xp, int yp );
126 int px; 126 int px;
127 int py; 127 int py;
128 int xPos; 128 int xPos;
129 int yPos; 129 int yPos;
130 int minX; 130 int minX;
131 int maxX; 131 int maxX;
132 int minY; 132 int minY;
133 int maxY; 133 int maxY;
134 QPixmap store; 134 QPixmap store;
135 135
136private: 136private:
137 class OXYSelectorPrivate; 137 class OXYSelectorPrivate;
138 OXYSelectorPrivate *d; 138 OXYSelectorPrivate *d;
139}; 139};
140 140
141 141
142/** 142/**
143 * OSelector is the base class for other widgets which 143 * OSelector is the base class for other widgets which
144 * provides the ability to choose from a one-dimensional 144 * provides the ability to choose from a one-dimensional
145 * range of values. An example is the @ref OGradientSelector 145 * range of values. An example is the @ref OGradientSelector
146 * which allows to choose from a range of colors. 146 * which allows to choose from a range of colors.
147 * 147 *
148 * A custom drawing routine for the widget surface has 148 * A custom drawing routine for the widget surface has
149 * to be provided by the subclass. 149 * to be provided by the subclass.
150 */ 150 */
151class OSelector : public QWidget, public QRangeControl 151class OSelector : public QWidget, public QRangeControl
152{ 152{
153 Q_OBJECT 153 Q_OBJECT
154 Q_PROPERTY( int value READ value WRITE setValue ) 154 Q_PROPERTY( int value READ value WRITE setValue )
155 Q_PROPERTY( int minValue READ minValue WRITE setMinValue ) 155 Q_PROPERTY( int minValue READ minValue WRITE setMinValue )
156 Q_PROPERTY( int maxValue READ maxValue WRITE setMaxValue ) 156 Q_PROPERTY( int maxValue READ maxValue WRITE setMaxValue )
157public: 157public:
158 158
159 /** 159 /**
160 * Constructs a horizontal one-dimensional selection widget. 160 * Constructs a horizontal one-dimensional selection widget.
161 */ 161 */
162 OSelector( QWidget *parent=0, const char *name=0 ); 162 OSelector( QWidget *parent=0, const char *name=0 );
163 /** 163 /**
164 * Constructs a one-dimensional selection widget with 164 * Constructs a one-dimensional selection widget with
165 * a given orientation. 165 * a given orientation.
166 */ 166 */
167 OSelector( Orientation o, QWidget *parent = 0L, const char *name = 0L ); 167 OSelector( Orientation o, QWidget *parent = 0L, const char *name = 0L );
168 /* 168 /*
169 * Destructs the widget. 169 * Destructs the widget.
170 */ 170 */
171 ~OSelector(); 171 ~OSelector();
172 172
173 /** 173 /**
174 * @return the orientation of the widget. 174 * @return the orientation of the widget.
175 */ 175 */
176 Orientation orientation() const 176 Orientation orientation() const
177 {return _orientation; } 177 {return _orientation; }
178 178
179 /** 179 /**
180 * @return the rectangle on which subclasses should draw. 180 * @return the rectangle on which subclasses should draw.
181 */ 181 */
182 QRect contentsRect() const; 182 QRect contentsRect() const;
183 183
184 /** 184 /**
185 * Sets the indent option of the widget to i. 185 * Sets the indent option of the widget to i.
186 * This determines whether a shaded frame is drawn. 186 * This determines whether a shaded frame is drawn.
187 */ 187 */
188 void setIndent( bool i ) 188 void setIndent( bool i )
189 {_indent = i; } 189 {_indent = i; }
190 /** 190 /**
191 * @return whether the indent option is set. 191 * @return whether the indent option is set.
192 */ 192 */
193 bool indent() const 193 bool indent() const
194 {return _indent; } 194 {return _indent; }
195 195
196 /** 196 /**
197 * Sets the value. 197 * Sets the value.
198 */ 198 */
199 void setValue(int value) 199 void setValue(int value)
200 { QRangeControl::setValue(value); } 200 { QRangeControl::setValue(value); }
201 201
202 /** 202 /**
203 * @returns the value. 203 * @returns the value.
204 */ 204 */
205 int value() const 205 int value() const
206 { return QRangeControl::value(); } 206 { return QRangeControl::value(); }
207 207
208 /** 208 /**
209 * Sets the min value. 209 * Sets the min value.
210 */ 210 */
211 #if ( QT_VERSION > 290 ) 211 #if ( QT_VERSION >= 0x030000 )
212 void setMinValue(int value) { QRangeControl::setMinValue(value); } 212 void setMinValue(int value) { QRangeControl::setMinValue(value); }
213 #else 213 #else
214 void setMinValue(int value) { QRangeControl::setRange(value,QRangeControl::maxValue()); } 214 void setMinValue(int value) { QRangeControl::setRange(value,QRangeControl::maxValue()); }
215 #endif 215 #endif
216 216
217 /** 217 /**
218 * @return the min value. 218 * @return the min value.
219 */ 219 */
220 int minValue() const 220 int minValue() const
221 { return QRangeControl::minValue(); } 221 { return QRangeControl::minValue(); }
222 222
223 /** 223 /**
224 * Sets the max value. 224 * Sets the max value.
225 */ 225 */
226 #if ( QT_VERSION > 290 ) 226 #if ( QT_VERSION >= 0x030000 )
227 void setMaxValue(int value) { QRangeControl::setMaxValue(value); } 227 void setMaxValue(int value) { QRangeControl::setMaxValue(value); }
228 #else 228 #else
229 void setMaxValue(int value) { QRangeControl::setRange(QRangeControl::minValue(),value); } 229 void setMaxValue(int value) { QRangeControl::setRange(QRangeControl::minValue(),value); }
230 #endif 230 #endif
231 231
232 /** 232 /**
233 * @return the max value. 233 * @return the max value.
234 */ 234 */
235 int maxValue() const 235 int maxValue() const
236 { return QRangeControl::maxValue(); } 236 { return QRangeControl::maxValue(); }
237 237
238signals: 238signals:
239 /** 239 /**
240 * This signal is emitted whenever the user chooses a value, 240 * This signal is emitted whenever the user chooses a value,
241 * e.g. by clicking with the mouse on the widget. 241 * e.g. by clicking with the mouse on the widget.
242 */ 242 */
243 void valueChanged( int value ); 243 void valueChanged( int value );
244 244
245protected: 245protected:
246 /** 246 /**
247 * Override this function to draw the contents of the control. 247 * Override this function to draw the contents of the control.
248 * The default implementation does nothing. 248 * The default implementation does nothing.
249 * 249 *
250 * Draw only within contentsRect(). 250 * Draw only within contentsRect().
251 */ 251 */
252 virtual void drawContents( QPainter * ); 252 virtual void drawContents( QPainter * );
253 /** 253 /**
254 * Override this function to draw the cursor which 254 * Override this function to draw the cursor which
255 * indicates the current value. This function is 255 * indicates the current value. This function is
256 * always called twice, once with argument show=false 256 * always called twice, once with argument show=false
257 * to clear the old cursor, once with argument show=true 257 * to clear the old cursor, once with argument show=true
258 * to draw the new one. 258 * to draw the new one.
259 */ 259 */
260 virtual void drawArrow( QPainter *painter, bool show, const QPoint &pos ); 260 virtual void drawArrow( QPainter *painter, bool show, const QPoint &pos );
261 261
262 /** 262 /**
263 * @reimplemented 263 * @reimplemented
264 */ 264 */
265 virtual void valueChange(); 265 virtual void valueChange();
266 /** 266 /**
267 * @reimplemented 267 * @reimplemented
268 */ 268 */
269 virtual void paintEvent( QPaintEvent * ); 269 virtual void paintEvent( QPaintEvent * );
270 /** 270 /**
271 * @reimplemented 271 * @reimplemented
272 */ 272 */
273 virtual void mousePressEvent( QMouseEvent *e ); 273 virtual void mousePressEvent( QMouseEvent *e );
274 /** 274 /**
275 * @reimplemented 275 * @reimplemented
276 */ 276 */
277 virtual void mouseMoveEvent( QMouseEvent *e ); 277 virtual void mouseMoveEvent( QMouseEvent *e );
278 /** 278 /**
279 * @reimplemented 279 * @reimplemented
280 */ 280 */
281 virtual void wheelEvent( QWheelEvent * ); 281 virtual void wheelEvent( QWheelEvent * );
282 282
283private: 283private:
284 QPoint calcArrowPos( int val ); 284 QPoint calcArrowPos( int val );
285 void moveArrow( const QPoint &pos ); 285 void moveArrow( const QPoint &pos );
286 286
287 Orientation _orientation; 287 Orientation _orientation;
288 bool _indent; 288 bool _indent;
289 289
290private: 290private:
291 class OSelectorPrivate; 291 class OSelectorPrivate;
292 OSelectorPrivate *d; 292 OSelectorPrivate *d;
293}; 293};
294 294
295 295
296/** 296/**
297 * The OGradientSelector widget allows the user to choose 297 * The OGradientSelector widget allows the user to choose
298 * from a one-dimensional range of colors which is given as a 298 * from a one-dimensional range of colors which is given as a
299 * gradient between two colors provided by the programmer. 299 * gradient between two colors provided by the programmer.
300 */ 300 */
301class OGradientSelector : public OSelector 301class OGradientSelector : public OSelector
302{ 302{
303 Q_OBJECT 303 Q_OBJECT
304 304
305 Q_PROPERTY( QColor firstColor READ firstColor WRITE setFirstColor ) 305 Q_PROPERTY( QColor firstColor READ firstColor WRITE setFirstColor )
306 Q_PROPERTY( QColor secondColor READ secondColor WRITE setSecondColor ) 306 Q_PROPERTY( QColor secondColor READ secondColor WRITE setSecondColor )
307 Q_PROPERTY( QString firstText READ firstText WRITE setFirstText ) 307 Q_PROPERTY( QString firstText READ firstText WRITE setFirstText )
308 Q_PROPERTY( QString secondText READ secondText WRITE setSecondText ) 308 Q_PROPERTY( QString secondText READ secondText WRITE setSecondText )
309 309
310public: 310public:
311 /** 311 /**
312 * Constructs a horizontal color selector which 312 * Constructs a horizontal color selector which
313 * contains a gradient between white and black. 313 * contains a gradient between white and black.
314 */ 314 */
315 OGradientSelector( QWidget *parent=0, const char *name=0 ); 315 OGradientSelector( QWidget *parent=0, const char *name=0 );
316 /** 316 /**
317 * Constructs a colors selector with orientation o which 317 * Constructs a colors selector with orientation o which
318 * contains a gradient between white and black. 318 * contains a gradient between white and black.
319 */ 319 */
320 OGradientSelector( Orientation o, QWidget *parent=0, const char *name=0 ); 320 OGradientSelector( Orientation o, QWidget *parent=0, const char *name=0 );
321 /** 321 /**
322 * Destructs the widget. 322 * Destructs the widget.
diff --git a/libopie2/qt3/opiecore/osortablevaluelist.h b/libopie2/qt3/opiecore/osortablevaluelist.h
index f66cf25..a3f75b4 100644
--- a/libopie2/qt3/opiecore/osortablevaluelist.h
+++ b/libopie2/qt3/opiecore/osortablevaluelist.h
@@ -1,117 +1,117 @@
1/* 1/*
2                 This file is part of the Opie Project 2                 This file is part of the Opie Project
3 Originally a part of the KDE Project 3 Originally a part of the KDE Project
4 (C) 2001 Carsten Pfeiffer <pfeiffer@kde.org> 4 (C) 2001 Carsten Pfeiffer <pfeiffer@kde.org>
5 =. 5 =.
6 .=l. 6 .=l.
7           .>+-= 7           .>+-=
8 _;:,     .>    :=|. This program is free software; you can 8 _;:,     .>    :=|. This program is free software; you can
9.> <`_,   >  .   <= redistribute it and/or modify it under 9.> <`_,   >  .   <= redistribute it and/or modify it under
10:`=1 )Y*s>-.--   : the terms of the GNU Library General Public 10:`=1 )Y*s>-.--   : the terms of the GNU Library General Public
11.="- .-=="i,     .._ License as published by the Free Software 11.="- .-=="i,     .._ License as published by the Free Software
12 - .   .-<_>     .<> Foundation; either version 2 of the License, 12 - .   .-<_>     .<> Foundation; either version 2 of the License,
13     ._= =}       : or (at your option) any later version. 13     ._= =}       : or (at your option) any later version.
14    .%`+i>       _;_. 14    .%`+i>       _;_.
15    .i_,=:_.      -<s. This program is distributed in the hope that 15    .i_,=:_.      -<s. This program is distributed in the hope that
16     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 16     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
17    : ..    .:,     . . . without even the implied warranty of 17    : ..    .:,     . . . without even the implied warranty of
18    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 18    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
19  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 19  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
20..}^=.=       =       ; Library General Public License for more 20..}^=.=       =       ; Library General Public License for more
21++=   -.     .`     .: details. 21++=   -.     .`     .: details.
22 :     =  ...= . :.=- 22 :     =  ...= . :.=-
23 -.   .:....=;==+<; You should have received a copy of the GNU 23 -.   .:....=;==+<; You should have received a copy of the GNU
24  -_. . .   )=.  = Library General Public License along with 24  -_. . .   )=.  = Library General Public License along with
25    --        :-=` this library; see the file COPYING.LIB. 25    --        :-=` this library; see the file COPYING.LIB.
26 If not, write to the Free Software Foundation, 26 If not, write to the Free Software Foundation,
27 Inc., 59 Temple Place - Suite 330, 27 Inc., 59 Temple Place - Suite 330,
28 Boston, MA 02111-1307, USA. 28 Boston, MA 02111-1307, USA.
29*/ 29*/
30 30
31#ifndef OSORTABLEVALUELIST_H 31#ifndef OSORTABLEVALUELIST_H
32#define OSORTABLEVALUELIST_H 32#define OSORTABLEVALUELIST_H
33 33
34#if QT_VERSION > 290 34#if QT_VERSION >= 0x030000
35#include <qtl.h> 35#include <qtl.h>
36#include <qpair.h> 36#include <qpair.h>
37#else 37#else
38#include <opie2/otl.h> 38#include <opie2/otl.h>
39#include <opie2/opair.h> 39#include <opie2/opair.h>
40#endif 40#endif
41#include <qvaluelist.h> 41#include <qvaluelist.h>
42 42
43template<class T, class Key = int> class OSortableItem : public QPair<Key,T> 43template<class T, class Key = int> class OSortableItem : public QPair<Key,T>
44{ 44{
45public: 45public:
46 OSortableItem( Key i, const T& t ) : QPair<Key, T>( i, t ) {} 46 OSortableItem( Key i, const T& t ) : QPair<Key, T>( i, t ) {}
47 OSortableItem( const OSortableItem<T, Key> &rhs ) 47 OSortableItem( const OSortableItem<T, Key> &rhs )
48 : QPair<Key,T>( rhs.first, rhs.second ) {} 48 : QPair<Key,T>( rhs.first, rhs.second ) {}
49 49
50 OSortableItem() {} 50 OSortableItem() {}
51 51
52 OSortableItem<T, Key> &operator=( const OSortableItem<T, Key>& i ) { 52 OSortableItem<T, Key> &operator=( const OSortableItem<T, Key>& i ) {
53 first = i.first; 53 first = i.first;
54 second = i.second; 54 second = i.second;
55 return *this; 55 return *this;
56 } 56 }
57 57
58 // operators for sorting 58 // operators for sorting
59 bool operator> ( const OSortableItem<T, Key>& i2 ) const { 59 bool operator> ( const OSortableItem<T, Key>& i2 ) const {
60 return (i2.first < first); 60 return (i2.first < first);
61 } 61 }
62 bool operator< ( const OSortableItem<T, Key>& i2 ) const { 62 bool operator< ( const OSortableItem<T, Key>& i2 ) const {
63 return (first < i2.first); 63 return (first < i2.first);
64 } 64 }
65 bool operator>= ( const OSortableItem<T, Key>& i2 ) const { 65 bool operator>= ( const OSortableItem<T, Key>& i2 ) const {
66 return (first >= i2.first); 66 return (first >= i2.first);
67 } 67 }
68 bool operator<= ( const OSortableItem<T, Key>& i2 ) const { 68 bool operator<= ( const OSortableItem<T, Key>& i2 ) const {
69 return !(i2.first < first); 69 return !(i2.first < first);
70 } 70 }
71 bool operator== ( const OSortableItem<T, Key>& i2 ) const { 71 bool operator== ( const OSortableItem<T, Key>& i2 ) const {
72 return (first == i2.first); 72 return (first == i2.first);
73 } 73 }
74 bool operator!= ( const OSortableItem<T, Key>& i2 ) const { 74 bool operator!= ( const OSortableItem<T, Key>& i2 ) const {
75 return (first != i2.first); 75 return (first != i2.first);
76 } 76 }
77 77
78 T& value() { 78 T& value() {
79 return second; 79 return second;
80 } 80 }
81 const T& value() const { 81 const T& value() const {
82 return second; 82 return second;
83 } 83 }
84 84
85 Key index() const { 85 Key index() const {
86 return first; 86 return first;
87 } 87 }
88}; 88};
89 89
90 90
91// convenience 91// convenience
92template <class T, class Key = int> 92template <class T, class Key = int>
93class OSortableValueList : public QValueList<OSortableItem<T, Key> > 93class OSortableValueList : public QValueList<OSortableItem<T, Key> >
94{ 94{
95public: 95public:
96 void insert( Key i, const T& t ) { 96 void insert( Key i, const T& t ) {
97 QValueList<OSortableItem<T, Key> >::append( OSortableItem<T, Key>( i, t ) ); 97 QValueList<OSortableItem<T, Key> >::append( OSortableItem<T, Key>( i, t ) );
98 } 98 }
99 // add more as you please... 99 // add more as you please...
100 100
101 T& operator[]( Key i ) { 101 T& operator[]( Key i ) {
102 return QValueList<OSortableItem<T, Key> >::operator[]( i ).value(); 102 return QValueList<OSortableItem<T, Key> >::operator[]( i ).value();
103 } 103 }
104 const T& operator[]( Key i ) const { 104 const T& operator[]( Key i ) const {
105 return QValueList<OSortableItem<T, Key> >::operator[]( i ).value(); 105 return QValueList<OSortableItem<T, Key> >::operator[]( i ).value();
106 } 106 }
107 107
108 void sort() { 108 void sort() {
109 qHeapSort( *this ); 109 qHeapSort( *this );
110 } 110 }
111}; 111};
112 112
113// template <class T> class OSortableValueListIterator : public QValueListIterator<OSortableItem<T> > 113// template <class T> class OSortableValueListIterator : public QValueListIterator<OSortableItem<T> >
114// { 114// {
115// }; 115// };
116 116
117#endif // OSORTABLEVALUELIST_H 117#endif // OSORTABLEVALUELIST_H
diff --git a/libopie2/qt3/opieui/ocombobox.cpp b/libopie2/qt3/opieui/ocombobox.cpp
index bd330e0..130112c 100644
--- a/libopie2/qt3/opieui/ocombobox.cpp
+++ b/libopie2/qt3/opieui/ocombobox.cpp
@@ -225,240 +225,240 @@ bool OComboBox::eventFilter( QObject* o, QEvent* ev )
225 225
226 return m_trapReturnKey; 226 return m_trapReturnKey;
227 } 227 }
228 } 228 }
229 } 229 }
230 230
231 231
232 // wheel-scrolling changes the current item 232 // wheel-scrolling changes the current item
233 if ( type == QEvent::Wheel ) { 233 if ( type == QEvent::Wheel ) {
234 if ( !listBox() || listBox()->isHidden() ) { 234 if ( !listBox() || listBox()->isHidden() ) {
235 QWheelEvent *e = static_cast<QWheelEvent*>( ev ); 235 QWheelEvent *e = static_cast<QWheelEvent*>( ev );
236 static const int WHEEL_DELTA = 120; 236 static const int WHEEL_DELTA = 120;
237 int skipItems = e->delta() / WHEEL_DELTA; 237 int skipItems = e->delta() / WHEEL_DELTA;
238 if ( e->state() & ControlButton ) // fast skipping 238 if ( e->state() & ControlButton ) // fast skipping
239 skipItems *= 10; 239 skipItems *= 10;
240 240
241 int newItem = currentItem() - skipItems; 241 int newItem = currentItem() - skipItems;
242 242
243 if ( newItem < 0 ) 243 if ( newItem < 0 )
244 newItem = 0; 244 newItem = 0;
245 else if ( newItem >= count() ) 245 else if ( newItem >= count() )
246 newItem = count() -1; 246 newItem = count() -1;
247 247
248 setCurrentItem( newItem ); 248 setCurrentItem( newItem );
249 if ( !text( newItem ).isNull() ) 249 if ( !text( newItem ).isNull() )
250 emit activated( text( newItem ) ); 250 emit activated( text( newItem ) );
251 emit activated( newItem ); 251 emit activated( newItem );
252 e->accept(); 252 e->accept();
253 return true; 253 return true;
254 } 254 }
255 } 255 }
256 256
257 return QComboBox::eventFilter( o, ev ); 257 return QComboBox::eventFilter( o, ev );
258} 258}
259 259
260void OComboBox::setTrapReturnKey( bool grab ) 260void OComboBox::setTrapReturnKey( bool grab )
261{ 261{
262 m_trapReturnKey = grab; 262 m_trapReturnKey = grab;
263} 263}
264 264
265bool OComboBox::trapReturnKey() const 265bool OComboBox::trapReturnKey() const
266{ 266{
267 return m_trapReturnKey; 267 return m_trapReturnKey;
268} 268}
269 269
270/* 270/*
271void OComboBox::setEditURL( const OURL& url ) 271void OComboBox::setEditURL( const OURL& url )
272{ 272{
273 QComboBox::setEditText( url.prettyURL() ); 273 QComboBox::setEditText( url.prettyURL() );
274} 274}
275 275
276void OComboBox::insertURL( const OURL& url, int index ) 276void OComboBox::insertURL( const OURL& url, int index )
277{ 277{
278 QComboBox::insertItem( url.prettyURL(), index ); 278 QComboBox::insertItem( url.prettyURL(), index );
279} 279}
280 280
281void OComboBox::insertURL( const QPixmap& pixmap, const OURL& url, int index ) 281void OComboBox::insertURL( const QPixmap& pixmap, const OURL& url, int index )
282{ 282{
283 QComboBox::insertItem( pixmap, url.prettyURL(), index ); 283 QComboBox::insertItem( pixmap, url.prettyURL(), index );
284} 284}
285 285
286void OComboBox::changeURL( const OURL& url, int index ) 286void OComboBox::changeURL( const OURL& url, int index )
287{ 287{
288 QComboBox::changeItem( url.prettyURL(), index ); 288 QComboBox::changeItem( url.prettyURL(), index );
289} 289}
290 290
291void OComboBox::changeURL( const QPixmap& pixmap, const OURL& url, int index ) 291void OComboBox::changeURL( const QPixmap& pixmap, const OURL& url, int index )
292{ 292{
293 QComboBox::changeItem( pixmap, url.prettyURL(), index ); 293 QComboBox::changeItem( pixmap, url.prettyURL(), index );
294} 294}
295*/ 295*/
296 296
297 297
298void OComboBox::setCompletedItems( const QStringList& items ) 298void OComboBox::setCompletedItems( const QStringList& items )
299{ 299{
300 if ( d->olineEdit ) 300 if ( d->olineEdit )
301 d->olineEdit->setCompletedItems( items ); 301 d->olineEdit->setCompletedItems( items );
302} 302}
303 303
304 304
305OCompletionBox * OComboBox::completionBox( bool create ) 305OCompletionBox * OComboBox::completionBox( bool create )
306{ 306{
307 if ( d->olineEdit ) 307 if ( d->olineEdit )
308 return d->olineEdit->completionBox( create ); 308 return d->olineEdit->completionBox( create );
309 return 0; 309 return 0;
310} 310}
311 311
312// QWidget::create() turns off mouse-Tracking which would break auto-hiding 312// QWidget::create() turns off mouse-Tracking which would break auto-hiding
313void OComboBox::create( WId id, bool initializeWindow, bool destroyOldWindow ) 313void OComboBox::create( WId id, bool initializeWindow, bool destroyOldWindow )
314{ 314{
315 QComboBox::create( id, initializeWindow, destroyOldWindow ); 315 QComboBox::create( id, initializeWindow, destroyOldWindow );
316 //OCursor::setAutoHideCursor( lineEdit(), true, true ); 316 //OCursor::setAutoHideCursor( lineEdit(), true, true );
317} 317}
318 318
319void OComboBox::setLineEdit( OLineEdit *edit ) 319void OComboBox::setLineEdit( OLineEdit *edit )
320{ 320{
321 #if QT_VERSION > 290 321 #if QT_VERSION >= 0x030000
322 QComboBox::setLineEdit( edit ); 322 QComboBox::setLineEdit( edit );
323 if ( !edit->inherits( "OLineEdit" ) ) 323 if ( !edit->inherits( "OLineEdit" ) )
324 d->olineEdit = 0; 324 d->olineEdit = 0;
325 else 325 else
326 d->olineEdit = static_cast<OLineEdit*>( edit ); 326 d->olineEdit = static_cast<OLineEdit*>( edit );
327 setDelegate( d->olineEdit ); 327 setDelegate( d->olineEdit );
328 328
329 // forward some signals. We only emit returnPressed() ourselves. 329 // forward some signals. We only emit returnPressed() ourselves.
330 if ( d->olineEdit ) { 330 if ( d->olineEdit ) {
331 connect( d->olineEdit, SIGNAL( completion(const QString&)), 331 connect( d->olineEdit, SIGNAL( completion(const QString&)),
332 SIGNAL( completion(const QString&)) ); 332 SIGNAL( completion(const QString&)) );
333 connect( d->olineEdit, SIGNAL( substringCompletion(const QString&)), 333 connect( d->olineEdit, SIGNAL( substringCompletion(const QString&)),
334 SIGNAL( substringCompletion(const QString&)) ); 334 SIGNAL( substringCompletion(const QString&)) );
335 connect( d->olineEdit, 335 connect( d->olineEdit,
336 SIGNAL( textRotation(OCompletionBase::KeyBindingType)), 336 SIGNAL( textRotation(OCompletionBase::KeyBindingType)),
337 SIGNAL( textRotation(OCompletionBase::KeyBindingType)) ); 337 SIGNAL( textRotation(OCompletionBase::KeyBindingType)) );
338 connect( d->olineEdit, 338 connect( d->olineEdit,
339 SIGNAL( completionModeChanged(OGlobalSettings::Completion)), 339 SIGNAL( completionModeChanged(OGlobalSettings::Completion)),
340 SIGNAL( completionModeChanged(OGlobalSettings::Completion))); 340 SIGNAL( completionModeChanged(OGlobalSettings::Completion)));
341 341
342 connect( d->olineEdit, 342 connect( d->olineEdit,
343 SIGNAL( aboutToShowContextMenu(QPopupMenu*)), 343 SIGNAL( aboutToShowContextMenu(QPopupMenu*)),
344 SIGNAL( aboutToShowContextMenu(QPopupMenu*)) ); 344 SIGNAL( aboutToShowContextMenu(QPopupMenu*)) );
345 } 345 }
346 #else 346 #else
347 #warning OComboBox is not fully functional with Qt2 347 #warning OComboBox is not fully functional with Qt2
348 #endif 348 #endif
349} 349}
350 350
351// Temporary functions until QT3 appears. - Seth Chaiklin 20 may 2001 351// Temporary functions until QT3 appears. - Seth Chaiklin 20 may 2001
352void OComboBox::deleteWordForward() 352void OComboBox::deleteWordForward()
353{ 353{
354 lineEdit()->cursorWordForward(TRUE); 354 lineEdit()->cursorWordForward(TRUE);
355 #if QT_VERSION > 290 355 #if QT_VERSION >= 0x030000
356 if ( lineEdit()->hasSelectedText() ) 356 if ( lineEdit()->hasSelectedText() )
357 #else 357 #else
358 if ( lineEdit()->hasMarkedText() ) 358 if ( lineEdit()->hasMarkedText() )
359 #endif 359 #endif
360 { 360 {
361 lineEdit()->del(); 361 lineEdit()->del();
362 } 362 }
363} 363}
364 364
365void OComboBox::deleteWordBack() 365void OComboBox::deleteWordBack()
366{ 366{
367 lineEdit()->cursorWordBackward(TRUE); 367 lineEdit()->cursorWordBackward(TRUE);
368 #if QT_VERSION > 290 368 #if QT_VERSION >= 0x030000
369 if ( lineEdit()->hasSelectedText() ) 369 if ( lineEdit()->hasSelectedText() )
370 #else 370 #else
371 if ( lineEdit()->hasMarkedText() ) 371 if ( lineEdit()->hasMarkedText() )
372 #endif 372 #endif
373 { 373 {
374 lineEdit()->del(); 374 lineEdit()->del();
375 } 375 }
376} 376}
377 377
378void OComboBox::setCurrentItem( const QString& item, bool insert, int index ) 378void OComboBox::setCurrentItem( const QString& item, bool insert, int index )
379{ 379{
380 int sel = -1; 380 int sel = -1;
381 for (int i = 0; i < count(); ++i) 381 for (int i = 0; i < count(); ++i)
382 if (text(i) == item) 382 if (text(i) == item)
383 { 383 {
384 sel = i; 384 sel = i;
385 break; 385 break;
386 } 386 }
387 if (sel == -1 && insert) 387 if (sel == -1 && insert)
388 { 388 {
389 insertItem(item, index); 389 insertItem(item, index);
390 if (index >= 0) 390 if (index >= 0)
391 sel = index; 391 sel = index;
392 else 392 else
393 sel = count() - 1; 393 sel = count() - 1;
394 } 394 }
395 setCurrentItem(sel); 395 setCurrentItem(sel);
396} 396}
397 397
398void OComboBox::setCurrentItem(int index) 398void OComboBox::setCurrentItem(int index)
399{ 399{
400 QComboBox::setCurrentItem(index); 400 QComboBox::setCurrentItem(index);
401} 401}
402 402
403 403
404/*====================================================================================== 404/*======================================================================================
405 * OHistoryCombo 405 * OHistoryCombo
406 *======================================================================================*/ 406 *======================================================================================*/
407 407
408// we are always read-write 408// we are always read-write
409OHistoryCombo::OHistoryCombo( QWidget *parent, const char *name ) 409OHistoryCombo::OHistoryCombo( QWidget *parent, const char *name )
410 : OComboBox( true, parent, name ) 410 : OComboBox( true, parent, name )
411{ 411{
412 init( true ); // using completion 412 init( true ); // using completion
413} 413}
414 414
415// we are always read-write 415// we are always read-write
416OHistoryCombo::OHistoryCombo( bool useCompletion, 416OHistoryCombo::OHistoryCombo( bool useCompletion,
417 QWidget *parent, const char *name ) 417 QWidget *parent, const char *name )
418 : OComboBox( true, parent, name ) 418 : OComboBox( true, parent, name )
419{ 419{
420 init( useCompletion ); 420 init( useCompletion );
421} 421}
422 422
423void OHistoryCombo::init( bool useCompletion ) 423void OHistoryCombo::init( bool useCompletion )
424{ 424{
425 if ( useCompletion ) 425 if ( useCompletion )
426 completionObject()->setOrder( OCompletion::Weighted ); 426 completionObject()->setOrder( OCompletion::Weighted );
427 427
428 setInsertionPolicy( NoInsertion ); 428 setInsertionPolicy( NoInsertion );
429 myIterateIndex = -1; 429 myIterateIndex = -1;
430 myRotated = false; 430 myRotated = false;
431 myPixProvider = 0L; 431 myPixProvider = 0L;
432 432
433 connect( this, SIGNAL(aboutToShowContextMenu(QPopupMenu*)), 433 connect( this, SIGNAL(aboutToShowContextMenu(QPopupMenu*)),
434 SLOT(addContextMenuItems(QPopupMenu*)) ); 434 SLOT(addContextMenuItems(QPopupMenu*)) );
435 connect( this, SIGNAL( activated(int) ), SLOT( slotReset() )); 435 connect( this, SIGNAL( activated(int) ), SLOT( slotReset() ));
436 connect( this, SIGNAL( returnPressed(const QString&) ), SLOT(slotReset())); 436 connect( this, SIGNAL( returnPressed(const QString&) ), SLOT(slotReset()));
437} 437}
438 438
439OHistoryCombo::~OHistoryCombo() 439OHistoryCombo::~OHistoryCombo()
440{ 440{
441 delete myPixProvider; 441 delete myPixProvider;
442} 442}
443 443
444void OHistoryCombo::setHistoryItems( QStringList items, 444void OHistoryCombo::setHistoryItems( QStringList items,
445 bool setCompletionList ) 445 bool setCompletionList )
446{ 446{
447 OComboBox::clear(); 447 OComboBox::clear();
448 448
449 // limit to maxCount() 449 // limit to maxCount()
450 while ( (int) items.count() > maxCount() && !items.isEmpty() ) 450 while ( (int) items.count() > maxCount() && !items.isEmpty() )
451 items.remove( items.begin() ); 451 items.remove( items.begin() );
452 452
453 insertItems( items ); 453 insertItems( items );
454 454
455 if ( setCompletionList && useCompletion() ) { 455 if ( setCompletionList && useCompletion() ) {
456 // we don't have any weighting information here ;( 456 // we don't have any weighting information here ;(
457 OCompletion *comp = completionObject(); 457 OCompletion *comp = completionObject();
458 comp->setOrder( OCompletion::Insertion ); 458 comp->setOrder( OCompletion::Insertion );
459 comp->setItems( items ); 459 comp->setItems( items );
460 comp->setOrder( OCompletion::Weighted ); 460 comp->setOrder( OCompletion::Weighted );
461 } 461 }
462 462
463 clearEdit(); 463 clearEdit();
464} 464}
diff --git a/libopie2/qt3/opieui/oeditlistbox.cpp b/libopie2/qt3/opieui/oeditlistbox.cpp
index 0e95274..dcc697d 100644
--- a/libopie2/qt3/opieui/oeditlistbox.cpp
+++ b/libopie2/qt3/opieui/oeditlistbox.cpp
@@ -99,301 +99,301 @@ void OEditListBox::init( bool checkAtEntering, int buttons,
99 lostButtons += 2; 99 lostButtons += 2;
100 100
101 101
102 servNewButton = servRemoveButton = servUpButton = servDownButton = 0L; 102 servNewButton = servRemoveButton = servUpButton = servDownButton = 0L;
103 setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding, 103 setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding,
104 QSizePolicy::MinimumExpanding)); 104 QSizePolicy::MinimumExpanding));
105 105
106 QWidget * gb = this; 106 QWidget * gb = this;
107 QGridLayout * grid = new QGridLayout(gb, 7 - lostButtons, 2, 107 QGridLayout * grid = new QGridLayout(gb, 7 - lostButtons, 2,
108 ODialog::marginHint(), 108 ODialog::marginHint(),
109 ODialog::spacingHint()); 109 ODialog::spacingHint());
110 grid->addRowSpacing(0, fontMetrics().lineSpacing()); 110 grid->addRowSpacing(0, fontMetrics().lineSpacing());
111 for ( int i = 1; i < 7 - lostButtons; i++ ) 111 for ( int i = 1; i < 7 - lostButtons; i++ )
112 grid->setRowStretch(i, 1); 112 grid->setRowStretch(i, 1);
113 113
114 grid->setMargin(15); 114 grid->setMargin(15);
115 115
116 if ( representationWidget ) 116 if ( representationWidget )
117 representationWidget->reparent( gb, QPoint(0,0) ); 117 representationWidget->reparent( gb, QPoint(0,0) );
118 else 118 else
119 m_lineEdit=new OLineEdit(gb); 119 m_lineEdit=new OLineEdit(gb);
120 120
121 m_listBox = new QListBox(gb); 121 m_listBox = new QListBox(gb);
122 122
123 QWidget *editingWidget = representationWidget ? 123 QWidget *editingWidget = representationWidget ?
124 representationWidget : m_lineEdit; 124 representationWidget : m_lineEdit;
125 grid->addMultiCellWidget(editingWidget,1,1,0,1); 125 grid->addMultiCellWidget(editingWidget,1,1,0,1);
126 grid->addMultiCellWidget(m_listBox, 2, 6 - lostButtons, 0, 0); 126 grid->addMultiCellWidget(m_listBox, 2, 6 - lostButtons, 0, 0);
127 int row = 2; 127 int row = 2;
128 if ( buttons & Add ) { 128 if ( buttons & Add ) {
129 servNewButton = new QPushButton(tr("&Add"), gb); 129 servNewButton = new QPushButton(tr("&Add"), gb);
130 servNewButton->setEnabled(false); 130 servNewButton->setEnabled(false);
131 connect(servNewButton, SIGNAL(clicked()), SLOT(addItem())); 131 connect(servNewButton, SIGNAL(clicked()), SLOT(addItem()));
132 132
133 grid->addWidget(servNewButton, row++, 1); 133 grid->addWidget(servNewButton, row++, 1);
134 } 134 }
135 135
136 if ( buttons & Remove ) { 136 if ( buttons & Remove ) {
137 servRemoveButton = new QPushButton(tr("&Remove"), gb); 137 servRemoveButton = new QPushButton(tr("&Remove"), gb);
138 servRemoveButton->setEnabled(false); 138 servRemoveButton->setEnabled(false);
139 connect(servRemoveButton, SIGNAL(clicked()), SLOT(removeItem())); 139 connect(servRemoveButton, SIGNAL(clicked()), SLOT(removeItem()));
140 140
141 grid->addWidget(servRemoveButton, row++, 1); 141 grid->addWidget(servRemoveButton, row++, 1);
142 } 142 }
143 143
144 if ( buttons & UpDown ) { 144 if ( buttons & UpDown ) {
145 servUpButton = new QPushButton(tr("Move &Up"), gb); 145 servUpButton = new QPushButton(tr("Move &Up"), gb);
146 servUpButton->setEnabled(false); 146 servUpButton->setEnabled(false);
147 connect(servUpButton, SIGNAL(clicked()), SLOT(moveItemUp())); 147 connect(servUpButton, SIGNAL(clicked()), SLOT(moveItemUp()));
148 148
149 servDownButton = new QPushButton(tr("Move &Down"), gb); 149 servDownButton = new QPushButton(tr("Move &Down"), gb);
150 servDownButton->setEnabled(false); 150 servDownButton->setEnabled(false);
151 connect(servDownButton, SIGNAL(clicked()), SLOT(moveItemDown())); 151 connect(servDownButton, SIGNAL(clicked()), SLOT(moveItemDown()));
152 152
153 grid->addWidget(servUpButton, row++, 1); 153 grid->addWidget(servUpButton, row++, 1);
154 grid->addWidget(servDownButton, row++, 1); 154 grid->addWidget(servDownButton, row++, 1);
155 } 155 }
156 156
157 connect(m_lineEdit,SIGNAL(textChanged(const QString&)),this,SLOT(typedSomething(const QString&))); 157 connect(m_lineEdit,SIGNAL(textChanged(const QString&)),this,SLOT(typedSomething(const QString&)));
158 m_lineEdit->setTrapReturnKey(true); 158 m_lineEdit->setTrapReturnKey(true);
159 connect(m_lineEdit,SIGNAL(returnPressed()),this,SLOT(addItem())); 159 connect(m_lineEdit,SIGNAL(returnPressed()),this,SLOT(addItem()));
160 connect(m_listBox, SIGNAL(highlighted(int)), SLOT(enableMoveButtons(int))); 160 connect(m_listBox, SIGNAL(highlighted(int)), SLOT(enableMoveButtons(int)));
161 161
162 // maybe supplied lineedit has some text already 162 // maybe supplied lineedit has some text already
163 typedSomething( m_lineEdit->text() ); 163 typedSomething( m_lineEdit->text() );
164} 164}
165 165
166void OEditListBox::typedSomething(const QString& text) 166void OEditListBox::typedSomething(const QString& text)
167{ 167{
168 if(currentItem() >= 0) { 168 if(currentItem() >= 0) {
169 if(currentText() != m_lineEdit->text()) 169 if(currentText() != m_lineEdit->text())
170 { 170 {
171 // IMHO changeItem() shouldn't do anything with the value 171 // IMHO changeItem() shouldn't do anything with the value
172 // of currentItem() ... like changing it or emitting signals ... 172 // of currentItem() ... like changing it or emitting signals ...
173 // but TT disagree with me on this one (it's been that way since ages ... grrr) 173 // but TT disagree with me on this one (it's been that way since ages ... grrr)
174 bool block = m_listBox->signalsBlocked(); 174 bool block = m_listBox->signalsBlocked();
175 m_listBox->blockSignals( true ); 175 m_listBox->blockSignals( true );
176 m_listBox->changeItem(text, currentItem()); 176 m_listBox->changeItem(text, currentItem());
177 m_listBox->blockSignals( block ); 177 m_listBox->blockSignals( block );
178 emit changed(); 178 emit changed();
179 } 179 }
180 } 180 }
181 181
182 if ( !servNewButton ) 182 if ( !servNewButton )
183 return; 183 return;
184 184
185 if (!d->m_checkAtEntering) 185 if (!d->m_checkAtEntering)
186 servNewButton->setEnabled(!text.isEmpty()); 186 servNewButton->setEnabled(!text.isEmpty());
187 else 187 else
188 { 188 {
189 if (text.isEmpty()) 189 if (text.isEmpty())
190 { 190 {
191 servNewButton->setEnabled(false); 191 servNewButton->setEnabled(false);
192 } 192 }
193 else 193 else
194 { 194 {
195 #if QT_VERSION > 290 195 #if QT_VERSION >= 0x030000
196 StringComparisonMode mode = (StringComparisonMode) (ExactMatch | CaseSensitive ); 196 StringComparisonMode mode = (StringComparisonMode) (ExactMatch | CaseSensitive );
197 bool enable = (m_listBox->findItem( text, mode ) == 0L); 197 bool enable = (m_listBox->findItem( text, mode ) == 0L);
198 #else 198 #else
199 bool enable = (m_listBox->findItem( text ) == 0L); 199 bool enable = (m_listBox->findItem( text ) == 0L);
200 #endif 200 #endif
201 servNewButton->setEnabled( enable ); 201 servNewButton->setEnabled( enable );
202 } 202 }
203 } 203 }
204} 204}
205 205
206void OEditListBox::moveItemUp() 206void OEditListBox::moveItemUp()
207{ 207{
208 if (!m_listBox->isEnabled()) 208 if (!m_listBox->isEnabled())
209 { 209 {
210 //ONotifyClient::beep(); 210 //ONotifyClient::beep();
211 return; 211 return;
212 } 212 }
213 213
214 unsigned int selIndex = m_listBox->currentItem(); 214 unsigned int selIndex = m_listBox->currentItem();
215 if (selIndex == 0) 215 if (selIndex == 0)
216 { 216 {
217 //ONotifyClient::beep(); 217 //ONotifyClient::beep();
218 return; 218 return;
219 } 219 }
220 220
221 QListBoxItem *selItem = m_listBox->item(selIndex); 221 QListBoxItem *selItem = m_listBox->item(selIndex);
222 m_listBox->takeItem(selItem); 222 m_listBox->takeItem(selItem);
223 m_listBox->insertItem(selItem, selIndex-1); 223 m_listBox->insertItem(selItem, selIndex-1);
224 m_listBox->setCurrentItem(selIndex - 1); 224 m_listBox->setCurrentItem(selIndex - 1);
225 225
226 emit changed(); 226 emit changed();
227} 227}
228 228
229void OEditListBox::moveItemDown() 229void OEditListBox::moveItemDown()
230{ 230{
231 if (!m_listBox->isEnabled()) 231 if (!m_listBox->isEnabled())
232 { 232 {
233 //ONotifyClient::beep(); 233 //ONotifyClient::beep();
234 return; 234 return;
235 } 235 }
236 236
237 unsigned int selIndex = m_listBox->currentItem(); 237 unsigned int selIndex = m_listBox->currentItem();
238 if (selIndex == m_listBox->count() - 1) 238 if (selIndex == m_listBox->count() - 1)
239 { 239 {
240 //ONotifyClient::beep(); 240 //ONotifyClient::beep();
241 return; 241 return;
242 } 242 }
243 243
244 QListBoxItem *selItem = m_listBox->item(selIndex); 244 QListBoxItem *selItem = m_listBox->item(selIndex);
245 m_listBox->takeItem(selItem); 245 m_listBox->takeItem(selItem);
246 m_listBox->insertItem(selItem, selIndex+1); 246 m_listBox->insertItem(selItem, selIndex+1);
247 m_listBox->setCurrentItem(selIndex + 1); 247 m_listBox->setCurrentItem(selIndex + 1);
248 248
249 emit changed(); 249 emit changed();
250} 250}
251 251
252void OEditListBox::addItem() 252void OEditListBox::addItem()
253{ 253{
254 // when m_checkAtEntering is true, the add-button is disabled, but this 254 // when m_checkAtEntering is true, the add-button is disabled, but this
255 // slot can still be called through Key_Return/Key_Enter. So we guard 255 // slot can still be called through Key_Return/Key_Enter. So we guard
256 // against this. 256 // against this.
257 if ( !servNewButton || !servNewButton->isEnabled() ) 257 if ( !servNewButton || !servNewButton->isEnabled() )
258 return; 258 return;
259 259
260 const QString& currentTextLE=m_lineEdit->text(); 260 const QString& currentTextLE=m_lineEdit->text();
261 bool alreadyInList(false); 261 bool alreadyInList(false);
262 //if we didn't check for dupes at the inserting we have to do it now 262 //if we didn't check for dupes at the inserting we have to do it now
263 if (!d->m_checkAtEntering) 263 if (!d->m_checkAtEntering)
264 { 264 {
265 // first check current item instead of dumb iterating the entire list 265 // first check current item instead of dumb iterating the entire list
266 if ( m_listBox->currentText() == currentTextLE ) 266 if ( m_listBox->currentText() == currentTextLE )
267 alreadyInList = true; 267 alreadyInList = true;
268 else 268 else
269 { 269 {
270 #if QT_VERSION > 290 270 #if QT_VERSION >= 0x030000
271 StringComparisonMode mode = (StringComparisonMode) (ExactMatch | CaseSensitive ); 271 StringComparisonMode mode = (StringComparisonMode) (ExactMatch | CaseSensitive );
272 alreadyInList =(m_listBox->findItem(currentTextLE, mode) != 0); 272 alreadyInList =(m_listBox->findItem(currentTextLE, mode) != 0);
273 #else 273 #else
274 alreadyInList =(m_listBox->findItem(currentTextLE) != 0); 274 alreadyInList =(m_listBox->findItem(currentTextLE) != 0);
275 #endif 275 #endif
276 } 276 }
277 } 277 }
278 278
279 if ( servNewButton ) 279 if ( servNewButton )
280 servNewButton->setEnabled(false); 280 servNewButton->setEnabled(false);
281 281
282 bool block = m_lineEdit->signalsBlocked(); 282 bool block = m_lineEdit->signalsBlocked();
283 m_lineEdit->blockSignals(true); 283 m_lineEdit->blockSignals(true);
284 m_lineEdit->clear(); 284 m_lineEdit->clear();
285 m_lineEdit->blockSignals(block); 285 m_lineEdit->blockSignals(block);
286 286
287 m_listBox->setSelected(currentItem(), false); 287 m_listBox->setSelected(currentItem(), false);
288 288
289 if (!alreadyInList) 289 if (!alreadyInList)
290 { 290 {
291 block = m_listBox->signalsBlocked(); 291 block = m_listBox->signalsBlocked();
292 m_listBox->blockSignals( true ); 292 m_listBox->blockSignals( true );
293 m_listBox->insertItem(currentTextLE); 293 m_listBox->insertItem(currentTextLE);
294 m_listBox->blockSignals( block ); 294 m_listBox->blockSignals( block );
295 emit changed(); 295 emit changed();
296 emit added( currentTextLE ); 296 emit added( currentTextLE );
297 } 297 }
298} 298}
299 299
300int OEditListBox::currentItem() const 300int OEditListBox::currentItem() const
301{ 301{
302 int nr = m_listBox->currentItem(); 302 int nr = m_listBox->currentItem();
303 #if QT_VERSION > 290 303 #if QT_VERSION >= 0x030000
304 if(nr >= 0 && !m_listBox->item(nr)->isSelected()) return -1; 304 if(nr >= 0 && !m_listBox->item(nr)->isSelected()) return -1;
305 #else 305 #else
306 if(nr >= 0 && !m_listBox->isSelected(m_listBox->item(nr))) return -1; 306 if(nr >= 0 && !m_listBox->isSelected(m_listBox->item(nr))) return -1;
307 #endif 307 #endif
308 return nr; 308 return nr;
309} 309}
310 310
311void OEditListBox::removeItem() 311void OEditListBox::removeItem()
312{ 312{
313 int selected = m_listBox->currentItem(); 313 int selected = m_listBox->currentItem();
314 314
315 if ( selected >= 0 ) 315 if ( selected >= 0 )
316 { 316 {
317 QString removedText = m_listBox->currentText(); 317 QString removedText = m_listBox->currentText();
318 318
319 m_listBox->removeItem( selected ); 319 m_listBox->removeItem( selected );
320 if ( count() > 0 ) 320 if ( count() > 0 )
321 m_listBox->setSelected( QMIN( selected, count() - 1 ), true ); 321 m_listBox->setSelected( QMIN( selected, count() - 1 ), true );
322 322
323 emit changed(); 323 emit changed();
324 emit removed( removedText ); 324 emit removed( removedText );
325 } 325 }
326 326
327 if ( servRemoveButton && m_listBox->currentItem() == -1 ) 327 if ( servRemoveButton && m_listBox->currentItem() == -1 )
328 servRemoveButton->setEnabled(false); 328 servRemoveButton->setEnabled(false);
329} 329}
330 330
331void OEditListBox::enableMoveButtons(int index) 331void OEditListBox::enableMoveButtons(int index)
332{ 332{
333 // Update the lineEdit when we select a different line. 333 // Update the lineEdit when we select a different line.
334 if(currentText() != m_lineEdit->text()) 334 if(currentText() != m_lineEdit->text())
335 m_lineEdit->setText(currentText()); 335 m_lineEdit->setText(currentText());
336 336
337 bool moveEnabled = servUpButton && servDownButton; 337 bool moveEnabled = servUpButton && servDownButton;
338 338
339 if (moveEnabled ) 339 if (moveEnabled )
340 { 340 {
341 if (m_listBox->count() <= 1) 341 if (m_listBox->count() <= 1)
342 { 342 {
343 servUpButton->setEnabled(false); 343 servUpButton->setEnabled(false);
344 servDownButton->setEnabled(false); 344 servDownButton->setEnabled(false);
345 } 345 }
346 else if ((uint) index == (m_listBox->count() - 1)) 346 else if ((uint) index == (m_listBox->count() - 1))
347 { 347 {
348 servUpButton->setEnabled(true); 348 servUpButton->setEnabled(true);
349 servDownButton->setEnabled(false); 349 servDownButton->setEnabled(false);
350 } 350 }
351 else if (index == 0) 351 else if (index == 0)
352 { 352 {
353 servUpButton->setEnabled(false); 353 servUpButton->setEnabled(false);
354 servDownButton->setEnabled(true); 354 servDownButton->setEnabled(true);
355 } 355 }
356 else 356 else
357 { 357 {
358 servUpButton->setEnabled(true); 358 servUpButton->setEnabled(true);
359 servDownButton->setEnabled(true); 359 servDownButton->setEnabled(true);
360 } 360 }
361 } 361 }
362 362
363 if ( servRemoveButton ) 363 if ( servRemoveButton )
364 servRemoveButton->setEnabled(true); 364 servRemoveButton->setEnabled(true);
365} 365}
366 366
367void OEditListBox::clear() 367void OEditListBox::clear()
368{ 368{
369 m_lineEdit->clear(); 369 m_lineEdit->clear();
370 m_listBox->clear(); 370 m_listBox->clear();
371 emit changed(); 371 emit changed();
372} 372}
373 373
374void OEditListBox::insertStringList(const QStringList& list, int index) 374void OEditListBox::insertStringList(const QStringList& list, int index)
375{ 375{
376 m_listBox->insertStringList(list,index); 376 m_listBox->insertStringList(list,index);
377} 377}
378 378
379void OEditListBox::insertStrList(const QStrList* list, int index) 379void OEditListBox::insertStrList(const QStrList* list, int index)
380{ 380{
381 m_listBox->insertStrList(list,index); 381 m_listBox->insertStrList(list,index);
382} 382}
383 383
384void OEditListBox::insertStrList(const QStrList& list, int index) 384void OEditListBox::insertStrList(const QStrList& list, int index)
385{ 385{
386 m_listBox->insertStrList(list,index); 386 m_listBox->insertStrList(list,index);
387} 387}
388 388
389void OEditListBox::insertStrList(const char ** list, int numStrings, int index) 389void OEditListBox::insertStrList(const char ** list, int numStrings, int index)
390{ 390{
391 m_listBox->insertStrList(list,numStrings,index); 391 m_listBox->insertStrList(list,numStrings,index);
392} 392}
393 393
394QStringList OEditListBox::items() const 394QStringList OEditListBox::items() const
395{ 395{
396 QStringList list; 396 QStringList list;
397 for ( uint i = 0; i < m_listBox->count(); i++ ) 397 for ( uint i = 0; i < m_listBox->count(); i++ )
398 list.append( m_listBox->text( i )); 398 list.append( m_listBox->text( i ));
399 399
diff --git a/libopie2/qt3/opieui/olineedit.cpp b/libopie2/qt3/opieui/olineedit.cpp
index 6f66fc7..b150987 100644
--- a/libopie2/qt3/opieui/olineedit.cpp
+++ b/libopie2/qt3/opieui/olineedit.cpp
@@ -52,484 +52,484 @@ typedef QString KURL; //FIXME: Revise for Opie
52class OLineEdit::OLineEditPrivate 52class OLineEdit::OLineEditPrivate
53{ 53{
54public: 54public:
55 OLineEditPrivate() 55 OLineEditPrivate()
56 { 56 {
57 grabReturnKeyEvents = false; 57 grabReturnKeyEvents = false;
58 handleURLDrops = true; 58 handleURLDrops = true;
59 completionBox = 0L; 59 completionBox = 0L;
60 } 60 }
61 ~OLineEditPrivate() 61 ~OLineEditPrivate()
62 { 62 {
63 delete completionBox; 63 delete completionBox;
64 } 64 }
65 65
66 bool grabReturnKeyEvents; 66 bool grabReturnKeyEvents;
67 bool handleURLDrops; 67 bool handleURLDrops;
68 OCompletionBox *completionBox; 68 OCompletionBox *completionBox;
69}; 69};
70 70
71 71
72/*====================================================================================== 72/*======================================================================================
73 * OLineEdit 73 * OLineEdit
74 *======================================================================================*/ 74 *======================================================================================*/
75 75
76OLineEdit::OLineEdit( const QString &string, QWidget *parent, const char *name ) 76OLineEdit::OLineEdit( const QString &string, QWidget *parent, const char *name )
77 : QLineEdit( string, parent, name ) 77 : QLineEdit( string, parent, name )
78{ 78{
79 init(); 79 init();
80} 80}
81 81
82OLineEdit::OLineEdit( QWidget *parent, const char *name ) 82OLineEdit::OLineEdit( QWidget *parent, const char *name )
83 : QLineEdit( parent, name ) 83 : QLineEdit( parent, name )
84{ 84{
85 init(); 85 init();
86} 86}
87 87
88OLineEdit::~OLineEdit () 88OLineEdit::~OLineEdit ()
89{ 89{
90 delete d; 90 delete d;
91} 91}
92 92
93void OLineEdit::init() 93void OLineEdit::init()
94{ 94{
95 d = new OLineEditPrivate; 95 d = new OLineEditPrivate;
96 possibleTripleClick = false; 96 possibleTripleClick = false;
97 // Enable the context menu by default. 97 // Enable the context menu by default.
98 setContextMenuEnabled( true ); 98 setContextMenuEnabled( true );
99 //OCursor::setAutoHideCursor( this, true, true ); 99 //OCursor::setAutoHideCursor( this, true, true );
100 installEventFilter( this ); 100 installEventFilter( this );
101} 101}
102 102
103void OLineEdit::setCompletionMode( OGlobalSettings::Completion mode ) 103void OLineEdit::setCompletionMode( OGlobalSettings::Completion mode )
104{ 104{
105 OGlobalSettings::Completion oldMode = completionMode(); 105 OGlobalSettings::Completion oldMode = completionMode();
106 if ( oldMode != mode && oldMode == OGlobalSettings::CompletionPopup && 106 if ( oldMode != mode && oldMode == OGlobalSettings::CompletionPopup &&
107 d->completionBox && d->completionBox->isVisible() ) 107 d->completionBox && d->completionBox->isVisible() )
108 d->completionBox->hide(); 108 d->completionBox->hide();
109 109
110 // If the widgets echo mode is not Normal, no completion 110 // If the widgets echo mode is not Normal, no completion
111 // feature will be enabled even if one is requested. 111 // feature will be enabled even if one is requested.
112 if ( echoMode() != QLineEdit::Normal ) 112 if ( echoMode() != QLineEdit::Normal )
113 mode = OGlobalSettings::CompletionNone; // Override the request. 113 mode = OGlobalSettings::CompletionNone; // Override the request.
114 114
115 OCompletionBase::setCompletionMode( mode ); 115 OCompletionBase::setCompletionMode( mode );
116} 116}
117 117
118void OLineEdit::setCompletedText( const QString& t, bool marked ) 118void OLineEdit::setCompletedText( const QString& t, bool marked )
119{ 119{
120 QString txt = text(); 120 QString txt = text();
121 if ( t != txt ) 121 if ( t != txt )
122 { 122 {
123 int curpos = marked ? txt.length() : t.length(); 123 int curpos = marked ? txt.length() : t.length();
124 validateAndSet( t, curpos, curpos, t.length() ); 124 validateAndSet( t, curpos, curpos, t.length() );
125 } 125 }
126} 126}
127 127
128void OLineEdit::setCompletedText( const QString& text ) 128void OLineEdit::setCompletedText( const QString& text )
129{ 129{
130 OGlobalSettings::Completion mode = completionMode(); 130 OGlobalSettings::Completion mode = completionMode();
131 bool marked = ( mode == OGlobalSettings::CompletionAuto || 131 bool marked = ( mode == OGlobalSettings::CompletionAuto ||
132 mode == OGlobalSettings::CompletionMan || 132 mode == OGlobalSettings::CompletionMan ||
133 mode == OGlobalSettings::CompletionPopup ); 133 mode == OGlobalSettings::CompletionPopup );
134 setCompletedText( text, marked ); 134 setCompletedText( text, marked );
135} 135}
136 136
137void OLineEdit::rotateText( OCompletionBase::KeyBindingType type ) 137void OLineEdit::rotateText( OCompletionBase::KeyBindingType type )
138{ 138{
139 OCompletion* comp = compObj(); 139 OCompletion* comp = compObj();
140 if ( comp && 140 if ( comp &&
141 (type == OCompletionBase::PrevCompletionMatch || 141 (type == OCompletionBase::PrevCompletionMatch ||
142 type == OCompletionBase::NextCompletionMatch ) ) 142 type == OCompletionBase::NextCompletionMatch ) )
143 { 143 {
144 QString input = (type == OCompletionBase::PrevCompletionMatch) ? comp->previousMatch() : comp->nextMatch(); 144 QString input = (type == OCompletionBase::PrevCompletionMatch) ? comp->previousMatch() : comp->nextMatch();
145 // Skip rotation if previous/next match is null or the same text 145 // Skip rotation if previous/next match is null or the same text
146 if ( input.isNull() || input == displayText() ) 146 if ( input.isNull() || input == displayText() )
147 return; 147 return;
148 #if QT_VERSION > 290 148 #if QT_VERSION >= 0x030000
149 setCompletedText( input, hasSelectedText() ); 149 setCompletedText( input, hasSelectedText() );
150 #else 150 #else
151 setCompletedText( input, hasMarkedText() ); 151 setCompletedText( input, hasMarkedText() );
152 #endif 152 #endif
153 } 153 }
154} 154}
155 155
156void OLineEdit::makeCompletion( const QString& text ) 156void OLineEdit::makeCompletion( const QString& text )
157{ 157{
158 OCompletion *comp = compObj(); 158 OCompletion *comp = compObj();
159 if ( !comp ) 159 if ( !comp )
160 return; // No completion object... 160 return; // No completion object...
161 161
162 QString match = comp->makeCompletion( text ); 162 QString match = comp->makeCompletion( text );
163 OGlobalSettings::Completion mode = completionMode(); 163 OGlobalSettings::Completion mode = completionMode();
164 if ( mode == OGlobalSettings::CompletionPopup ) 164 if ( mode == OGlobalSettings::CompletionPopup )
165 { 165 {
166 if ( match.isNull() ) 166 if ( match.isNull() )
167 { 167 {
168 if ( d->completionBox ) { 168 if ( d->completionBox ) {
169 d->completionBox->hide(); 169 d->completionBox->hide();
170 d->completionBox->clear(); 170 d->completionBox->clear();
171 } 171 }
172 } 172 }
173 else 173 else
174 setCompletedItems( comp->allMatches() ); 174 setCompletedItems( comp->allMatches() );
175 } 175 }
176 else 176 else
177 { 177 {
178 // all other completion modes 178 // all other completion modes
179 // If no match or the same match, simply return without completing. 179 // If no match or the same match, simply return without completing.
180 if ( match.isNull() || match == text ) 180 if ( match.isNull() || match == text )
181 return; 181 return;
182 182
183 setCompletedText( match ); 183 setCompletedText( match );
184 } 184 }
185} 185}
186 186
187void OLineEdit::setReadOnly(bool readOnly) 187void OLineEdit::setReadOnly(bool readOnly)
188{ 188{
189 QPalette p = palette(); 189 QPalette p = palette();
190 if (readOnly) 190 if (readOnly)
191 { 191 {
192 QColor color = p.color(QPalette::Disabled, QColorGroup::Background); 192 QColor color = p.color(QPalette::Disabled, QColorGroup::Background);
193 p.setColor(QColorGroup::Base, color); 193 p.setColor(QColorGroup::Base, color);
194 p.setColor(QColorGroup::Background, color); 194 p.setColor(QColorGroup::Background, color);
195 } 195 }
196 else 196 else
197 { 197 {
198 QColor color = p.color(QPalette::Normal, QColorGroup::Base); 198 QColor color = p.color(QPalette::Normal, QColorGroup::Base);
199 p.setColor(QColorGroup::Base, color); 199 p.setColor(QColorGroup::Base, color);
200 p.setColor(QColorGroup::Background, color); 200 p.setColor(QColorGroup::Background, color);
201 } 201 }
202 setPalette(p); 202 setPalette(p);
203 203
204 QLineEdit::setReadOnly (readOnly); 204 QLineEdit::setReadOnly (readOnly);
205} 205}
206 206
207void OLineEdit::keyPressEvent( QKeyEvent *e ) 207void OLineEdit::keyPressEvent( QKeyEvent *e )
208{ 208{
209 qDebug( "OLineEdit::keyPressEvent()" ); 209 qDebug( "OLineEdit::keyPressEvent()" );
210 210
211 /* 211 /*
212 212
213 KKey key( e ); 213 KKey key( e );
214 214
215 if ( KStdAccel::copy().contains( key ) ) { 215 if ( KStdAccel::copy().contains( key ) ) {
216 copy(); 216 copy();
217 return; 217 return;
218 } 218 }
219 else if ( KStdAccel::paste().contains( key ) ) { 219 else if ( KStdAccel::paste().contains( key ) ) {
220 paste(); 220 paste();
221 return; 221 return;
222 } 222 }
223 else if ( KStdAccel::cut().contains( key ) ) { 223 else if ( KStdAccel::cut().contains( key ) ) {
224 cut(); 224 cut();
225 return; 225 return;
226 } 226 }
227 else if ( KStdAccel::undo().contains( key ) ) { 227 else if ( KStdAccel::undo().contains( key ) ) {
228 undo(); 228 undo();
229 return; 229 return;
230 } 230 }
231 else if ( KStdAccel::redo().contains( key ) ) { 231 else if ( KStdAccel::redo().contains( key ) ) {
232 redo(); 232 redo();
233 return; 233 return;
234 } 234 }
235 else if ( KStdAccel::deleteWordBack().contains( key ) ) 235 else if ( KStdAccel::deleteWordBack().contains( key ) )
236 { 236 {
237 cursorWordBackward(TRUE); 237 cursorWordBackward(TRUE);
238 if ( hasSelectedText() ) 238 if ( hasSelectedText() )
239 del(); 239 del();
240 240
241 e->accept(); 241 e->accept();
242 return; 242 return;
243 } 243 }
244 else if ( KStdAccel::deleteWordForward().contains( key ) ) 244 else if ( KStdAccel::deleteWordForward().contains( key ) )
245 { 245 {
246 // Workaround for QT bug where 246 // Workaround for QT bug where
247 cursorWordForward(TRUE); 247 cursorWordForward(TRUE);
248 if ( hasSelectedText() ) 248 if ( hasSelectedText() )
249 del(); 249 del();
250 250
251 e->accept(); 251 e->accept();
252 return; 252 return;
253 } 253 }
254 */ 254 */
255 255
256 // Filter key-events if EchoMode is normal & 256 // Filter key-events if EchoMode is normal &
257 // completion mode is not set to CompletionNone 257 // completion mode is not set to CompletionNone
258 if ( echoMode() == QLineEdit::Normal && 258 if ( echoMode() == QLineEdit::Normal &&
259 completionMode() != OGlobalSettings::CompletionNone ) 259 completionMode() != OGlobalSettings::CompletionNone )
260 { 260 {
261 KeyBindingMap keys = getKeyBindings(); 261 KeyBindingMap keys = getKeyBindings();
262 OGlobalSettings::Completion mode = completionMode(); 262 OGlobalSettings::Completion mode = completionMode();
263 bool noModifier = (e->state() == NoButton || e->state()== ShiftButton); 263 bool noModifier = (e->state() == NoButton || e->state()== ShiftButton);
264 264
265 if ( (mode == OGlobalSettings::CompletionAuto || 265 if ( (mode == OGlobalSettings::CompletionAuto ||
266 mode == OGlobalSettings::CompletionMan) && noModifier ) 266 mode == OGlobalSettings::CompletionMan) && noModifier )
267 { 267 {
268 QString keycode = e->text(); 268 QString keycode = e->text();
269 if ( !keycode.isNull() && keycode.unicode()->isPrint() ) 269 if ( !keycode.isNull() && keycode.unicode()->isPrint() )
270 { 270 {
271 QLineEdit::keyPressEvent ( e ); 271 QLineEdit::keyPressEvent ( e );
272 QString txt = text(); 272 QString txt = text();
273 int len = txt.length(); 273 int len = txt.length();
274 #if QT_VERSION > 290 274 #if QT_VERSION >= 0x030000
275 if ( !hasSelectedText() && len && cursorPosition() == len ) 275 if ( !hasSelectedText() && len && cursorPosition() == len )
276 #else 276 #else
277 if ( !hasMarkedText() && len && cursorPosition() == len ) 277 if ( !hasMarkedText() && len && cursorPosition() == len )
278 #endif 278 #endif
279 { 279 {
280 if ( emitSignals() ) 280 if ( emitSignals() )
281 emit completion( txt ); 281 emit completion( txt );
282 if ( handleSignals() ) 282 if ( handleSignals() )
283 makeCompletion( txt ); 283 makeCompletion( txt );
284 e->accept(); 284 e->accept();
285 } 285 }
286 return; 286 return;
287 } 287 }
288 } 288 }
289 289
290 else if ( mode == OGlobalSettings::CompletionPopup && noModifier ) 290 else if ( mode == OGlobalSettings::CompletionPopup && noModifier )
291 { 291 {
292 qDebug( "OLineEdit::keyPressEvent() - global settings = CompletionPopup & noModifier" ); 292 qDebug( "OLineEdit::keyPressEvent() - global settings = CompletionPopup & noModifier" );
293 293
294 QString old_txt = text(); 294 QString old_txt = text();
295 QLineEdit::keyPressEvent ( e ); 295 QLineEdit::keyPressEvent ( e );
296 QString txt = text(); 296 QString txt = text();
297 int len = txt.length(); 297 int len = txt.length();
298 QString keycode = e->text(); 298 QString keycode = e->text();
299 299
300 300
301 if ( txt != old_txt && len && cursorPosition() == len && 301 if ( txt != old_txt && len && cursorPosition() == len &&
302 ( (!keycode.isNull() && keycode.unicode()->isPrint()) || 302 ( (!keycode.isNull() && keycode.unicode()->isPrint()) ||
303 e->key() == Key_Backspace ) ) 303 e->key() == Key_Backspace ) )
304 { 304 {
305 if ( emitSignals() ) 305 if ( emitSignals() )
306 emit completion( txt ); // emit when requested... 306 emit completion( txt ); // emit when requested...
307 if ( handleSignals() ) 307 if ( handleSignals() )
308 makeCompletion( txt ); // handle when requested... 308 makeCompletion( txt ); // handle when requested...
309 e->accept(); 309 e->accept();
310 } 310 }
311 else if (!len && d->completionBox && d->completionBox->isVisible()) 311 else if (!len && d->completionBox && d->completionBox->isVisible())
312 d->completionBox->hide(); 312 d->completionBox->hide();
313 313
314 return; 314 return;
315 } 315 }
316 316
317 /*else if ( mode == OGlobalSettings::CompletionShell ) 317 /*else if ( mode == OGlobalSettings::CompletionShell )
318 { 318 {
319 // Handles completion. 319 // Handles completion.
320 KShortcut cut; 320 KShortcut cut;
321 if ( keys[TextCompletion].isNull() ) 321 if ( keys[TextCompletion].isNull() )
322 cut = KStdAccel::shortcut(KStdAccel::TextCompletion); 322 cut = KStdAccel::shortcut(KStdAccel::TextCompletion);
323 else 323 else
324 cut = keys[TextCompletion]; 324 cut = keys[TextCompletion];
325 325
326 if ( cut.contains( key ) ) 326 if ( cut.contains( key ) )
327 { 327 {
328 // Emit completion if the completion mode is CompletionShell 328 // Emit completion if the completion mode is CompletionShell
329 // and the cursor is at the end of the string. 329 // and the cursor is at the end of the string.
330 QString txt = text(); 330 QString txt = text();
331 int len = txt.length(); 331 int len = txt.length();
332 if ( cursorPosition() == len && len != 0 ) 332 if ( cursorPosition() == len && len != 0 )
333 { 333 {
334 if ( emitSignals() ) 334 if ( emitSignals() )
335 emit completion( txt ); 335 emit completion( txt );
336 if ( handleSignals() ) 336 if ( handleSignals() )
337 makeCompletion( txt ); 337 makeCompletion( txt );
338 return; 338 return;
339 } 339 }
340 } 340 }
341 else if ( d->completionBox ) 341 else if ( d->completionBox )
342 d->completionBox->hide(); 342 d->completionBox->hide();
343 } 343 }
344 344
345 // handle rotation 345 // handle rotation
346 if ( mode != OGlobalSettings::CompletionNone ) 346 if ( mode != OGlobalSettings::CompletionNone )
347 { 347 {
348 // Handles previous match 348 // Handles previous match
349 KShortcut cut; 349 KShortcut cut;
350 if ( keys[PrevCompletionMatch].isNull() ) 350 if ( keys[PrevCompletionMatch].isNull() )
351 cut = KStdAccel::shortcut(KStdAccel::PrevCompletion); 351 cut = KStdAccel::shortcut(KStdAccel::PrevCompletion);
352 else 352 else
353 cut = keys[PrevCompletionMatch]; 353 cut = keys[PrevCompletionMatch];
354 354
355 if ( cut.contains( key ) ) 355 if ( cut.contains( key ) )
356 { 356 {
357 if ( emitSignals() ) 357 if ( emitSignals() )
358 emit textRotation( OCompletionBase::PrevCompletionMatch ); 358 emit textRotation( OCompletionBase::PrevCompletionMatch );
359 if ( handleSignals() ) 359 if ( handleSignals() )
360 rotateText( OCompletionBase::PrevCompletionMatch ); 360 rotateText( OCompletionBase::PrevCompletionMatch );
361 return; 361 return;
362 } 362 }
363 363
364 // Handles next match 364 // Handles next match
365 if ( keys[NextCompletionMatch].isNull() ) 365 if ( keys[NextCompletionMatch].isNull() )
366 cut = KStdAccel::key(KStdAccel::NextCompletion); 366 cut = KStdAccel::key(KStdAccel::NextCompletion);
367 else 367 else
368 cut = keys[NextCompletionMatch]; 368 cut = keys[NextCompletionMatch];
369 369
370 if ( cut.contains( key ) ) 370 if ( cut.contains( key ) )
371 { 371 {
372 if ( emitSignals() ) 372 if ( emitSignals() )
373 emit textRotation( OCompletionBase::NextCompletionMatch ); 373 emit textRotation( OCompletionBase::NextCompletionMatch );
374 if ( handleSignals() ) 374 if ( handleSignals() )
375 rotateText( OCompletionBase::NextCompletionMatch ); 375 rotateText( OCompletionBase::NextCompletionMatch );
376 return; 376 return;
377 } 377 }
378 } 378 }
379 379
380 // substring completion 380 // substring completion
381 if ( compObj() ) 381 if ( compObj() )
382 { 382 {
383 KShortcut cut; 383 KShortcut cut;
384 if ( keys[SubstringCompletion].isNull() ) 384 if ( keys[SubstringCompletion].isNull() )
385 cut = KStdAccel::shortcut(KStdAccel::SubstringCompletion); 385 cut = KStdAccel::shortcut(KStdAccel::SubstringCompletion);
386 else 386 else
387 cut = keys[SubstringCompletion]; 387 cut = keys[SubstringCompletion];
388 388
389 if ( cut.contains( key ) ) 389 if ( cut.contains( key ) )
390 { 390 {
391 if ( emitSignals() ) 391 if ( emitSignals() )
392 emit substringCompletion( text() ); 392 emit substringCompletion( text() );
393 if ( handleSignals() ) 393 if ( handleSignals() )
394 { 394 {
395 setCompletedItems( compObj()->substringCompletion(text())); 395 setCompletedItems( compObj()->substringCompletion(text()));
396 e->accept(); 396 e->accept();
397 } 397 }
398 return; 398 return;
399 } 399 }
400 } */ 400 } */
401 } 401 }
402 402
403 // Let QLineEdit handle any other keys events. 403 // Let QLineEdit handle any other keys events.
404 QLineEdit::keyPressEvent ( e ); 404 QLineEdit::keyPressEvent ( e );
405} 405}
406 406
407void OLineEdit::mouseDoubleClickEvent( QMouseEvent* e ) 407void OLineEdit::mouseDoubleClickEvent( QMouseEvent* e )
408{ 408{
409 if ( e->button() == Qt::LeftButton ) 409 if ( e->button() == Qt::LeftButton )
410 { 410 {
411 possibleTripleClick=true; 411 possibleTripleClick=true;
412 QTimer::singleShot( QApplication::doubleClickInterval(),this, 412 QTimer::singleShot( QApplication::doubleClickInterval(),this,
413 SLOT(tripleClickTimeout()) ); 413 SLOT(tripleClickTimeout()) );
414 } 414 }
415 QLineEdit::mouseDoubleClickEvent( e ); 415 QLineEdit::mouseDoubleClickEvent( e );
416} 416}
417 417
418void OLineEdit::mousePressEvent( QMouseEvent* e ) 418void OLineEdit::mousePressEvent( QMouseEvent* e )
419{ 419{
420 if ( possibleTripleClick && e->button() == Qt::LeftButton ) 420 if ( possibleTripleClick && e->button() == Qt::LeftButton )
421 { 421 {
422 selectAll(); 422 selectAll();
423 return; 423 return;
424 } 424 }
425 QLineEdit::mousePressEvent( e ); 425 QLineEdit::mousePressEvent( e );
426} 426}
427 427
428void OLineEdit::tripleClickTimeout() 428void OLineEdit::tripleClickTimeout()
429{ 429{
430 possibleTripleClick=false; 430 possibleTripleClick=false;
431} 431}
432 432
433QPopupMenu *OLineEdit::createPopupMenu() 433QPopupMenu *OLineEdit::createPopupMenu()
434{ 434{
435 // Return if popup menu is not enabled !! 435 // Return if popup menu is not enabled !!
436 if ( !m_bEnableMenu ) 436 if ( !m_bEnableMenu )
437 return 0; 437 return 0;
438 438
439 #if QT_VERSION > 290 439 #if QT_VERSION >= 0x030000
440 QPopupMenu *popup = QLineEdit::createPopupMenu(); 440 QPopupMenu *popup = QLineEdit::createPopupMenu();
441 #else 441 #else
442 QPopupMenu *popup = new QPopupMenu(); 442 QPopupMenu *popup = new QPopupMenu();
443 #warning OLineEdit is not fully functional on Qt2 443 #warning OLineEdit is not fully functional on Qt2
444 #endif 444 #endif
445 445
446 // completion object is present. 446 // completion object is present.
447 if ( compObj() ) 447 if ( compObj() )
448 { 448 {
449 QPopupMenu *subMenu = new QPopupMenu( popup ); 449 QPopupMenu *subMenu = new QPopupMenu( popup );
450 connect( subMenu, SIGNAL( activated(int) ), 450 connect( subMenu, SIGNAL( activated(int) ),
451 this, SLOT( completionMenuActivated(int) ) ); 451 this, SLOT( completionMenuActivated(int) ) );
452 452
453 popup->insertSeparator(); 453 popup->insertSeparator();
454 //popup->insertItem( SmallIconSet("completion"), i18n("Text Completion"), 454 //popup->insertItem( SmallIconSet("completion"), i18n("Text Completion"),
455 // subMenu ); 455 // subMenu );
456 456
457 popup->insertItem( tr("Text Completion"), subMenu ); 457 popup->insertItem( tr("Text Completion"), subMenu );
458 458
459 subMenu->insertItem( tr("None"), NoCompletion ); 459 subMenu->insertItem( tr("None"), NoCompletion );
460 subMenu->insertItem( tr("Manual"), ShellCompletion ); 460 subMenu->insertItem( tr("Manual"), ShellCompletion );
461 subMenu->insertItem( tr("Automatic"), AutoCompletion ); 461 subMenu->insertItem( tr("Automatic"), AutoCompletion );
462 subMenu->insertItem( tr("Dropdown List"), PopupCompletion ); 462 subMenu->insertItem( tr("Dropdown List"), PopupCompletion );
463 subMenu->insertItem( tr("Short Automatic"), SemiAutoCompletion ); 463 subMenu->insertItem( tr("Short Automatic"), SemiAutoCompletion );
464 464
465 //subMenu->setAccel( KStdAccel::completion(), ShellCompletion ); 465 //subMenu->setAccel( KStdAccel::completion(), ShellCompletion );
466 subMenu->setAccel( Key_Tab, ShellCompletion ); 466 subMenu->setAccel( Key_Tab, ShellCompletion );
467 467
468 OGlobalSettings::Completion mode = completionMode(); 468 OGlobalSettings::Completion mode = completionMode();
469 subMenu->setItemChecked( NoCompletion, 469 subMenu->setItemChecked( NoCompletion,
470 mode == OGlobalSettings::CompletionNone ); 470 mode == OGlobalSettings::CompletionNone );
471 subMenu->setItemChecked( ShellCompletion, 471 subMenu->setItemChecked( ShellCompletion,
472 mode == OGlobalSettings::CompletionShell ); 472 mode == OGlobalSettings::CompletionShell );
473 subMenu->setItemChecked( PopupCompletion, 473 subMenu->setItemChecked( PopupCompletion,
474 mode == OGlobalSettings::CompletionPopup ); 474 mode == OGlobalSettings::CompletionPopup );
475 subMenu->setItemChecked( AutoCompletion, 475 subMenu->setItemChecked( AutoCompletion,
476 mode == OGlobalSettings::CompletionAuto ); 476 mode == OGlobalSettings::CompletionAuto );
477 subMenu->setItemChecked( SemiAutoCompletion, 477 subMenu->setItemChecked( SemiAutoCompletion,
478 mode == OGlobalSettings::CompletionMan ); 478 mode == OGlobalSettings::CompletionMan );
479 if ( mode != OGlobalSettings::completionMode() ) 479 if ( mode != OGlobalSettings::completionMode() )
480 { 480 {
481 subMenu->insertSeparator(); 481 subMenu->insertSeparator();
482 subMenu->insertItem( tr("Default"), Default ); 482 subMenu->insertItem( tr("Default"), Default );
483 } 483 }
484 } 484 }
485 // ### do we really need this? Yes, Please do not remove! This 485 // ### do we really need this? Yes, Please do not remove! This
486 // allows applications to extend the popup menu without having to 486 // allows applications to extend the popup menu without having to
487 // inherit from this class! (DA) 487 // inherit from this class! (DA)
488 emit aboutToShowContextMenu( popup ); 488 emit aboutToShowContextMenu( popup );
489 489
490 return popup; 490 return popup;
491} 491}
492 492
493void OLineEdit::completionMenuActivated( int id ) 493void OLineEdit::completionMenuActivated( int id )
494{ 494{
495 OGlobalSettings::Completion oldMode = completionMode(); 495 OGlobalSettings::Completion oldMode = completionMode();
496 496
497 switch ( id ) 497 switch ( id )
498 { 498 {
499 case Default: 499 case Default:
500 setCompletionMode( OGlobalSettings::completionMode() ); break; 500 setCompletionMode( OGlobalSettings::completionMode() ); break;
501 case NoCompletion: 501 case NoCompletion:
502 setCompletionMode( OGlobalSettings::CompletionNone ); break; 502 setCompletionMode( OGlobalSettings::CompletionNone ); break;
503 case AutoCompletion: 503 case AutoCompletion:
504 setCompletionMode( OGlobalSettings::CompletionAuto ); break; 504 setCompletionMode( OGlobalSettings::CompletionAuto ); break;
505 case SemiAutoCompletion: 505 case SemiAutoCompletion:
506 setCompletionMode( OGlobalSettings::CompletionMan ); break; 506 setCompletionMode( OGlobalSettings::CompletionMan ); break;
507 case ShellCompletion: 507 case ShellCompletion:
508 setCompletionMode( OGlobalSettings::CompletionShell ); break; 508 setCompletionMode( OGlobalSettings::CompletionShell ); break;
509 case PopupCompletion: 509 case PopupCompletion:
510 setCompletionMode( OGlobalSettings::CompletionPopup ); break; 510 setCompletionMode( OGlobalSettings::CompletionPopup ); break;
511 default: return; 511 default: return;
512 } 512 }
513 513
514 if ( oldMode != completionMode() ) 514 if ( oldMode != completionMode() )
515 { 515 {
516 if ( oldMode == OGlobalSettings::CompletionPopup && 516 if ( oldMode == OGlobalSettings::CompletionPopup &&
517 d->completionBox && d->completionBox->isVisible() ) 517 d->completionBox && d->completionBox->isVisible() )
518 d->completionBox->hide(); 518 d->completionBox->hide();
519 emit completionModeChanged( completionMode() ); 519 emit completionModeChanged( completionMode() );
520 } 520 }
521} 521}
522 522
523/*void OLineEdit::dropEvent(QDropEvent *e) 523/*void OLineEdit::dropEvent(QDropEvent *e)
524{ 524{
525 KURL::List urlList; 525 KURL::List urlList;
526 if( d->handleURLDrops && KURLDrag::decode( e, urlList ) ) 526 if( d->handleURLDrops && KURLDrag::decode( e, urlList ) )
527 { 527 {
528 QString dropText = text(); 528 QString dropText = text();
529 KURL::List::ConstIterator it; 529 KURL::List::ConstIterator it;
530 for( it = urlList.begin() ; it != urlList.end() ; ++it ) 530 for( it = urlList.begin() ; it != urlList.end() ; ++it )
531 { 531 {
532 if(!dropText.isEmpty()) 532 if(!dropText.isEmpty())
533 dropText+=' '; 533 dropText+=' ';
534 534
535 dropText += (*it).prettyURL(); 535 dropText += (*it).prettyURL();