summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-04-11 00:29:46 (UTC)
committer zautrix <zautrix>2005-04-11 00:29:46 (UTC)
commit93b536533e1c908085adb61553907615c31786c0 (patch) (unidiff)
tree42b150b957c815416143c4ba82be4099d254ba37
parent726d9302b230f53cc058d2dbfd89c7a3c4f18fb2 (diff)
downloadkdepimpi-93b536533e1c908085adb61553907615c31786c0.zip
kdepimpi-93b536533e1c908085adb61553907615c31786c0.tar.gz
kdepimpi-93b536533e1c908085adb61553907615c31786c0.tar.bz2
fixxxxxx
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/views/contactlistview.cpp8
-rw-r--r--microkde/kdeui/klistview.cpp3
-rw-r--r--microkde/kglobalsettings.cpp9
-rw-r--r--microkde/kglobalsettings.h1
4 files changed, 15 insertions, 6 deletions
diff --git a/kaddressbook/views/contactlistview.cpp b/kaddressbook/views/contactlistview.cpp
index 09d9c03..9accf78 100644
--- a/kaddressbook/views/contactlistview.cpp
+++ b/kaddressbook/views/contactlistview.cpp
@@ -65,365 +65,365 @@ void DynamicTip::maybeTip( const QPoint &pos )
65 65
66 QListViewItem *lvi = plv->itemAt( pos - posVp ); 66 QListViewItem *lvi = plv->itemAt( pos - posVp );
67 if (!lvi) 67 if (!lvi)
68 return; 68 return;
69 69
70#ifndef KAB_EMBEDDED 70#ifndef KAB_EMBEDDED
71 ContactListViewItem *plvi = dynamic_cast< ContactListViewItem* >(lvi); 71 ContactListViewItem *plvi = dynamic_cast< ContactListViewItem* >(lvi);
72#else //KAB_EMBEDDED 72#else //KAB_EMBEDDED
73 ContactListViewItem *plvi = (ContactListViewItem*)(lvi); 73 ContactListViewItem *plvi = (ContactListViewItem*)(lvi);
74#endif //KAB_EMBEDDED 74#endif //KAB_EMBEDDED
75 75
76 if (!plvi) 76 if (!plvi)
77 return; 77 return;
78 78
79 if (ishidden) { 79 if (ishidden) {
80 QString s; 80 QString s;
81 QRect r = plv->itemRect( lvi ); 81 QRect r = plv->itemRect( lvi );
82 r.moveBy( posVp.x(), posVp.y() ); 82 r.moveBy( posVp.x(), posVp.y() );
83 83
84 //kdDebug() << "Tip rec: " << r.x() << "," << r.y() << "," << r.width() 84 //kdDebug() << "Tip rec: " << r.x() << "," << r.y() << "," << r.width()
85 // << "," << r.height() << endl; 85 // << "," << r.height() << endl;
86 86
87 KABC::Addressee a = plvi->addressee(); 87 KABC::Addressee a = plvi->addressee();
88 if (a.isEmpty()) 88 if (a.isEmpty())
89 return; 89 return;
90 90
91 s += i18n("label: value", "%1: %2").arg(a.formattedNameLabel()) 91 s += i18n("label: value", "%1: %2").arg(a.formattedNameLabel())
92 .arg(a.formattedName()); 92 .arg(a.formattedName());
93 93
94 s += '\n'; 94 s += '\n';
95 s += i18n("label: value", "%1: %2").arg(a.organizationLabel()) 95 s += i18n("label: value", "%1: %2").arg(a.organizationLabel())
96 .arg(a.organization()); 96 .arg(a.organization());
97 97
98 QString notes = a.note().stripWhiteSpace(); 98 QString notes = a.note().stripWhiteSpace();
99 if ( !notes.isEmpty() ) { 99 if ( !notes.isEmpty() ) {
100 notes += '\n'; 100 notes += '\n';
101 s += '\n' + i18n("label: value", "%1: \n").arg(a.noteLabel()); 101 s += '\n' + i18n("label: value", "%1: \n").arg(a.noteLabel());
102 QFontMetrics fm( font() ); 102 QFontMetrics fm( font() );
103 103
104 // Begin word wrap code based on QMultiLineEdit code 104 // Begin word wrap code based on QMultiLineEdit code
105 int i = 0; 105 int i = 0;
106 bool doBreak = false; 106 bool doBreak = false;
107 int linew = 0; 107 int linew = 0;
108 int lastSpace = -1; 108 int lastSpace = -1;
109 int a = 0; 109 int a = 0;
110 int lastw = 0; 110 int lastw = 0;
111 111
112 while ( i < int(notes.length()) ) { 112 while ( i < int(notes.length()) ) {
113 doBreak = FALSE; 113 doBreak = FALSE;
114 if ( notes[i] != '\n' ) 114 if ( notes[i] != '\n' )
115 linew += fm.width( notes[i] ); 115 linew += fm.width( notes[i] );
116 116
117 if ( lastSpace >= a && notes[i] != '\n' ) 117 if ( lastSpace >= a && notes[i] != '\n' )
118 if (linew >= parentWidget()->width()) { 118 if (linew >= parentWidget()->width()) {
119 doBreak = TRUE; 119 doBreak = TRUE;
120 if ( lastSpace > a ) { 120 if ( lastSpace > a ) {
121 i = lastSpace; 121 i = lastSpace;
122 linew = lastw; 122 linew = lastw;
123 } 123 }
124 else 124 else
125 i = QMAX( a, i-1 ); 125 i = QMAX( a, i-1 );
126 } 126 }
127 127
128 if ( notes[i] == '\n' || doBreak ) { 128 if ( notes[i] == '\n' || doBreak ) {
129 s += notes.mid( a, i - a + (doBreak?1:0) ) +"\n"; 129 s += notes.mid( a, i - a + (doBreak?1:0) ) +"\n";
130 130
131 a = i + 1; 131 a = i + 1;
132 lastSpace = a; 132 lastSpace = a;
133 linew = 0; 133 linew = 0;
134 } 134 }
135 135
136 if ( notes[i].isSpace() ) { 136 if ( notes[i].isSpace() ) {
137 lastSpace = i; 137 lastSpace = i;
138 lastw = linew; 138 lastw = linew;
139 } 139 }
140 140
141 if ( lastSpace <= a ) { 141 if ( lastSpace <= a ) {
142 lastw = linew; 142 lastw = linew;
143 } 143 }
144 144
145 ++i; 145 ++i;
146 } 146 }
147 } 147 }
148 148
149 tip( r, s ); 149 tip( r, s );
150 } 150 }
151 else 151 else
152 hide(); 152 hide();
153 ishidden = !ishidden; 153 ishidden = !ishidden;
154 154
155} 155}
156 156
157/////////////////////////// 157///////////////////////////
158// ContactListViewItem Methods 158// ContactListViewItem Methods
159 159
160ContactListViewItem::ContactListViewItem(const KABC::Addressee &a, 160ContactListViewItem::ContactListViewItem(const KABC::Addressee &a,
161 ContactListView *parent, 161 ContactListView *parent,
162 KABC::AddressBook *doc, 162 KABC::AddressBook *doc,
163 const KABC::Field::List &fields ) 163 const KABC::Field::List &fields )
164 : KListViewItem(parent), mAddressee(a), mFields( fields ), 164 : KListViewItem(parent), mAddressee(a), mFields( fields ),
165 parentListView( parent ), mDocument(doc) 165 parentListView( parent ), mDocument(doc)
166{ 166{
167 refresh(); 167 refresh();
168} 168}
169 169
170QString ContactListViewItem::key(int column, bool ascending) const 170QString ContactListViewItem::key(int column, bool ascending) const
171{ 171{
172#ifndef DESKTOP_VERSION 172#ifndef DESKTOP_VERSION
173 int lan = KGlobal::locale()->language(); 173 int lan = KGlobal::locale()->language();
174 //qDebug("language %d ", lan); 174 //qDebug("language %d ", lan);
175 if ( lan == 1 ) { //GERMAN 175 if ( lan == 1 ) { //GERMAN
176 QString ret = QListViewItem::key(column, ascending).lower().utf8(); 176 QString ret = QListViewItem::key(column, ascending).lower().utf8();
177 int start = -1; 177 int start = -1;
178 while ( (start = ret.find( 'ä', start+1)) > 0 ) { 178 while ( (start = ret.find( 'ä', start+1)) > 0 ) {
179 ret.at(start-1) = 'a'; 179 ret.at(start-1) = 'a';
180 } 180 }
181 start = -1; 181 start = -1;
182 while ( (start = ret.find( 'ö', start+1)) > 0 ) { 182 while ( (start = ret.find( 'ö', start+1)) > 0 ) {
183 ret.at(start-1) = 'o'; 183 ret.at(start-1) = 'o';
184 } 184 }
185 start = -1; 185 start = -1;
186 while ( (start = ret.find( 'ü', start+1)) > 0 ) { 186 while ( (start = ret.find( 'ü', start+1)) > 0 ) {
187 ret.at(start-1) = 'o'; 187 ret.at(start-1) = 'o';
188 } 188 }
189 start = -1; 189 start = -1;
190 while ( (start = ret.find( 'ß', start+1)) > 0 ) { 190 while ( (start = ret.find( 'ß', start+1)) > 0 ) {
191 ret.at(start-1) = 's'; 191 ret.at(start-1) = 's';
192 } 192 }
193 //qDebug("conv string %s ", ret.latin1()); 193 //qDebug("conv string %s ", ret.latin1());
194 194
195 return ret; 195 return ret;
196 196
197 } 197 }
198 else 198 else
199#endif 199#endif
200 return QListViewItem::key(column, ascending).lower(); 200 return QListViewItem::key(column, ascending).lower();
201} 201}
202 202
203void ContactListViewItem::paintCell(QPainter * p, 203void ContactListViewItem::paintCell(QPainter * p,
204 const QColorGroup & cg, 204 const QColorGroup & cg,
205 int column, 205 int column,
206 int width, 206 int width,
207 int align) 207 int align)
208{ 208{
209 KListViewItem::paintCell(p, cg, column, width, align); 209 KListViewItem::paintCell(p, cg, column, width, align);
210 210
211 if ( !p ) 211 if ( !p )
212 return; 212 return;
213 213
214 if (parentListView->singleLine()) { 214 if (parentListView->singleLine()) {
215 p->setPen( parentListView->alternateColor() ); 215 p->setPen( parentListView->alternateColor() );
216 p->drawLine( 0, height() - 1, width, height() - 1 ); 216 p->drawLine( 0, height() - 1, width, height() - 1 );
217 } 217 }
218} 218}
219 219
220 220
221ContactListView *ContactListViewItem::parent() 221ContactListView *ContactListViewItem::parent()
222{ 222{
223 return parentListView; 223 return parentListView;
224} 224}
225 225
226 226
227void ContactListViewItem::refresh() 227void ContactListViewItem::refresh()
228{ 228{
229 // Update our addressee, since it may have changed else were 229 // Update our addressee, since it may have changed else were
230 mAddressee = mDocument->findByUid(mAddressee.uid()); 230 mAddressee = mDocument->findByUid(mAddressee.uid());
231 if (mAddressee.isEmpty()) 231 if (mAddressee.isEmpty())
232 return; 232 return;
233 233
234 int i = 0; 234 int i = 0;
235 KABC::Field::List::ConstIterator it; 235 KABC::Field::List::ConstIterator it;
236 for( it = mFields.begin(); it != mFields.end(); ++it ) { 236 for( it = mFields.begin(); it != mFields.end(); ++it ) {
237 setText( i++, (*it)->value( mAddressee ) ); 237 setText( i++, (*it)->value( mAddressee ) );
238 } 238 }
239} 239}
240 240
241/////////////////////////////// 241///////////////////////////////
242// ContactListView 242// ContactListView
243 243
244ContactListView::ContactListView(KAddressBookTableView *view, 244ContactListView::ContactListView(KAddressBookTableView *view,
245 KABC::AddressBook* /* doc */, 245 KABC::AddressBook* /* doc */,
246 QWidget *parent, 246 QWidget *parent,
247 const char *name ) 247 const char *name )
248 : KListView( parent, name ), 248 : KListView( parent, name ),
249 pabWidget( view ), 249 pabWidget( view ),
250 oldColumn( 0 ) 250 oldColumn( 0 )
251{ 251{
252 mFlagBlockKeyPressed = false; 252 mFlagBlockKeyPressed = false;
253 mFlagKeyPressed = false; 253 mFlagKeyPressed = false;
254 mABackground = true; 254 mABackground = true;
255 mSingleLine = false; 255 mSingleLine = false;
256 mToolTips = true; 256 mToolTips = true;
257#ifndef KAB_EMBEDDED 257
258 mAlternateColor = KGlobalSettings::alternateBackgroundColor(); 258 mAlternateColor = KGlobalSettings::alternateBackgroundColor();
259#else //KAB_EMBEDDED 259
260 mAlternateColor = QColor(240, 240, 240); 260
261#endif //KAB_EMBEDDED 261
262 262
263 setAlternateBackgroundEnabled(mABackground); 263 setAlternateBackgroundEnabled(mABackground);
264 setAcceptDrops( true ); 264 setAcceptDrops( true );
265 viewport()->setAcceptDrops( true ); 265 viewport()->setAcceptDrops( true );
266 setAllColumnsShowFocus( true ); 266 setAllColumnsShowFocus( true );
267 setShowSortIndicator(true); 267 setShowSortIndicator(true);
268 268
269 setSelectionModeExt( KListView::Extended ); 269 setSelectionModeExt( KListView::Extended );
270 setDropVisualizer(false); 270 setDropVisualizer(false);
271 // setFrameStyle(QFrame::NoFrame); 271 // setFrameStyle(QFrame::NoFrame);
272 //setLineWidth ( 0 ); 272 //setLineWidth ( 0 );
273 //setMidLineWidth ( 0 ); 273 //setMidLineWidth ( 0 );
274 //setMargin ( 0 ); 274 //setMargin ( 0 );
275#ifndef KAB_EMBEDDED 275#ifndef KAB_EMBEDDED
276 connect(this, SIGNAL(dropped(QDropEvent*)), 276 connect(this, SIGNAL(dropped(QDropEvent*)),
277 this, SLOT(itemDropped(QDropEvent*))); 277 this, SLOT(itemDropped(QDropEvent*)));
278#endif //KAB_EMBEDDED 278#endif //KAB_EMBEDDED
279 279
280 280
281 new DynamicTip( this ); 281 new DynamicTip( this );
282} 282}
283void ContactListView::printMe() 283void ContactListView::printMe()
284{ 284{
285#ifdef DESKTOP_VERSION 285#ifdef DESKTOP_VERSION
286 QPrinter printer; 286 QPrinter printer;
287 if (!printer.setup() ) 287 if (!printer.setup() )
288 return; 288 return;
289 QPainter p; 289 QPainter p;
290 p.begin ( &printer ); 290 p.begin ( &printer );
291 QPaintDeviceMetrics m = QPaintDeviceMetrics ( &printer ); 291 QPaintDeviceMetrics m = QPaintDeviceMetrics ( &printer );
292 float dx, dy; 292 float dx, dy;
293 int wid = (m.width() * 9)/10; 293 int wid = (m.width() * 9)/10;
294 dx = (float) wid/(float)contentsWidth (); 294 dx = (float) wid/(float)contentsWidth ();
295 dy = (float)(m.height()) / (float)contentsHeight (); 295 dy = (float)(m.height()) / (float)contentsHeight ();
296 float scale; 296 float scale;
297 // scale to fit the width or height of the paper 297 // scale to fit the width or height of the paper
298 if ( dx < dy ) 298 if ( dx < dy )
299 scale = dx; 299 scale = dx;
300 else 300 else
301 scale = dy; 301 scale = dy;
302 p.translate( m.width()/10,0 ); 302 p.translate( m.width()/10,0 );
303 p.scale( scale, scale ); 303 p.scale( scale, scale );
304 qDebug("scale %f ", scale); 304 qDebug("scale %f ", scale);
305 drawContents ( &p, 0,0, contentsWidth (), contentsHeight () ); 305 drawContents ( &p, 0,0, contentsWidth (), contentsHeight () );
306 p.end(); 306 p.end();
307 qDebug("Why does it not print??? "); 307 qDebug("Why does it not print??? ");
308#endif 308#endif
309} 309}
310 310
311void ContactListView::setAlternateColor(const QColor &m_AlternateColor) 311void ContactListView::setAlternateColor(const QColor &m_AlternateColor)
312{ 312{
313 mAlternateColor = m_AlternateColor; 313 mAlternateColor = m_AlternateColor;
314} 314}
315 315
316void ContactListView::paintEmptyArea( QPainter * p, const QRect & rect ) 316void ContactListView::paintEmptyArea( QPainter * p, const QRect & rect )
317{ 317{
318 QBrush b = palette().brush(QPalette::Active, QColorGroup::Base); 318 QBrush b = palette().brush(QPalette::Active, QColorGroup::Base);
319 319
320 // Get the brush, which will have the background pixmap if there is one. 320 // Get the brush, which will have the background pixmap if there is one.
321 if (b.pixmap()) 321 if (b.pixmap())
322 { 322 {
323 p->drawTiledPixmap( rect.left(), rect.top(), rect.width(), rect.height(), 323 p->drawTiledPixmap( rect.left(), rect.top(), rect.width(), rect.height(),
324 *(b.pixmap()), 324 *(b.pixmap()),
325 rect.left() + contentsX(), 325 rect.left() + contentsX(),
326 rect.top() + contentsY() ); 326 rect.top() + contentsY() );
327 } 327 }
328 328
329 else 329 else
330 { 330 {
331 // Do a normal paint 331 // Do a normal paint
332 KListView::paintEmptyArea(p, rect); 332 KListView::paintEmptyArea(p, rect);
333 } 333 }
334} 334}
335 335
336void ContactListView::contentsMousePressEvent(QMouseEvent* e) 336void ContactListView::contentsMousePressEvent(QMouseEvent* e)
337{ 337{
338 presspos = e->pos(); 338 presspos = e->pos();
339 KListView::contentsMousePressEvent(e); 339 KListView::contentsMousePressEvent(e);
340} 340}
341 341
342 342
343// To initiate a drag operation 343// To initiate a drag operation
344void ContactListView::contentsMouseMoveEvent( QMouseEvent *e ) 344void ContactListView::contentsMouseMoveEvent( QMouseEvent *e )
345{ 345{
346 if ((e->state() & LeftButton) && (e->pos() - presspos).manhattanLength() > 4 ) { 346 if ((e->state() & LeftButton) && (e->pos() - presspos).manhattanLength() > 4 ) {
347 emit startAddresseeDrag(); 347 emit startAddresseeDrag();
348 } 348 }
349 else 349 else
350 KListView::contentsMouseMoveEvent( e ); 350 KListView::contentsMouseMoveEvent( e );
351} 351}
352 352
353bool ContactListView::acceptDrag(QDropEvent *e) const 353bool ContactListView::acceptDrag(QDropEvent *e) const
354{ 354{
355#ifndef KAB_EMBEDDED 355#ifndef KAB_EMBEDDED
356 return QTextDrag::canDecode(e); 356 return QTextDrag::canDecode(e);
357#else //KAB_EMBEDDED 357#else //KAB_EMBEDDED
358qDebug("ContactListView::acceptDrag has to be fixed"); 358qDebug("ContactListView::acceptDrag has to be fixed");
359 return false; 359 return false;
360#endif //KAB_EMBEDDED 360#endif //KAB_EMBEDDED
361} 361}
362 362
363void ContactListView::itemDropped(QDropEvent *e) 363void ContactListView::itemDropped(QDropEvent *e)
364{ 364{
365 contentsDropEvent(e); 365 contentsDropEvent(e);
366} 366}
367 367
368void ContactListView::contentsDropEvent( QDropEvent *e ) 368void ContactListView::contentsDropEvent( QDropEvent *e )
369{ 369{
370 emit addresseeDropped(e); 370 emit addresseeDropped(e);
371} 371}
372 372
373void ContactListView::setAlternateBackgroundEnabled(bool enabled) 373void ContactListView::setAlternateBackgroundEnabled(bool enabled)
374{ 374{
375 mABackground = enabled; 375 mABackground = enabled;
376 376
377 if (mABackground) 377 if (mABackground)
378 { 378 {
379 setAlternateBackground(mAlternateColor); 379 setAlternateBackground(mAlternateColor);
380 } 380 }
381 else 381 else
382 { 382 {
383 setAlternateBackground(QColor()); 383 setAlternateBackground(QColor());
384 } 384 }
385} 385}
386 386
387void ContactListView::setBackgroundPixmap(const QString &filename) 387void ContactListView::setBackgroundPixmap(const QString &filename)
388{ 388{
389 if (filename.isEmpty()) 389 if (filename.isEmpty())
390 { 390 {
391 unsetPalette(); 391 unsetPalette();
392 } 392 }
393 else 393 else
394 { 394 {
395 qDebug("ContactListView::setBackgroundPixmap has to be verified"); 395 qDebug("ContactListView::setBackgroundPixmap has to be verified");
396//US setPaletteBackgroundPixmap(QPixmap(filename)); 396//US setPaletteBackgroundPixmap(QPixmap(filename));
397 KListView::setBackgroundPixmap((const QPixmap&)QPixmap(filename)); 397 KListView::setBackgroundPixmap((const QPixmap&)QPixmap(filename));
398 } 398 }
399 399
400} 400}
401 401
402void ContactListView::keyPressEvent ( QKeyEvent * e ) 402void ContactListView::keyPressEvent ( QKeyEvent * e )
403{ 403{
404 if ( mFlagBlockKeyPressed ) 404 if ( mFlagBlockKeyPressed )
405 return; 405 return;
406 qApp->processEvents(); 406 qApp->processEvents();
407 if ( e->isAutoRepeat() && !mFlagKeyPressed ) { 407 if ( e->isAutoRepeat() && !mFlagKeyPressed ) {
408 e->accept(); 408 e->accept();
409 return; 409 return;
410 } 410 }
411 if (! e->isAutoRepeat() ) 411 if (! e->isAutoRepeat() )
412 mFlagKeyPressed = true; 412 mFlagKeyPressed = true;
413 KListView::keyPressEvent ( e ); 413 KListView::keyPressEvent ( e );
414} 414}
415void ContactListView::keyReleaseEvent ( QKeyEvent * e ) 415void ContactListView::keyReleaseEvent ( QKeyEvent * e )
416{ 416{
417 if ( mFlagBlockKeyPressed ) 417 if ( mFlagBlockKeyPressed )
418 return; 418 return;
419 if ( !e->isAutoRepeat() ) { 419 if ( !e->isAutoRepeat() ) {
420 mFlagBlockKeyPressed = true; 420 mFlagBlockKeyPressed = true;
421 qApp->processEvents(); 421 qApp->processEvents();
422 mFlagBlockKeyPressed = false; 422 mFlagBlockKeyPressed = false;
423 mFlagKeyPressed = false; 423 mFlagKeyPressed = false;
424 } 424 }
425 KListView::keyReleaseEvent ( e ); 425 KListView::keyReleaseEvent ( e );
426} 426}
427#ifndef KAB_EMBEDDED 427#ifndef KAB_EMBEDDED
428#include "contactlistview.moc" 428#include "contactlistview.moc"
429#endif //KAB_EMBEDDED 429#endif //KAB_EMBEDDED
diff --git a/microkde/kdeui/klistview.cpp b/microkde/kdeui/klistview.cpp
index 31e2053..25327aa 100644
--- a/microkde/kdeui/klistview.cpp
+++ b/microkde/kdeui/klistview.cpp
@@ -270,386 +270,385 @@ static QListViewItem *lastQChild (QListViewItem *pi)
270void KListViewLineEdit::selectNextCell (QListViewItem *pitem, int column, bool forward) 270void KListViewLineEdit::selectNextCell (QListViewItem *pitem, int column, bool forward)
271{ 271{
272 const int ncols = p->columns(); 272 const int ncols = p->columns();
273 const int dir = forward ? +1 : -1; 273 const int dir = forward ? +1 : -1;
274 const int restart = forward ? 0 : (ncols - 1); 274 const int restart = forward ? 0 : (ncols - 1);
275 QListViewItem *top = (pitem && pitem->parent()) 275 QListViewItem *top = (pitem && pitem->parent())
276 ? pitem->parent()->firstChild() 276 ? pitem->parent()->firstChild()
277 : p->firstChild(); 277 : p->firstChild();
278 QListViewItem *pi = pitem; 278 QListViewItem *pi = pitem;
279 279
280 terminate(); //Save current changes 280 terminate(); //Save current changes
281 281
282 do 282 do
283 { 283 {
284*/ 284*/
285 /*Check the rest of the current row for an editable column, 285 /*Check the rest of the current row for an editable column,
286 *if that fails, check the entire next/previous row. The 286 *if that fails, check the entire next/previous row. The
287 *last case goes back to the first item in the current branch 287 *last case goes back to the first item in the current branch
288 *or the last item in the current branch depending on the 288 *or the last item in the current branch depending on the
289 *direction. 289 *direction.
290 */ 290 */
291/*US 291/*US
292 if ((column = nextCol(p, pi, column + dir, dir)) != -1 || 292 if ((column = nextCol(p, pi, column + dir, dir)) != -1 ||
293 (column = nextCol(p, (pi = (forward ? pi->nextSibling() : prevItem(pi))), restart, dir)) != -1 || 293 (column = nextCol(p, (pi = (forward ? pi->nextSibling() : prevItem(pi))), restart, dir)) != -1 ||
294 (column = nextCol(p, (pi = (forward ? top : lastQChild(pitem))), restart, dir)) != -1) 294 (column = nextCol(p, (pi = (forward ? top : lastQChild(pitem))), restart, dir)) != -1)
295 { 295 {
296 if (pi) 296 if (pi)
297 { 297 {
298 p->setCurrentItem(pi); //Calls terminate 298 p->setCurrentItem(pi); //Calls terminate
299 p->rename(pi, column); 299 p->rename(pi, column);
300*/ 300*/
301 /*Some listviews may override rename() to 301 /*Some listviews may override rename() to
302 *prevent certain items from being renamed, 302 *prevent certain items from being renamed,
303 *if this is done, [m_]item will be NULL 303 *if this is done, [m_]item will be NULL
304 *after the rename() call... try again. 304 *after the rename() call... try again.
305 */ 305 */
306/*US 306/*US
307 if (!item) 307 if (!item)
308 continue; 308 continue;
309 309
310 break; 310 break;
311 } 311 }
312 } 312 }
313 } 313 }
314 while (pi && !item); 314 while (pi && !item);
315} 315}
316*/ 316*/
317 317
318/*US 318/*US
319#ifdef KeyPress 319#ifdef KeyPress
320#undef KeyPress 320#undef KeyPress
321#endif 321#endif
322 322
323bool KListViewLineEdit::event (QEvent *pe) 323bool KListViewLineEdit::event (QEvent *pe)
324{ 324{
325 if (pe->type() == QEvent::KeyPress) 325 if (pe->type() == QEvent::KeyPress)
326 { 326 {
327 QKeyEvent *k = (QKeyEvent *) pe; 327 QKeyEvent *k = (QKeyEvent *) pe;
328 328
329 if ((k->key() == Qt::Key_Backtab || k->key() == Qt::Key_Tab) && 329 if ((k->key() == Qt::Key_Backtab || k->key() == Qt::Key_Tab) &&
330 p->tabOrderedRenaming() && p->itemsRenameable() && 330 p->tabOrderedRenaming() && p->itemsRenameable() &&
331 !(k->state() & ControlButton || k->state() & AltButton)) 331 !(k->state() & ControlButton || k->state() & AltButton))
332 { 332 {
333 selectNextCell(item, col, 333 selectNextCell(item, col,
334 (k->key() == Key_Tab && !(k->state() & ShiftButton))); 334 (k->key() == Key_Tab && !(k->state() & ShiftButton)));
335 return true; 335 return true;
336 } 336 }
337 } 337 }
338 338
339 return KLineEdit::event(pe); 339 return KLineEdit::event(pe);
340} 340}
341 341
342void KListViewLineEdit::keyPressEvent(QKeyEvent *e) 342void KListViewLineEdit::keyPressEvent(QKeyEvent *e)
343{ 343{
344 if(e->key() == Qt::Key_Return || e->key() == Qt::Key_Enter ) 344 if(e->key() == Qt::Key_Return || e->key() == Qt::Key_Enter )
345 terminate(true); 345 terminate(true);
346 else if(e->key() == Qt::Key_Escape) 346 else if(e->key() == Qt::Key_Escape)
347 terminate(false); 347 terminate(false);
348 else if (e->key() == Qt::Key_Down || e->key() == Qt::Key_Up) 348 else if (e->key() == Qt::Key_Down || e->key() == Qt::Key_Up)
349 { 349 {
350 terminate(true); 350 terminate(true);
351 KLineEdit::keyPressEvent(e); 351 KLineEdit::keyPressEvent(e);
352 } 352 }
353 else 353 else
354 KLineEdit::keyPressEvent(e); 354 KLineEdit::keyPressEvent(e);
355} 355}
356 356
357void KListViewLineEdit::terminate() 357void KListViewLineEdit::terminate()
358{ 358{
359 terminate(true); 359 terminate(true);
360} 360}
361 361
362void KListViewLineEdit::terminate(bool commit) 362void KListViewLineEdit::terminate(bool commit)
363{ 363{
364 if ( item ) 364 if ( item )
365 { 365 {
366 //kdDebug() << "KListViewLineEdit::terminate " << commit << endl; 366 //kdDebug() << "KListViewLineEdit::terminate " << commit << endl;
367 if (commit) 367 if (commit)
368 item->setText(col, text()); 368 item->setText(col, text());
369 int c=col; 369 int c=col;
370 QListViewItem *i=item; 370 QListViewItem *i=item;
371 col=0; 371 col=0;
372 item=0; 372 item=0;
373 hide(); // will call focusOutEvent, that's why we set item=0 before 373 hide(); // will call focusOutEvent, that's why we set item=0 before
374 emit done(i,c); 374 emit done(i,c);
375 } 375 }
376} 376}
377 377
378void KListViewLineEdit::focusOutEvent(QFocusEvent *ev) 378void KListViewLineEdit::focusOutEvent(QFocusEvent *ev)
379{ 379{
380 QFocusEvent * focusEv = static_cast<QFocusEvent*>(ev); 380 QFocusEvent * focusEv = static_cast<QFocusEvent*>(ev);
381 // Don't let a RMB close the editor 381 // Don't let a RMB close the editor
382 if (focusEv->reason() != QFocusEvent::Popup && focusEv->reason() != QFocusEvent::ActiveWindow) 382 if (focusEv->reason() != QFocusEvent::Popup && focusEv->reason() != QFocusEvent::ActiveWindow)
383 terminate(true); 383 terminate(true);
384} 384}
385 385
386void KListViewLineEdit::paintEvent( QPaintEvent *e ) 386void KListViewLineEdit::paintEvent( QPaintEvent *e )
387{ 387{
388 KLineEdit::paintEvent( e ); 388 KLineEdit::paintEvent( e );
389 389
390 if ( !frame() ) { 390 if ( !frame() ) {
391 QPainter p( this ); 391 QPainter p( this );
392 p.setClipRegion( e->region() ); 392 p.setClipRegion( e->region() );
393 p.drawRect( rect() ); 393 p.drawRect( rect() );
394 } 394 }
395} 395}
396 396
397// selection changed -> terminate. As our "item" can be already deleted, 397// selection changed -> terminate. As our "item" can be already deleted,
398// we can't call terminate(false), because that would emit done() with 398// we can't call terminate(false), because that would emit done() with
399// a dangling pointer to "item". 399// a dangling pointer to "item".
400void KListViewLineEdit::slotSelectionChanged() 400void KListViewLineEdit::slotSelectionChanged()
401{ 401{
402 item = 0; 402 item = 0;
403 col = 0; 403 col = 0;
404 hide(); 404 hide();
405} 405}
406*/ 406*/
407 407
408KListView::KListView( QWidget *parent, const char *name ,bool emulateRightMouse ) 408KListView::KListView( QWidget *parent, const char *name ,bool emulateRightMouse )
409 : QListView( parent, name ), 409 : QListView( parent, name ),
410 d (new KListViewPrivate (this)) 410 d (new KListViewPrivate (this))
411{ 411{
412#ifndef DESKTOP_VERSION 412#ifndef DESKTOP_VERSION
413 if ( emulateRightMouse ) 413 if ( emulateRightMouse )
414 QPEApplication::setStylusOperation( viewport(), QPEApplication::RightOnHold ); 414 QPEApplication::setStylusOperation( viewport(), QPEApplication::RightOnHold );
415#endif 415#endif
416//US setDragAutoScroll(true); 416//US setDragAutoScroll(true);
417 417
418 connect( this, SIGNAL( onViewport() ), 418 connect( this, SIGNAL( onViewport() ),
419 this, SLOT( slotOnViewport() ) ); 419 this, SLOT( slotOnViewport() ) );
420 connect( this, SIGNAL( onItem( QListViewItem * ) ), 420 connect( this, SIGNAL( onItem( QListViewItem * ) ),
421 this, SLOT( slotOnItem( QListViewItem * ) ) ); 421 this, SLOT( slotOnItem( QListViewItem * ) ) );
422 422
423 connect (this, SIGNAL(contentsMoving(int,int)), 423 connect (this, SIGNAL(contentsMoving(int,int)),
424 this, SLOT(cleanDropVisualizer())); 424 this, SLOT(cleanDropVisualizer()));
425 connect (this, SIGNAL(contentsMoving(int,int)), 425 connect (this, SIGNAL(contentsMoving(int,int)),
426 this, SLOT(cleanItemHighlighter())); 426 this, SLOT(cleanItemHighlighter()));
427 427
428/*US 428/*US
429 slotSettingsChanged(KApplication::SETTINGS_MOUSE); 429 slotSettingsChanged(KApplication::SETTINGS_MOUSE);
430 430
431 if (kapp) 431 if (kapp)
432 { 432 {
433 connect( kapp, SIGNAL( settingsChanged(int) ), SLOT( slotSettingsChanged(int) ) ); 433 connect( kapp, SIGNAL( settingsChanged(int) ), SLOT( slotSettingsChanged(int) ) );
434 kapp->addKipcEventMask( KIPC::SettingsChanged ); 434 kapp->addKipcEventMask( KIPC::SettingsChanged );
435 } 435 }
436*/ 436*/
437 slotSettingsChanged(1); //US do this to initialize the connections 437 slotSettingsChanged(1); //US do this to initialize the connections
438 438
439 439
440 connect(&d->autoSelect, SIGNAL( timeout() ), 440 connect(&d->autoSelect, SIGNAL( timeout() ),
441 this, SLOT( slotAutoSelect() ) ); 441 this, SLOT( slotAutoSelect() ) );
442 connect(&d->dragExpand, SIGNAL( timeout() ), 442 connect(&d->dragExpand, SIGNAL( timeout() ),
443 this, SLOT( slotDragExpand() ) ); 443 this, SLOT( slotDragExpand() ) );
444 444
445 // context menu handling 445 // context menu handling
446 if (d->showContextMenusOnPress) 446 if (d->showContextMenusOnPress)
447 { 447 {
448 connect (this, SIGNAL (rightButtonPressed (QListViewItem*, const QPoint&, int)), 448 connect (this, SIGNAL (rightButtonPressed (QListViewItem*, const QPoint&, int)),
449 this, SLOT (emitContextMenu (QListViewItem*, const QPoint&, int))); 449 this, SLOT (emitContextMenu (QListViewItem*, const QPoint&, int)));
450 } 450 }
451 else 451 else
452 { 452 {
453 connect (this, SIGNAL (rightButtonClicked (QListViewItem*, const QPoint&, int)), 453 connect (this, SIGNAL (rightButtonClicked (QListViewItem*, const QPoint&, int)),
454 this, SLOT (emitContextMenu (QListViewItem*, const QPoint&, int))); 454 this, SLOT (emitContextMenu (QListViewItem*, const QPoint&, int)));
455 } 455 }
456 456
457 connect (this, SIGNAL (menuShortCutPressed (KListView*, QListViewItem*)), 457 connect (this, SIGNAL (menuShortCutPressed (KListView*, QListViewItem*)),
458 this, SLOT (emitContextMenu (KListView*, QListViewItem*))); 458 this, SLOT (emitContextMenu (KListView*, QListViewItem*)));
459 459
460 460
461 //qDebug("KListView::KListView make alternate color configurable"); 461 //qDebug("KListView::KListView make alternate color configurable");
462//US d->alternateBackground = KGlobalSettings::alternateBackgroundColor(); 462 d->alternateBackground = KGlobalSettings::alternateBackgroundColor();
463 d->alternateBackground = QColor(240, 240, 240);
464} 463}
465 464
466 465
467 466
468KListView::~KListView() 467KListView::~KListView()
469{ 468{
470 delete d; 469 delete d;
471} 470}
472 471
473bool KListView::isExecuteArea( const QPoint& point ) 472bool KListView::isExecuteArea( const QPoint& point )
474{ 473{
475 if ( itemAt( point ) ) 474 if ( itemAt( point ) )
476 return isExecuteArea( point.x() ); 475 return isExecuteArea( point.x() );
477 476
478 return false; 477 return false;
479} 478}
480 479
481bool KListView::isExecuteArea( int x ) 480bool KListView::isExecuteArea( int x )
482{ 481{
483 if( allColumnsShowFocus() ) 482 if( allColumnsShowFocus() )
484 return true; 483 return true;
485 else { 484 else {
486 int offset = 0; 485 int offset = 0;
487 int width = columnWidth( 0 ); 486 int width = columnWidth( 0 );
488 int pos = header()->mapToIndex( 0 ); 487 int pos = header()->mapToIndex( 0 );
489 488
490 for ( int index = 0; index < pos; index++ ) 489 for ( int index = 0; index < pos; index++ )
491 offset += columnWidth( header()->mapToSection( index ) ); 490 offset += columnWidth( header()->mapToSection( index ) );
492 491
493 x += contentsX(); // in case of a horizontal scrollbar 492 x += contentsX(); // in case of a horizontal scrollbar
494 return ( x > offset && x < ( offset + width ) ); 493 return ( x > offset && x < ( offset + width ) );
495 } 494 }
496} 495}
497 496
498void KListView::slotOnItem( QListViewItem *item ) 497void KListView::slotOnItem( QListViewItem *item )
499{ 498{
500 QPoint vp = viewport()->mapFromGlobal( QCursor::pos() ); 499 QPoint vp = viewport()->mapFromGlobal( QCursor::pos() );
501 if ( item && isExecuteArea( vp.x() ) && (d->autoSelectDelay > -1) && d->bUseSingle ) { 500 if ( item && isExecuteArea( vp.x() ) && (d->autoSelectDelay > -1) && d->bUseSingle ) {
502 d->autoSelect.start( d->autoSelectDelay, true ); 501 d->autoSelect.start( d->autoSelectDelay, true );
503 d->pCurrentItem = item; 502 d->pCurrentItem = item;
504 } 503 }
505} 504}
506 505
507void KListView::slotOnViewport() 506void KListView::slotOnViewport()
508{ 507{
509 if ( d->bChangeCursorOverItem ) 508 if ( d->bChangeCursorOverItem )
510 viewport()->unsetCursor(); 509 viewport()->unsetCursor();
511 510
512 d->autoSelect.stop(); 511 d->autoSelect.stop();
513 d->pCurrentItem = 0L; 512 d->pCurrentItem = 0L;
514} 513}
515 514
516void KListView::slotSettingsChanged(int category) 515void KListView::slotSettingsChanged(int category)
517{ 516{
518 //qDebug("KListView::slotSettingsChanged has to be verified"); 517 //qDebug("KListView::slotSettingsChanged has to be verified");
519 518
520 519
521 switch (category) 520 switch (category)
522 { 521 {
523 //US I create my private category (=1) to set the settings 522 //US I create my private category (=1) to set the settings
524 case 1: 523 case 1:
525 d->dragDelay = 2; 524 d->dragDelay = 2;
526 //US set explicitly d->bUseSingle = KGlobalSettings::singleClick(); 525 //US set explicitly d->bUseSingle = KGlobalSettings::singleClick();
527 // qDebug("KListView::slotSettingsChanged: single%i", d->bUseSingle); 526 // qDebug("KListView::slotSettingsChanged: single%i", d->bUseSingle);
528 527
529 disconnect(this, SIGNAL (mouseButtonClicked (int, QListViewItem*, const QPoint &, int)), 528 disconnect(this, SIGNAL (mouseButtonClicked (int, QListViewItem*, const QPoint &, int)),
530 this, SLOT (slotMouseButtonClicked (int, QListViewItem*, const QPoint &, int))); 529 this, SLOT (slotMouseButtonClicked (int, QListViewItem*, const QPoint &, int)));
531 530
532 if( d->bUseSingle ) 531 if( d->bUseSingle )
533 connect (this, SIGNAL (mouseButtonClicked (int, QListViewItem*, const QPoint &, int)), 532 connect (this, SIGNAL (mouseButtonClicked (int, QListViewItem*, const QPoint &, int)),
534 this, SLOT (slotMouseButtonClicked( int, QListViewItem*, const QPoint &, int))); 533 this, SLOT (slotMouseButtonClicked( int, QListViewItem*, const QPoint &, int)));
535 534
536 //US d->bChangeCursorOverItem = KGlobalSettings::changeCursorOverIcon(); 535 //US d->bChangeCursorOverItem = KGlobalSettings::changeCursorOverIcon();
537 //US d->autoSelectDelay = KGlobalSettings::autoSelectDelay(); 536 //US d->autoSelectDelay = KGlobalSettings::autoSelectDelay();
538 537
539 if( !d->bUseSingle || !d->bChangeCursorOverItem ) 538 if( !d->bUseSingle || !d->bChangeCursorOverItem )
540 viewport()->unsetCursor(); 539 viewport()->unsetCursor();
541 540
542 break; 541 break;
543 542
544 /*US 543 /*US
545 case KApplication::SETTINGS_MOUSE: 544 case KApplication::SETTINGS_MOUSE:
546 d->dragDelay = KGlobalSettings::dndEventDelay(); 545 d->dragDelay = KGlobalSettings::dndEventDelay();
547 d->bUseSingle = KGlobalSettings::singleClick(); 546 d->bUseSingle = KGlobalSettings::singleClick();
548 547
549 disconnect(this, SIGNAL (mouseButtonClicked (int, QListViewItem*, const QPoint &, int)), 548 disconnect(this, SIGNAL (mouseButtonClicked (int, QListViewItem*, const QPoint &, int)),
550 this, SLOT (slotMouseButtonClicked (int, QListViewItem*, const QPoint &, int))); 549 this, SLOT (slotMouseButtonClicked (int, QListViewItem*, const QPoint &, int)));
551 550
552 if( d->bUseSingle ) 551 if( d->bUseSingle )
553 connect (this, SIGNAL (mouseButtonClicked (int, QListViewItem*, const QPoint &, int)), 552 connect (this, SIGNAL (mouseButtonClicked (int, QListViewItem*, const QPoint &, int)),
554 this, SLOT (slotMouseButtonClicked( int, QListViewItem*, const QPoint &, int))); 553 this, SLOT (slotMouseButtonClicked( int, QListViewItem*, const QPoint &, int)));
555 554
556 d->bChangeCursorOverItem = KGlobalSettings::changeCursorOverIcon(); 555 d->bChangeCursorOverItem = KGlobalSettings::changeCursorOverIcon();
557 d->autoSelectDelay = KGlobalSettings::autoSelectDelay(); 556 d->autoSelectDelay = KGlobalSettings::autoSelectDelay();
558 557
559 if( !d->bUseSingle || !d->bChangeCursorOverItem ) 558 if( !d->bUseSingle || !d->bChangeCursorOverItem )
560 viewport()->unsetCursor(); 559 viewport()->unsetCursor();
561 560
562 break; 561 break;
563 case KApplication::SETTINGS_POPUPMENU: 562 case KApplication::SETTINGS_POPUPMENU:
564 d->contextMenuKey = KGlobalSettings::contextMenuKey (); 563 d->contextMenuKey = KGlobalSettings::contextMenuKey ();
565 d->showContextMenusOnPress = KGlobalSettings::showContextMenusOnPress (); 564 d->showContextMenusOnPress = KGlobalSettings::showContextMenusOnPress ();
566 565
567 if (d->showContextMenusOnPress) 566 if (d->showContextMenusOnPress)
568 { 567 {
569 disconnect (0L, 0L, this, SLOT (emitContextMenu (QListViewItem*, const QPoint&, int))); 568 disconnect (0L, 0L, this, SLOT (emitContextMenu (QListViewItem*, const QPoint&, int)));
570 569
571 connect(this, SIGNAL (rightButtonPressed (QListViewItem*, const QPoint&, int)), 570 connect(this, SIGNAL (rightButtonPressed (QListViewItem*, const QPoint&, int)),
572 this, SLOT (emitContextMenu (QListViewItem*, const QPoint&, int))); 571 this, SLOT (emitContextMenu (QListViewItem*, const QPoint&, int)));
573 } 572 }
574 else 573 else
575 { 574 {
576 disconnect (0L, 0L, this, SLOT (emitContextMenu (QListViewItem*, const QPoint&, int))); 575 disconnect (0L, 0L, this, SLOT (emitContextMenu (QListViewItem*, const QPoint&, int)));
577 576
578 connect(this, SIGNAL (rightButtonClicked (QListViewItem*, const QPoint&, int)), 577 connect(this, SIGNAL (rightButtonClicked (QListViewItem*, const QPoint&, int)),
579 this, SLOT (emitContextMenu (QListViewItem*, const QPoint&, int))); 578 this, SLOT (emitContextMenu (QListViewItem*, const QPoint&, int)));
580 } 579 }
581 break; 580 break;
582 */ 581 */
583 582
584 default: 583 default:
585 break; 584 break;
586 } 585 }
587 586
588} 587}
589 588
590void KListView::slotAutoSelect() 589void KListView::slotAutoSelect()
591{ 590{
592 // check that the item still exists 591 // check that the item still exists
593 if( itemIndex( d->pCurrentItem ) == -1 ) 592 if( itemIndex( d->pCurrentItem ) == -1 )
594 return; 593 return;
595 594
596 if (!isActiveWindow()) 595 if (!isActiveWindow())
597 { 596 {
598 d->autoSelect.stop(); 597 d->autoSelect.stop();
599 return; 598 return;
600 } 599 }
601 600
602 //Give this widget the keyboard focus. 601 //Give this widget the keyboard focus.
603 if( !hasFocus() ) 602 if( !hasFocus() )
604 setFocus(); 603 setFocus();
605 604
606 QListViewItem* previousItem = currentItem(); 605 QListViewItem* previousItem = currentItem();
607 setCurrentItem( d->pCurrentItem ); 606 setCurrentItem( d->pCurrentItem );
608 607
609#if 0 608#if 0
610#ifndef Q_WS_QWS 609#ifndef Q_WS_QWS
611 // FIXME(E): Implement for Qt Embedded 610 // FIXME(E): Implement for Qt Embedded
612 if( d->pCurrentItem ) { 611 if( d->pCurrentItem ) {
613 //Shift pressed? 612 //Shift pressed?
614 if( (keybstate & ShiftMask) ) { 613 if( (keybstate & ShiftMask) ) {
615 bool block = signalsBlocked(); 614 bool block = signalsBlocked();
616 blockSignals( true ); 615 blockSignals( true );
617 616
618 //No Ctrl? Then clear before! 617 //No Ctrl? Then clear before!
619 if( !(keybstate & ControlMask) ) 618 if( !(keybstate & ControlMask) )
620 clearSelection(); 619 clearSelection();
621 620
622 bool select = !d->pCurrentItem->isSelected(); 621 bool select = !d->pCurrentItem->isSelected();
623 bool update = viewport()->isUpdatesEnabled(); 622 bool update = viewport()->isUpdatesEnabled();
624 viewport()->setUpdatesEnabled( false ); 623 viewport()->setUpdatesEnabled( false );
625 624
626 bool down = previousItem->itemPos() < d->pCurrentItem->itemPos(); 625 bool down = previousItem->itemPos() < d->pCurrentItem->itemPos();
627 QListViewItemIterator lit( down ? previousItem : d->pCurrentItem ); 626 QListViewItemIterator lit( down ? previousItem : d->pCurrentItem );
628 for ( ; lit.current(); ++lit ) { 627 for ( ; lit.current(); ++lit ) {
629 if ( down && lit.current() == d->pCurrentItem ) { 628 if ( down && lit.current() == d->pCurrentItem ) {
630 d->pCurrentItem->setSelected( select ); 629 d->pCurrentItem->setSelected( select );
631 break; 630 break;
632 } 631 }
633 if ( !down && lit.current() == previousItem ) { 632 if ( !down && lit.current() == previousItem ) {
634 previousItem->setSelected( select ); 633 previousItem->setSelected( select );
635 break; 634 break;
636 } 635 }
637 lit.current()->setSelected( select ); 636 lit.current()->setSelected( select );
638 } 637 }
639 638
640 blockSignals( block ); 639 blockSignals( block );
641 viewport()->setUpdatesEnabled( update ); 640 viewport()->setUpdatesEnabled( update );
642 triggerUpdate(); 641 triggerUpdate();
643 642
644 emit selectionChanged(); 643 emit selectionChanged();
645 644
646 if( selectionMode() == QListView::Single ) 645 if( selectionMode() == QListView::Single )
647 emit selectionChanged( d->pCurrentItem ); 646 emit selectionChanged( d->pCurrentItem );
648 } 647 }
649 else if( (keybstate & ControlMask) ) 648 else if( (keybstate & ControlMask) )
650 setSelected( d->pCurrentItem, !d->pCurrentItem->isSelected() ); 649 setSelected( d->pCurrentItem, !d->pCurrentItem->isSelected() );
651 else { 650 else {
652 bool block = signalsBlocked(); 651 bool block = signalsBlocked();
653 blockSignals( true ); 652 blockSignals( true );
654 653
655 if( !d->pCurrentItem->isSelected() ) 654 if( !d->pCurrentItem->isSelected() )
diff --git a/microkde/kglobalsettings.cpp b/microkde/kglobalsettings.cpp
index b65ce66..92a2b48 100644
--- a/microkde/kglobalsettings.cpp
+++ b/microkde/kglobalsettings.cpp
@@ -1,77 +1,86 @@
1#include "kglobalsettings.h" 1#include "kglobalsettings.h"
2#include "kconfig.h" 2#include "kconfig.h"
3#include "kglobal.h" 3#include "kglobal.h"
4#include "kconfigbase.h" 4#include "kconfigbase.h"
5 5
6#include <qapplication.h> 6#include <qapplication.h>
7 7
8QFont KGlobalSettings::generalFont() 8QFont KGlobalSettings::generalFont()
9{ 9{
10 int size = 12; 10 int size = 12;
11 if (QApplication::desktop()->width() < 480 ) { 11 if (QApplication::desktop()->width() < 480 ) {
12 size = 10; 12 size = 10;
13 } 13 }
14#ifndef DESKTOP_VERSION 14#ifndef DESKTOP_VERSION
15 else 15 else
16 if (QApplication::desktop()->width() >= 480 && QApplication::desktop()->width() <= 640 ) 16 if (QApplication::desktop()->width() >= 480 && QApplication::desktop()->width() <= 640 )
17 size = 18; 17 size = 18;
18#endif 18#endif
19 QFont f = QApplication::font(); 19 QFont f = QApplication::font();
20 //qDebug("pointsize %d %s", f.pointSize(),f.family().latin1()); 20 //qDebug("pointsize %d %s", f.pointSize(),f.family().latin1());
21 f.setPointSize( size ); 21 f.setPointSize( size );
22 return f; 22 return f;
23} 23}
24QFont KGlobalSettings::generalMaxFont() 24QFont KGlobalSettings::generalMaxFont()
25{ 25{
26 int size = 12; 26 int size = 12;
27 if (QApplication::desktop()->width() < 480 ) { 27 if (QApplication::desktop()->width() < 480 ) {
28 size = 10; 28 size = 10;
29 } 29 }
30#ifndef DESKTOP_VERSION 30#ifndef DESKTOP_VERSION
31 else 31 else
32 if (QApplication::desktop()->width() >= 480 && QApplication::desktop()->width() <= 640 ) 32 if (QApplication::desktop()->width() >= 480 && QApplication::desktop()->width() <= 640 )
33 size = 18; 33 size = 18;
34#endif 34#endif
35 QFont f = QApplication::font(); 35 QFont f = QApplication::font();
36 if ( f.pointSize() > size ) 36 if ( f.pointSize() > size )
37 f.setPointSize( size ); 37 f.setPointSize( size );
38 return f; 38 return f;
39} 39}
40 40
41QString KGlobalSettings::timeTrackerDir() 41QString KGlobalSettings::timeTrackerDir()
42{ 42{
43 static QString dir; 43 static QString dir;
44 if ( dir.isEmpty() ) { 44 if ( dir.isEmpty() ) {
45 dir = locateLocal( "data", "timetrackerdir/d.ttl" ); 45 dir = locateLocal( "data", "timetrackerdir/d.ttl" );
46 dir = dir.left ( dir.length() - 5); 46 dir = dir.left ( dir.length() - 5);
47 } 47 }
48 return dir; 48 return dir;
49} 49}
50 50
51QFont KGlobalSettings::toolBarFont() 51QFont KGlobalSettings::toolBarFont()
52{ 52{
53 return QApplication::font(); 53 return QApplication::font();
54} 54}
55 55
56QColor KGlobalSettings::toolBarHighlightColor() 56QColor KGlobalSettings::toolBarHighlightColor()
57{ 57{
58 return QColor( "black" ); 58 return QColor( "black" );
59} 59}
60 60
61QColor KGlobalSettings::alternateBackgroundColor()
62{
63#ifdef DESKTOP_VERSION
64 return QColor( 235, 235, 235 );
65#else
66 return QColor( 220, 220, 220 );
67#endif
68}
69
61QRect KGlobalSettings::desktopGeometry( QWidget * ) 70QRect KGlobalSettings::desktopGeometry( QWidget * )
62{ 71{
63 return QApplication::desktop()->rect(); 72 return QApplication::desktop()->rect();
64} 73}
65 74
66 /** 75 /**
67 * Returns whether KDE runs in single (default) or double click 76 * Returns whether KDE runs in single (default) or double click
68 * mode. 77 * mode.
69 * see http://developer.kde.org/documentation/standards/kde/style/mouse/index.html 78 * see http://developer.kde.org/documentation/standards/kde/style/mouse/index.html
70 * @return true if single click mode, or false if double click mode. 79 * @return true if single click mode, or false if double click mode.
71 **/ 80 **/
72bool KGlobalSettings::singleClick() 81bool KGlobalSettings::singleClick()
73{ 82{
74 KConfig *c = KGlobal::config(); 83 KConfig *c = KGlobal::config();
75 KConfigGroupSaver cgs( c, "KDE" ); 84 KConfigGroupSaver cgs( c, "KDE" );
76 return c->readBoolEntry("SingleClick", KDE_DEFAULT_SINGLECLICK); 85 return c->readBoolEntry("SingleClick", KDE_DEFAULT_SINGLECLICK);
77} 86}
diff --git a/microkde/kglobalsettings.h b/microkde/kglobalsettings.h
index 3eeda35..e2620b3 100644
--- a/microkde/kglobalsettings.h
+++ b/microkde/kglobalsettings.h
@@ -1,32 +1,33 @@
1#ifndef MICROKDE_KGLOBALSETTINGS_H 1#ifndef MICROKDE_KGLOBALSETTINGS_H
2#define MICROKDE_KGLOBALSETTINGS_H 2#define MICROKDE_KGLOBALSETTINGS_H
3 3
4#include <qfont.h> 4#include <qfont.h>
5#include <qrect.h> 5#include <qrect.h>
6 6
7 7
8#define KDE_DEFAULT_SINGLECLICK true 8#define KDE_DEFAULT_SINGLECLICK true
9 9
10 10
11class KGlobalSettings 11class KGlobalSettings
12{ 12{
13 public: 13 public:
14 static QFont generalFont(); 14 static QFont generalFont();
15 static QFont generalMaxFont(); 15 static QFont generalMaxFont();
16 static QFont toolBarFont(); 16 static QFont toolBarFont();
17 17
18 static QColor toolBarHighlightColor(); 18 static QColor toolBarHighlightColor();
19 static QColor alternateBackgroundColor();
19 static QRect desktopGeometry( QWidget * ); 20 static QRect desktopGeometry( QWidget * );
20 static QString timeTrackerDir(); 21 static QString timeTrackerDir();
21 22
22 /** 23 /**
23 * Returns whether KDE runs in single (default) or double click 24 * Returns whether KDE runs in single (default) or double click
24 * mode. 25 * mode.
25 * see http://developer.kde.org/documentation/standards/kde/style/mouse/index.html 26 * see http://developer.kde.org/documentation/standards/kde/style/mouse/index.html
26 * @return true if single click mode, or false if double click mode. 27 * @return true if single click mode, or false if double click mode.
27 **/ 28 **/
28 static bool singleClick(); 29 static bool singleClick();
29 30
30}; 31};
31 32
32#endif 33#endif