summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/WhatsNew.txt3
-rw-r--r--microkde/ofileselector_p.cpp34
2 files changed, 30 insertions, 7 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt
index eaf4b56..dd02be5 100644
--- a/bin/kdepim/WhatsNew.txt
+++ b/bin/kdepim/WhatsNew.txt
@@ -1,36 +1,39 @@
1Info about the changes in new versions of KDE-Pim/Pi 1Info about the changes in new versions of KDE-Pim/Pi
2 2
3 3
4********** VERSION 2.1.8 ************ 4********** VERSION 2.1.8 ************
5 5
6KO/Pi: 6KO/Pi:
7Added info about the completion sate of a todo in the ListView/Searchdialog. 7Added info about the completion sate of a todo in the ListView/Searchdialog.
8If in TodoView is selected "do not show compledted todos" then completed todos are not shown in the ListView as well. 8If in TodoView is selected "do not show compledted todos" then completed todos are not shown in the ListView as well.
9 9
10KA/Pi: 10KA/Pi:
11In the addressee selection dialog now the formatted name is shown, if not empty. 11In the addressee selection dialog now the formatted name is shown, if not empty.
12 12
13Fixed in the file selector on the Zaurus the problem that symbolic links to files/dirs were ignored.
14Fixed the sorting for size in the file selector on the Z.
15
13********** VERSION 2.1.7 ************ 16********** VERSION 2.1.7 ************
14 17
15KO/Pi: 18KO/Pi:
16Fixed several problems in the new Resource handling. 19Fixed several problems in the new Resource handling.
17Added more options to the search dialog. 20Added more options to the search dialog.
18Fixed a problem in the Month view. 21Fixed a problem in the Month view.
19Added more options to the dialog when setting a todo to stopped. 22Added more options to the dialog when setting a todo to stopped.
20 23
21Fixed two small problems in KO/PiAlarm applet. 24Fixed two small problems in KO/PiAlarm applet.
22 25
23********** VERSION 2.1.6 ************ 26********** VERSION 2.1.6 ************
24 27
25This release is for testing only. 28This release is for testing only.
26 29
27KO/Pi: 30KO/Pi:
28Added to the list view (the list view is used in search dialog as well) the possibility to print it. 31Added to the list view (the list view is used in search dialog as well) the possibility to print it.
29Added to the list view the possibility to hide entries, if you do not want to print all entries of the list view. 32Added to the list view the possibility to hide entries, if you do not want to print all entries of the list view.
30Added to the list view the possibility to add all subtodos of selected todos to an export/beam. 33Added to the list view the possibility to add all subtodos of selected todos to an export/beam.
31Added to the search dialog the possibility to make an additive search such that you can get a better list for export/printout. 34Added to the search dialog the possibility to make an additive search such that you can get a better list for export/printout.
32Added to the search dialog the possibility to hide the checkboxes such that there is more space for the list view on the Zaurus. 35Added to the search dialog the possibility to hide the checkboxes such that there is more space for the list view on the Zaurus.
33Fixed a problem in the AlarmTimer Applet: Now utf8 messages are displayed properly. 36Fixed a problem in the AlarmTimer Applet: Now utf8 messages are displayed properly.
34 37
35Added support for multiple calendar files in KO/Pi. Only local ical (*.ics) files are supported as calendars. 38Added support for multiple calendar files in KO/Pi. Only local ical (*.ics) files are supported as calendars.
36In the sync profile config it is still missing to specify a particular calendar to sync with this profile. That setting will be added later. 39In the sync profile config it is still missing to specify a particular calendar to sync with this profile. That setting will be added later.
diff --git a/microkde/ofileselector_p.cpp b/microkde/ofileselector_p.cpp
index f85f8f4..e2af32b 100644
--- a/microkde/ofileselector_p.cpp
+++ b/microkde/ofileselector_p.cpp
@@ -135,83 +135,101 @@ QWidget* ODocumentFileView::widget( QWidget* parent ) {
135 if (!m_selector ) { 135 if (!m_selector ) {
136 m_selector = new FileSelector(currentMimeType().join(";"), parent, "fileselector", showNew(), showClose() ); 136 m_selector = new FileSelector(currentMimeType().join(";"), parent, "fileselector", showNew(), showClose() );
137 QObject::connect(m_selector, SIGNAL(fileSelected( const DocLnk& ) ), 137 QObject::connect(m_selector, SIGNAL(fileSelected( const DocLnk& ) ),
138 selector(), SLOT(slotDocLnkBridge(const DocLnk&) ) ); 138 selector(), SLOT(slotDocLnkBridge(const DocLnk&) ) );
139 QObject::connect(m_selector, SIGNAL(closeMe() ), 139 QObject::connect(m_selector, SIGNAL(closeMe() ),
140 selector(), SIGNAL(closeMe() ) ); 140 selector(), SIGNAL(closeMe() ) );
141 QObject::connect(m_selector, SIGNAL(newSelected(const DocLnk& ) ), 141 QObject::connect(m_selector, SIGNAL(newSelected(const DocLnk& ) ),
142 selector(), SIGNAL(newSelected(const DocLnk& ) ) ); 142 selector(), SIGNAL(newSelected(const DocLnk& ) ) );
143 } 143 }
144 144
145 return m_selector; 145 return m_selector;
146} 146}
147 147
148/* 148/*
149 * This is the file system view used 149 * This is the file system view used
150 * we use a QListView + QListViewItems for it 150 * we use a QListView + QListViewItems for it
151 */ 151 */
152 152
153OFileSelectorItem::OFileSelectorItem( QListView* view, const QPixmap& pixmap, 153OFileSelectorItem::OFileSelectorItem( QListView* view, const QPixmap& pixmap,
154 const QString& path, const QString& date, 154 const QString& path, const QString& date,
155 const QString& size, const QString& dir, 155 const QString& size, const QString& dir,
156 bool isLocked, bool isDir ) 156 bool isLocked, bool isDir )
157 : QListViewItem( view ) 157 : QListViewItem( view )
158{ 158{
159
160 QString kind;
161 QString _path = path;
162 if ( isDir )
163 kind = "dir";
164 else
165 kind = "file";
159 setPixmap(0, pixmap ); 166 setPixmap(0, pixmap );
160 setText(1, path ); 167 int arrow = path.find( "->" );
168 if (arrow > 0 ) {
169 kind += path.mid( arrow );
170 _path = path.left(arrow);
171 }
172 setText(1, _path );
161 setText(2, size ); 173 setText(2, size );
162 setText(3, date ); 174 setText(3, date );
175 setText(4, kind );
163 m_isDir = isDir; 176 m_isDir = isDir;
164 m_dir = dir; 177 m_dir = dir;
165 m_locked = isLocked; 178 m_locked = isLocked;
166} 179}
167OFileSelectorItem::~OFileSelectorItem() { 180OFileSelectorItem::~OFileSelectorItem() {
168 181
169} 182}
170bool OFileSelectorItem::isLocked()const { 183bool OFileSelectorItem::isLocked()const {
171 return m_locked; 184 return m_locked;
172} 185}
173QString OFileSelectorItem::directory()const { 186QString OFileSelectorItem::directory()const {
174 return m_dir; 187 return m_dir;
175} 188}
176bool OFileSelectorItem::isDir()const { 189bool OFileSelectorItem::isDir()const {
177 return m_isDir; 190 return m_isDir;
178} 191}
179QString OFileSelectorItem::path()const { 192QString OFileSelectorItem::path()const {
180 return text( 1 ); 193 return text( 1 );
181} 194}
182QString OFileSelectorItem::key( int id, bool )const { 195QString OFileSelectorItem::key( int id, bool )const {
183 QString ke; 196 QString ke;
184 if( id == 0 || id == 1 ){ // name 197 if( id == 0 || id == 1 ){ // name
185 if( m_isDir ){ 198 if( m_isDir ){
186 ke.append("0" ); 199 ke.append("0" );
187 ke.append( text(1) ); 200 ke.append( text(1) );
188 }else{ 201 }else{
189 ke.append("1" ); 202 ke.append("1" );
190 ke.append( text(1) ); 203 ke.append( text(1) );
191 } 204 }
192 return ke; 205 return ke;
193 }else 206 } else if ( id == 2 ) {
207 QString sort = "00000000";
208 sort = sort.left( 9-text( 2 ).length()) + text( 2 );
209 return sort;
210
211 } else
194 return text( id ); 212 return text( id );
195 213
196} 214}
197 215
198OFileViewFileListView::OFileViewFileListView( QWidget* parent, const QString& startDir, 216OFileViewFileListView::OFileViewFileListView( QWidget* parent, const QString& startDir,
199 OFileSelector* sel) 217 OFileSelector* sel)
200 : QWidget( parent ), m_sel( sel ) { 218 : QWidget( parent ), m_sel( sel ) {
201 m_all = false; 219 m_all = false;
202 QVBoxLayout* lay = new QVBoxLayout( this ); 220 QVBoxLayout* lay = new QVBoxLayout( this );
203 m_currentDir = startDir; 221 m_currentDir = startDir;
204 222
205 /* 223 /*
206 * now we add a special bar 224 * now we add a special bar
207 * One Button For Up 225 * One Button For Up
208 * Home 226 * Home
209 * Doc 227 * Doc
210 * And a dropdown menu with FileSystems 228 * And a dropdown menu with FileSystems
211 * FUTURE: one to change dir with lineedit 229 * FUTURE: one to change dir with lineedit
212 * Bookmarks 230 * Bookmarks
213 * Create Dir 231 * Create Dir
214 */ 232 */
215 QHBox* box = new QHBox(this ); 233 QHBox* box = new QHBox(this );
216 box->setBackgroundMode( PaletteButton ); 234 box->setBackgroundMode( PaletteButton );
217 box->setSpacing( 0 ); 235 box->setSpacing( 0 );
@@ -324,62 +342,64 @@ void OFileViewFileListView::reread( bool all ) {
324 filter = QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All; 342 filter = QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All;
325 else 343 else
326 filter = QDir::Files | QDir::Dirs | QDir::All; 344 filter = QDir::Files | QDir::Dirs | QDir::All;
327 dir.setFilter( filter ); 345 dir.setFilter( filter );
328 346
329 // now go through all files 347 // now go through all files
330 const QFileInfoList *list = dir.entryInfoList(); 348 const QFileInfoList *list = dir.entryInfoList();
331 if (!list) { 349 if (!list) {
332 cdUP(); 350 cdUP();
333 return; 351 return;
334 } 352 }
335 QFileInfoListIterator it( *list ); 353 QFileInfoListIterator it( *list );
336 QFileInfo *fi; 354 QFileInfo *fi;
337 while( (fi=it.current() ) ){ 355 while( (fi=it.current() ) ){
338 if( fi->fileName() == QString::fromLatin1("..") || fi->fileName() == QString::fromLatin1(".") ){ 356 if( fi->fileName() == QString::fromLatin1("..") || fi->fileName() == QString::fromLatin1(".") ){
339 ++it; 357 ++it;
340 continue; 358 continue;
341 } 359 }
342 360
343 /* 361 /*
344 * It is a symlink we try to resolve it now but don't let us attack by DOS 362 * It is a symlink we try to resolve it now but don't let us attack by DOS
345 * 363 *
346 */ 364 */
347 if( fi->isSymLink() ){ 365 if( fi->isSymLink() ){
348 QString file = fi->dirPath( true ) + "/" + fi->readLink(); 366 qDebug("SYMLINK ");
349 for( int i = 0; i<=4; i++) { // 5 tries to prevent dos 367 QString file = fi->readLink();
368 for( int i = 0; i<=5; i++) { // 5 tries to prevent dos
350 QFileInfo info( file ); 369 QFileInfo info( file );
370 qDebug("FILE %s ", file.latin1());
351 if( !info.exists() ){ 371 if( !info.exists() ){
352 addSymlink( fi, TRUE ); 372 addSymlink( fi, TRUE );
353 break; 373 break;
354 }else if( info.isDir() ){ 374 }else if( info.isDir() ){
355 addDir( fi, TRUE ); 375 addDir( fi, TRUE );
356 break; 376 break;
357 }else if( info.isFile() ){ 377 }else if( info.isFile() ){
358 addFile( fi, TRUE ); 378 addFile( fi, TRUE );
359 break; 379 break;
360 }else if( info.isSymLink() ){ 380 }else if( info.isSymLink() ){
361 file = info.dirPath(true ) + "/" + info.readLink() ; 381 file = info.readLink() ;
362 break; 382 break;
363 }else if( i == 4){ // couldn't resolve symlink add it as symlink 383 }else if( i == 4){ // couldn't resolve symlink add it as symlink
364 addSymlink( fi ); 384 addSymlink( fi );
365 } 385 }
366 } // off for loop for symlink resolving 386 } // off for loop for symlink resolving
367 }else if( fi->isDir() ) 387 }else if( fi->isDir() )
368 addDir( fi ); 388 addDir( fi );
369 else if( fi->isFile() ) 389 else if( fi->isFile() )
370 addFile( fi ); 390 addFile( fi );
371 391
372 ++it; 392 ++it;
373 } // of while loop 393 } // of while loop
374 m_view->sort(); 394 m_view->sort();
375 395
376} 396}
377int OFileViewFileListView::fileCount()const{ 397int OFileViewFileListView::fileCount()const{
378 return m_view->childCount(); 398 return m_view->childCount();
379} 399}
380QString OFileViewFileListView::currentDir()const{ 400QString OFileViewFileListView::currentDir()const{
381 return m_currentDir; 401 return m_currentDir;
382} 402}
383OFileSelector* OFileViewFileListView::selector() { 403OFileSelector* OFileViewFileListView::selector() {
384 return m_sel; 404 return m_sel;
385} 405}
@@ -465,75 +485,75 @@ void OFileViewFileListView::slotClicked(int button , QListViewItem* item, const
465 selector()->m_lneEdit->setText( str[0].stripWhiteSpace() ); 485 selector()->m_lneEdit->setText( str[0].stripWhiteSpace() );
466 QString path = sel->directory() + "/" + str[0].stripWhiteSpace(); 486 QString path = sel->directory() + "/" + str[0].stripWhiteSpace();
467 emit selector()->fileSelected( path ); 487 emit selector()->fileSelected( path );
468 DocLnk lnk( path ); 488 DocLnk lnk( path );
469 emit selector()->fileSelected( lnk ); 489 emit selector()->fileSelected( lnk );
470 } 490 }
471 } // not locked 491 } // not locked
472} 492}
473void OFileViewFileListView::addFile( QFileInfo* info, bool symlink ) { 493void OFileViewFileListView::addFile( QFileInfo* info, bool symlink ) {
474 MimeType type( info->absFilePath() ); 494 MimeType type( info->absFilePath() );
475 if (!compliesMime( type.id() ) ) 495 if (!compliesMime( type.id() ) )
476 return; 496 return;
477 497
478 QPixmap pix = type.pixmap(); 498 QPixmap pix = type.pixmap();
479 QString dir, name; bool locked; 499 QString dir, name; bool locked;
480 if ( pix.isNull() ) { 500 if ( pix.isNull() ) {
481 QWMatrix matrix; 501 QWMatrix matrix;
482 QPixmap pixer(Resource::loadPixmap("UnknownDocument") ); 502 QPixmap pixer(Resource::loadPixmap("UnknownDocument") );
483 matrix.scale( .4, .4 ); 503 matrix.scale( .4, .4 );
484 pix = pixer.xForm( matrix ); 504 pix = pixer.xForm( matrix );
485 } 505 }
486 dir = info->dirPath( true ); 506 dir = info->dirPath( true );
487 locked = false; 507 locked = false;
488 if ( symlink ) 508 if ( symlink )
489 name = info->fileName() + " -> " + info->dirPath() + "/" + info->readLink(); 509 name = info->fileName() + " -> " + info->readLink();
490 else{ 510 else{
491 name = info->fileName(); 511 name = info->fileName();
492 if ( ( (selector()->mode() == OFileSelector::Open)&& !info->isReadable() ) || 512 if ( ( (selector()->mode() == OFileSelector::Open)&& !info->isReadable() ) ||
493 ( (selector()->mode() == OFileSelector::Save)&& !info->isWritable() ) ) { 513 ( (selector()->mode() == OFileSelector::Save)&& !info->isWritable() ) ) {
494 locked = true; pix = Resource::loadPixmap("locked"); 514 locked = true; pix = Resource::loadPixmap("locked");
495 } 515 }
496 } 516 }
497 (void)new OFileSelectorItem( m_view, pix, name, 517 (void)new OFileSelectorItem( m_view, pix, name,
498 KGlobal::locale()->formatDateTime(info->lastModified(),true, true, KLocale::ISODate), 518 KGlobal::locale()->formatDateTime(info->lastModified(),true, true, KLocale::ISODate),
499 QString::number( info->size() ), 519 QString::number( info->size() ),
500 dir, locked ); 520 dir, locked );
501} 521}
502void OFileViewFileListView::addDir( QFileInfo* info, bool symlink ) { 522void OFileViewFileListView::addDir( QFileInfo* info, bool symlink ) {
503 bool locked = false; QString name; QPixmap pix; 523 bool locked = false; QString name; QPixmap pix;
504 524
505 if ( ( ( selector()->mode() == OFileSelector::Open ) && !info->isReadable() ) || 525 if ( ( ( selector()->mode() == OFileSelector::Open ) && !info->isReadable() ) ||
506 ( ( selector()->mode() == OFileSelector::Save ) && !info->isWritable() ) ) { 526 ( ( selector()->mode() == OFileSelector::Save ) && !info->isWritable() ) ) {
507 locked = true; 527 locked = true;
508 if ( symlink ) 528 if ( symlink )
509 pix = Resource::loadPixmap( "symlink" ); 529 pix = Resource::loadPixmap( "symlink" );
510 else 530 else
511 pix = Resource::loadPixmap( "lockedfolder" ); 531 pix = Resource::loadPixmap( "lockedfolder" );
512 }else 532 }else
513 pix = symlink ? Resource::loadPixmap( "symlink") : Resource::loadPixmap("folder"); 533 pix = symlink ? Resource::loadPixmap( "symlink") : Resource::loadPixmap("folder");
514 534
515 name = symlink ? info->fileName() + " -> " + info->dirPath(true) + "/" + info->readLink() : 535 name = symlink ? info->fileName() + " -> " + info->readLink() :
516 info->fileName(); 536 info->fileName();
517 537
518 (void)new OFileSelectorItem( m_view, pix, name, 538 (void)new OFileSelectorItem( m_view, pix, name,
519 KGlobal::locale()->formatDateTime(info->lastModified(),true, true, KLocale::ISODate), 539 KGlobal::locale()->formatDateTime(info->lastModified(),true, true, KLocale::ISODate),
520 QString::number( info->size() ), 540 QString::number( info->size() ),
521 info->dirPath( true ), locked, true ); 541 info->dirPath( true ), locked, true );
522 542
523 543
524} 544}
525void OFileViewFileListView::addSymlink( QFileInfo* , bool ) { 545void OFileViewFileListView::addSymlink( QFileInfo* , bool ) {
526 546
527} 547}
528void OFileViewFileListView::cdUP() { 548void OFileViewFileListView::cdUP() {
529 QDir dir( m_currentDir ); 549 QDir dir( m_currentDir );
530 dir.cdUp(); 550 dir.cdUp();
531 551
532 if (!dir.exists() ) 552 if (!dir.exists() )
533 m_currentDir = "/"; 553 m_currentDir = "/";
534 else 554 else
535 m_currentDir = dir.absPath(); 555 m_currentDir = dir.absPath();
536 556
537 emit selector()->dirSelected( m_currentDir ); 557 emit selector()->dirSelected( m_currentDir );
538 reread( m_all ); 558 reread( m_all );
539} 559}