-rw-r--r-- | libopie/ofileselector.cc | 217 |
1 files changed, 112 insertions, 105 deletions
diff --git a/libopie/ofileselector.cc b/libopie/ofileselector.cc index 7481360..6748bec 100644 --- a/libopie/ofileselector.cc +++ b/libopie/ofileselector.cc | |||
@@ -1,191 +1,191 @@ | |||
1 | 1 | ||
2 | 2 | ||
3 | #include <qwmatrix.h> | ||
3 | #include <qcheckbox.h> | 4 | #include <qcheckbox.h> |
4 | #include <qcombobox.h> | 5 | #include <qcombobox.h> |
5 | #include <qheader.h> | 6 | #include <qheader.h> |
6 | #include <qlabel.h> | 7 | #include <qlabel.h> |
7 | #include <qabstractlayout.h> | 8 | #include <qabstractlayout.h> |
8 | #include <qlayout.h> | 9 | #include <qlayout.h> |
9 | #include <qlineedit.h> | 10 | #include <qlineedit.h> |
10 | #include <qlistview.h> | 11 | #include <qlistview.h> |
11 | #include <qmessagebox.h> | 12 | #include <qmessagebox.h> |
12 | #include <qpainter.h> | 13 | #include <qpainter.h> |
13 | #include <qpushbutton.h> | 14 | #include <qpushbutton.h> |
14 | #include <qwidgetstack.h> | 15 | #include <qwidgetstack.h> |
15 | #include <qpopupmenu.h> | 16 | #include <qpopupmenu.h> |
16 | #include <qdir.h> | 17 | #include <qdir.h> |
17 | #include <qfile.h> | 18 | #include <qfile.h> |
18 | #include <qfileinfo.h> | 19 | #include <qfileinfo.h> |
19 | #include <qtimer.h> | 20 | #include <qtimer.h> |
20 | 21 | ||
21 | #include <qpe/qpeapplication.h> | 22 | #include <qpe/qpeapplication.h> |
22 | #include <qpe/applnk.h> | 23 | #include <qpe/applnk.h> |
23 | #include <qpe/fileselector.h> | 24 | #include <qpe/fileselector.h> |
24 | #include <qpe/global.h> | 25 | #include <qpe/global.h> |
25 | #include <qpe/mimetype.h> | 26 | #include <qpe/mimetype.h> |
26 | #include <qpe/resource.h> | 27 | #include <qpe/resource.h> |
27 | #include <qpe/storage.h> | 28 | #include <qpe/storage.h> |
28 | 29 | ||
29 | #include <unistd.h> | 30 | #include <unistd.h> |
30 | #include <stdlib.h> | 31 | #include <stdlib.h> |
31 | #include <sys/stat.h> | 32 | #include <sys/stat.h> |
32 | 33 | ||
33 | #include "ofileselector.h" | 34 | #include "ofileselector.h" |
34 | 35 | ||
35 | 36 | ||
36 | QMap<QString,QPixmap> *OFileSelector::m_pixmaps = 0; | 37 | QMap<QString,QPixmap> *OFileSelector::m_pixmaps = 0; |
37 | 38 | ||
38 | namespace { | 39 | namespace { |
39 | int indexByString( const QComboBox *box, const QString &str ){ | 40 | int indexByString( const QComboBox *box, const QString &str ){ |
40 | int index= 0; | 41 | int index= 0; |
41 | for(int i= 0; i < box->count(); i++ ){ | 42 | for(int i= 0; i < box->count(); i++ ){ |
42 | if( str == box->text(i ) ){ | 43 | if( str == box->text(i ) ){ |
43 | index= i; | 44 | index= i; |
44 | break; | 45 | break; |
45 | } | 46 | } |
46 | } | 47 | } |
47 | return index; | 48 | return index; |
48 | } | 49 | } |
49 | class OFileSelectorItem : public QListViewItem { | 50 | class OFileSelectorItem : public QListViewItem { |
50 | public: | 51 | public: |
51 | OFileSelectorItem(QListView *view, const QPixmap &pixmap, const QString &path, | 52 | OFileSelectorItem(QListView *view, const QPixmap &pixmap, const QString &path, |
52 | const QString &date, const QString &size, const QString &mDir, | 53 | const QString &date, const QString &size, const QString &mDir, |
53 | bool isLocked=false, bool isDir=false ): QListViewItem(view) { | 54 | bool isLocked=false, bool isDir=false ): QListViewItem(view) { |
54 | setPixmap(0, pixmap ); | 55 | setPixmap(0, pixmap ); |
55 | setText(1, path ); | 56 | setText(1, path ); |
56 | setText(2, size ); | 57 | setText(2, size ); |
57 | setText(3, date ); | 58 | setText(3, date ); |
58 | //setText(4, mDir ); | 59 | //setText(4, mDir ); |
59 | m_dir = mDir; | 60 | m_dir = mDir; |
60 | dir = isDir; | 61 | dir = isDir; |
61 | mLocked = isLocked; | 62 | mLocked = isLocked; |
62 | } | 63 | } |
63 | bool isLocked() const{ | 64 | bool isLocked() const{ |
64 | return mLocked; | 65 | return mLocked; |
65 | } | 66 | } |
66 | QString directory()const{ | 67 | QString directory()const{ |
67 | return m_dir; | 68 | return m_dir; |
68 | } | 69 | } |
69 | bool isDir()const{ | 70 | bool isDir()const{ |
70 | return dir; | 71 | return dir; |
71 | } | 72 | } |
72 | QString path()const{ | 73 | QString path()const{ |
73 | return text(1 ); | 74 | return text(1 ); |
74 | } | 75 | } |
75 | QString key(int id, bool )const { | 76 | QString key(int id, bool )const { |
76 | QString ke; | 77 | QString ke; |
77 | if( id == 0 || id == 1 ){ // name | 78 | if( id == 0 || id == 1 ){ // name |
78 | if( dir ){ | 79 | if( dir ){ |
79 | ke.append("0" ); | 80 | ke.append("0" ); |
80 | ke.append( text(1) ); | 81 | ke.append( text(1) ); |
81 | }else{ | 82 | }else{ |
82 | ke.append("1" ); | 83 | ke.append("1" ); |
83 | ke.append( text(1) ); | 84 | ke.append( text(1) ); |
84 | } | 85 | } |
85 | }else if( id == 2 ){ // size | 86 | }else if( id == 2 ){ // size |
86 | return text(2); | 87 | return text(2); |
87 | }else if( id == 3 ){ // date | 88 | }else if( id == 3 ){ // date |
88 | return text(3); | 89 | return text(3); |
89 | } | 90 | } |
90 | return ke; | 91 | return ke; |
91 | }; | 92 | }; |
92 | private: | 93 | private: |
93 | bool mLocked:1; | 94 | bool mLocked:1; |
94 | bool dir:1; | 95 | bool dir:1; |
95 | QString m_dir; | 96 | QString m_dir; |
96 | }; | 97 | }; |
97 | }; | 98 | }; |
98 | 99 | ||
99 | 100 | ||
100 | OFileSelector::OFileSelector( QWidget *wid, int mode, int selector, | 101 | OFileSelector::OFileSelector( QWidget *wid, int mode, int selector, |
101 | const QString &dirName, | 102 | const QString &dirName, |
102 | const QString &fileName, | 103 | const QString &fileName, |
103 | const QMap<QString,QStringList>& mimeTypes) | 104 | const QMap<QString,QStringList>& mimeTypes) |
104 | : QWidget( wid, "OFileSelector") | 105 | : QWidget( wid, "OFileSelector") |
105 | { | 106 | { |
106 | m_mimetypes = mimeTypes; | 107 | m_mimetypes = mimeTypes; |
107 | if (mode == SAVE ) | 108 | if (mode == SAVE ) |
108 | m_name = fileName; | 109 | m_name = fileName; |
109 | initVars(); | 110 | initVars(); |
110 | m_mode = mode; | 111 | m_mode = mode; |
111 | m_selector = selector; | 112 | m_selector = selector; |
112 | m_currentDir = dirName; | 113 | m_currentDir = dirName; |
113 | init(); | 114 | init(); |
114 | //QTimer::singleShot(6*1000, this, SLOT( slotTest() ) ); | 115 | //QTimer::singleShot(6*1000, this, SLOT( slotTest() ) ); |
115 | } | 116 | } |
116 | 117 | ||
117 | OFileSelector::OFileSelector(const QString &mimeFilter, QWidget *parent, | 118 | OFileSelector::OFileSelector(const QString &mimeFilter, QWidget *parent, |
118 | const char *name, bool newVisible, | 119 | const char *name, bool newVisible, |
119 | bool closeVisible ) | 120 | bool closeVisible ) |
120 | : QWidget( parent, name ) | 121 | : QWidget( parent, name ) |
121 | { | 122 | { |
122 | if (!mimeFilter.isEmpty() ) { | 123 | if (!mimeFilter.isEmpty() ) { |
123 | QStringList list = QStringList::split(";", mimeFilter ); | 124 | QStringList list = QStringList::split(";", mimeFilter ); |
124 | m_mimetypes.insert(mimeFilter, list ); | 125 | m_mimetypes.insert(mimeFilter, list ); |
125 | } | 126 | } |
126 | initVars(); | 127 | initVars(); |
127 | m_currentDir = QPEApplication::documentDir(); | 128 | m_currentDir = QPEApplication::documentDir(); |
128 | m_mode = FILESELECTOR; | 129 | m_mode = FILESELECTOR; |
129 | m_selector = NORMAL; | 130 | m_selector = NORMAL; |
130 | m_shClose = closeVisible; | 131 | m_shClose = closeVisible; |
131 | m_shNew = newVisible; | 132 | m_shNew = newVisible; |
132 | m_shLne = false; | 133 | m_shLne = false; |
133 | m_shPerm = false; | 134 | m_shPerm = false; |
134 | m_shYesNo = false; | 135 | m_shYesNo = false; |
135 | init(); | 136 | init(); |
136 | 137 | ||
137 | |||
138 | } | 138 | } |
139 | 139 | ||
140 | OFileSelector::~OFileSelector() | 140 | OFileSelector::~OFileSelector() |
141 | { | 141 | { |
142 | 142 | ||
143 | 143 | ||
144 | } | 144 | } |
145 | 145 | ||
146 | void OFileSelector::setNewVisible( bool visible ) | 146 | void OFileSelector::setNewVisible( bool visible ) |
147 | { | 147 | { |
148 | m_shNew = visible; | 148 | m_shNew = visible; |
149 | if( m_selector == NORMAL ){ | 149 | if( m_selector == NORMAL ){ |
150 | delete m_select; | 150 | delete m_select; |
151 | // we need to initialize but keep the selected mimetype | 151 | // we need to initialize but keep the selected mimetype |
152 | QString mime = currentMimeType(); | 152 | QString mime = currentMimeType(); |
153 | m_select = new FileSelector( mime , | 153 | m_select = new FileSelector( mime , |
154 | m_stack, "fileselector", | 154 | m_stack, "fileselector", |
155 | m_shNew, m_shClose); | 155 | m_shNew, m_shClose); |
156 | connect(m_select, SIGNAL(fileSelected( const DocLnk & ) ), | 156 | connect(m_select, SIGNAL(fileSelected( const DocLnk & ) ), |
157 | this, SLOT( slotFileBridgeSelected(const DocLnk & ) ) ); | 157 | this, SLOT( slotFileBridgeSelected(const DocLnk & ) ) ); |
158 | connect(m_select, SIGNAL(closeMe() ), | 158 | connect(m_select, SIGNAL(closeMe() ), |
159 | this, SIGNAL(closeMe() ) ); | 159 | this, SIGNAL(closeMe() ) ); |
160 | //connect to close me and other signals as well | 160 | //connect to close me and other signals as well |
161 | m_stack->addWidget( m_select, NORMAL ); | 161 | m_stack->addWidget( m_select, NORMAL ); |
162 | }else{ | 162 | }else{ |
163 | m_new->show(); | 163 | m_new->show(); |
164 | } | 164 | } |
165 | } | 165 | } |
166 | void OFileSelector::setCloseVisible( bool visible ) | 166 | void OFileSelector::setCloseVisible( bool visible ) |
167 | { | 167 | { |
168 | m_shClose = visible; | 168 | m_shClose = visible; |
169 | if( m_selector == NORMAL ){ | 169 | if( m_selector == NORMAL ){ |
170 | setNewVisible( m_shNew ); // yeah baby | 170 | setNewVisible( m_shNew ); // yeah baby |
171 | }else{ | 171 | }else{ |
172 | m_close->show(); | 172 | m_close->show(); |
173 | } | 173 | } |
174 | } | 174 | } |
175 | void OFileSelector::reread() | 175 | void OFileSelector::reread() |
176 | { | 176 | { |
177 | if( m_selector == NORMAL ){ | 177 | if( m_selector == NORMAL ){ |
178 | setNewVisible( m_shNew ); // make it a initializeSelector | 178 | setNewVisible( m_shNew ); // make it a initializeSelector |
179 | }else if ( m_selector == EXTENDED || m_selector == EXTENDED_ALL ){ | 179 | }else if ( m_selector == EXTENDED || m_selector == EXTENDED_ALL ){ |
180 | reparse(); | 180 | reparse(); |
181 | //}else{ | 181 | //}else{ |
182 | //; | 182 | //; |
183 | } | 183 | } |
184 | } | 184 | } |
185 | 185 | ||
186 | const DocLnk *OFileSelector::selected() | 186 | const DocLnk *OFileSelector::selected() |
187 | { | 187 | { |
188 | DocLnk *lnk = new DocLnk(selectedDocument() ); | 188 | DocLnk *lnk = new DocLnk(selectedDocument() ); |
189 | return lnk; | 189 | return lnk; |
190 | } | 190 | } |
191 | 191 | ||
@@ -404,132 +404,132 @@ DocLnk OFileSelector::selectedDocument() const | |||
404 | default: | 404 | default: |
405 | lnk = DocLnk( selectedName() ); // new DocLnk | 405 | lnk = DocLnk( selectedName() ); // new DocLnk |
406 | break; | 406 | break; |
407 | } | 407 | } |
408 | return lnk; | 408 | return lnk; |
409 | } | 409 | } |
410 | QValueList<DocLnk> OFileSelector::selectedDocuments() const | 410 | QValueList<DocLnk> OFileSelector::selectedDocuments() const |
411 | { | 411 | { |
412 | QValueList<DocLnk> docs; | 412 | QValueList<DocLnk> docs; |
413 | docs.append( selectedDocument() ); | 413 | docs.append( selectedDocument() ); |
414 | return docs; | 414 | return docs; |
415 | } | 415 | } |
416 | 416 | ||
417 | 417 | ||
418 | // slots internal | 418 | // slots internal |
419 | 419 | ||
420 | void OFileSelector::slotOk() | 420 | void OFileSelector::slotOk() |
421 | { | 421 | { |
422 | emit ok(); | 422 | emit ok(); |
423 | } | 423 | } |
424 | void OFileSelector::slotCancel() | 424 | void OFileSelector::slotCancel() |
425 | { | 425 | { |
426 | emit cancel(); | 426 | emit cancel(); |
427 | } | 427 | } |
428 | void OFileSelector::slotViewCheck(const QString &sel) | 428 | void OFileSelector::slotViewCheck(const QString &sel) |
429 | { | 429 | { |
430 | if( sel == tr("Documents" ) ){ | 430 | if( sel == tr("Documents" ) ){ |
431 | if( m_select == 0 ){ | 431 | if( m_select == 0 ){ |
432 | // autMime? fix cause now we use All and not the current | 432 | // autMime? fix cause now we use All and not the current |
433 | // yes currentMime fixes that for us | 433 | // yes currentMime fixes that for us |
434 | QString mime = currentMimeType(); | 434 | QString mime = currentMimeType(); |
435 | m_select = new FileSelector(mime, | 435 | m_select = new FileSelector(mime, |
436 | m_stack, "fileselector", | 436 | m_stack, "fileselector", |
437 | m_shNew, m_shClose); | 437 | m_shNew, m_shClose); |
438 | connect(m_select, SIGNAL(fileSelected( const DocLnk & ) ), | 438 | connect(m_select, SIGNAL(fileSelected( const DocLnk & ) ), |
439 | this, SLOT( slotFileBridgeSelected(const DocLnk & ) ) ); | 439 | this, SLOT( slotFileBridgeSelected(const DocLnk & ) ) ); |
440 | connect(m_select, SIGNAL(closeMe() ), | 440 | connect(m_select, SIGNAL(closeMe() ), |
441 | this, SIGNAL(closeMe() ) ); | 441 | this, SIGNAL(closeMe() ) ); |
442 | //connect to close me and other signals as well | 442 | //connect to close me and other signals as well |
443 | 443 | ||
444 | m_stack->addWidget( m_select, NORMAL ); | 444 | m_stack->addWidget( m_select, NORMAL ); |
445 | } | 445 | } |
446 | m_stack->raiseWidget( NORMAL ); | 446 | m_stack->raiseWidget( NORMAL ); |
447 | m_selector = NORMAL; | 447 | m_selector = NORMAL; |
448 | }else if( sel == tr("Files") ){ | 448 | }else if( sel == tr("Files") ){ |
449 | m_selector = EXTENDED; | 449 | m_selector = EXTENDED; |
450 | initializeListView(); | 450 | initializeListView(); |
451 | reparse(); | 451 | reparse(); |
452 | m_stack->raiseWidget( EXTENDED ); | 452 | m_stack->raiseWidget( EXTENDED ); |
453 | }else if( sel == tr("All Files") ){ | 453 | }else if( sel == tr("All Files") ){ |
454 | m_selector = EXTENDED_ALL; | 454 | m_selector = EXTENDED_ALL; |
455 | initializeListView(); | 455 | initializeListView(); |
456 | reparse(); | 456 | reparse(); |
457 | m_stack->raiseWidget( EXTENDED ); // same widget other QFileFilter | 457 | m_stack->raiseWidget( EXTENDED ); // same widget other QFileFilter |
458 | } | 458 | } |
459 | } | 459 | } |
460 | // not yet finished..... | 460 | // not yet finished..... |
461 | QString OFileSelector::currentMimeType() const{ | 461 | QString OFileSelector::currentMimeType() const{ |
462 | QString mime; | 462 | QString mime; |
463 | QString currentText; | 463 | QString currentText; |
464 | if (m_shChooser ) | 464 | if (m_shChooser ) |
465 | currentText = m_mimeCheck->currentText(); | 465 | currentText = m_mimeCheck->currentText(); |
466 | 466 | ||
467 | if (tr("All") == currentText ) return QString::null; | 467 | if (tr("All") == currentText ) return QString::null; |
468 | else if (currentText.isEmpty() ) { | 468 | else if (currentText.isEmpty() ) { |
469 | ; | 469 | ; |
470 | }else { | 470 | }else { |
471 | QMap<QString, QStringList>::ConstIterator it; | 471 | QMap<QString, QStringList>::ConstIterator it; |
472 | it = m_mimetypes.find( currentText ); | 472 | it = m_mimetypes.find( currentText ); |
473 | if ( it == m_mimetypes.end() ) { | 473 | if ( it == m_mimetypes.end() ) { |
474 | mime = it.data().join(";"); | 474 | mime = it.data().join(";"); |
475 | }else{ | 475 | }else{ |
476 | mime = currentText; | 476 | mime = currentText; |
477 | } | 477 | } |
478 | } | 478 | } |
479 | return mime; | 479 | return mime; |
480 | } | 480 | } |
481 | void OFileSelector::slotMimeCheck(const QString &mime) | 481 | void OFileSelector::slotMimeCheck(const QString &mime) |
482 | { | 482 | { |
483 | if( m_selector == NORMAL ){ | 483 | if( m_selector == NORMAL ){ |
484 | //if( m_autoMime ){ | 484 | //if( m_autoMime ){ |
485 | QString newMimeType; | 485 | QString newMimeType; |
486 | if (mime != tr("All") ) { | 486 | if (mime != tr("All") ) { |
487 | QMap<QString, QStringList>::Iterator it; | 487 | QMap<QString, QStringList>::Iterator it; |
488 | it = m_mimetypes.find(mime); | 488 | it = m_mimetypes.find(mime); |
489 | if ( it != m_mimetypes.end() ) { | 489 | if ( it != m_mimetypes.end() ) { |
490 | newMimeType = it.data().join(";"); | 490 | newMimeType = it.data().join(";"); |
491 | }else{ | 491 | }else{ |
492 | newMimeType = mime; | 492 | newMimeType = mime; |
493 | } | 493 | } |
494 | } | 494 | } |
495 | delete m_select; | 495 | delete m_select; |
496 | m_select = new FileSelector( newMimeType, | 496 | m_select = new FileSelector( newMimeType, |
497 | m_stack, "fileselector", | 497 | m_stack, "fileselector", |
498 | m_shNew, m_shClose); | 498 | m_shNew, m_shClose); |
499 | 499 | ||
500 | connect(m_select, SIGNAL(fileSelected( const DocLnk & ) ), | 500 | connect(m_select, SIGNAL(fileSelected( const DocLnk & ) ), |
501 | this, SLOT( slotFileBridgeSelected(const DocLnk & ) ) ); | 501 | this, SLOT( slotFileBridgeSelected(const DocLnk & ) ) ); |
502 | connect(m_select, SIGNAL(closeMe() ), | 502 | connect(m_select, SIGNAL(closeMe() ), |
503 | this, SIGNAL(closeMe() ) ); | 503 | this, SIGNAL(closeMe() ) ); |
504 | //connect to close me and other signals as well | 504 | //connect to close me and other signals as well |
505 | m_stack->addWidget( m_select, NORMAL ); | 505 | m_stack->addWidget( m_select, NORMAL ); |
506 | m_stack->raiseWidget( NORMAL ); | 506 | m_stack->raiseWidget( NORMAL ); |
507 | updateMimes(); | 507 | updateMimes(); |
508 | updateMimeCheck(); | 508 | updateMimeCheck(); |
509 | m_mimeCheck->setCurrentItem(indexByString( m_mimeCheck, mime) ); | 509 | m_mimeCheck->setCurrentItem(indexByString( m_mimeCheck, mime) ); |
510 | //} | 510 | //} |
511 | }else{ // others | 511 | }else{ // others |
512 | qWarning("Mime %s", mime.latin1() ); | 512 | qWarning("Mime %s", mime.latin1() ); |
513 | if(m_shChooser ){ | 513 | if(m_shChooser ){ |
514 | qWarning("Current Text %s", m_mimeCheck->currentText().latin1() ); | 514 | qWarning("Current Text %s", m_mimeCheck->currentText().latin1() ); |
515 | //m_mimeCheck->setCurrentItem(indexByString( m_mimeCheck, mime) ); | 515 | //m_mimeCheck->setCurrentItem(indexByString( m_mimeCheck, mime) ); |
516 | } | 516 | } |
517 | reparse(); | 517 | reparse(); |
518 | } | 518 | } |
519 | 519 | ||
520 | } | 520 | } |
521 | /* | 521 | /* |
522 | * Ok if a non dir gets inserted into this combobox | 522 | * Ok if a non dir gets inserted into this combobox |
523 | * we need to change it | 523 | * we need to change it |
524 | * QFileInfo and dirPath will give us the right Dir | 524 | * QFileInfo and dirPath will give us the right Dir |
525 | */ | 525 | */ |
526 | void OFileSelector::slotLocationActivated(const QString &file) | 526 | void OFileSelector::slotLocationActivated(const QString &file) |
527 | { | 527 | { |
528 | qWarning("slotLocationActivated"); | 528 | qWarning("slotLocationActivated"); |
529 | QString name = file.left( file.find("<-", 0, TRUE ) ); | 529 | QString name = file.left( file.find("<-", 0, TRUE ) ); |
530 | QFileInfo info( name ); | 530 | QFileInfo info( name ); |
531 | if ( info.isFile() ) | 531 | if ( info.isFile() ) |
532 | cd(info.dirPath( TRUE ) ); //absolute | 532 | cd(info.dirPath( TRUE ) ); //absolute |
533 | else | 533 | else |
534 | cd(name ); | 534 | cd(name ); |
535 | reparse(); | 535 | reparse(); |
@@ -554,110 +554,110 @@ void OFileSelector::slotInsertLocationPath(const QString ¤tPath, int count | |||
554 | } | 554 | } |
555 | /* | 555 | /* |
556 | * Do not crash anymore | 556 | * Do not crash anymore |
557 | * don't try to change dir to a file | 557 | * don't try to change dir to a file |
558 | */ | 558 | */ |
559 | void OFileSelector::locationComboChanged() | 559 | void OFileSelector::locationComboChanged() |
560 | { | 560 | { |
561 | QFileInfo info( m_location->lineEdit()->text() ); | 561 | QFileInfo info( m_location->lineEdit()->text() ); |
562 | qWarning("info %s %s", info.dirPath(true).latin1(), m_location->lineEdit()->text().latin1() ); | 562 | qWarning("info %s %s", info.dirPath(true).latin1(), m_location->lineEdit()->text().latin1() ); |
563 | if (info.isFile() ) | 563 | if (info.isFile() ) |
564 | cd(info.dirPath(TRUE) ); //absolute path | 564 | cd(info.dirPath(TRUE) ); //absolute path |
565 | else | 565 | else |
566 | cd( m_location->lineEdit()->text() ); | 566 | cd( m_location->lineEdit()->text() ); |
567 | 567 | ||
568 | reparse(); | 568 | reparse(); |
569 | } | 569 | } |
570 | void OFileSelector::init() | 570 | void OFileSelector::init() |
571 | { | 571 | { |
572 | m_lay = new QVBoxLayout( this ); | 572 | m_lay = new QVBoxLayout( this ); |
573 | m_lay->setSpacing(0 ); | 573 | m_lay->setSpacing(0 ); |
574 | 574 | ||
575 | m_stack = new QWidgetStack( this ); | 575 | m_stack = new QWidgetStack( this ); |
576 | if( m_selector == NORMAL ){ | 576 | if( m_selector == NORMAL ){ |
577 | QString mime; | 577 | QString mime; |
578 | if (!m_autoMime) { | 578 | if (!m_autoMime) { |
579 | if (!m_mimetypes.isEmpty() ) { | 579 | if (!m_mimetypes.isEmpty() ) { |
580 | QMap<QString, QStringList>::Iterator it; | 580 | QMap<QString, QStringList>::Iterator it; |
581 | it = m_mimetypes.begin(); // cause we're in the init | 581 | it = m_mimetypes.begin(); // cause we're in the init |
582 | mime = it.data().join(";"); | 582 | mime = it.data().join(";"); |
583 | } | 583 | } |
584 | } | 584 | } |
585 | m_select = new FileSelector(mime, | 585 | m_select = new FileSelector(mime, |
586 | m_stack, "fileselector", | 586 | m_stack, "fileselector", |
587 | m_shNew, m_shClose); | 587 | m_shNew, m_shClose); |
588 | 588 | ||
589 | connect(m_select, SIGNAL(fileSelected( const DocLnk & ) ), | 589 | connect(m_select, SIGNAL(fileSelected( const DocLnk & ) ), |
590 | this, SLOT( slotFileBridgeSelected(const DocLnk & ) ) ); | 590 | this, SLOT( slotFileBridgeSelected(const DocLnk & ) ) ); |
591 | connect(m_select, SIGNAL(closeMe() ), | 591 | connect(m_select, SIGNAL(closeMe() ), |
592 | this, SIGNAL( closeMe() ) ); | 592 | this, SIGNAL( closeMe() ) ); |
593 | //connect to close me and other signals as well | 593 | //connect to close me and other signals as well |
594 | 594 | ||
595 | m_stack->addWidget( m_select, NORMAL ); | 595 | m_stack->addWidget( m_select, NORMAL ); |
596 | m_stack->raiseWidget( NORMAL ); | 596 | m_stack->raiseWidget( NORMAL ); |
597 | }else{ // we're in init so it will be EXTENDED or EXTENDED_ALL | 597 | }else{ // we're in init so it will be EXTENDED or EXTENDED_ALL |
598 | // and initializeListview will take care of those | 598 | // and initializeListview will take care of those |
599 | // toolbar get's generade in initializeListView | 599 | // toolbar get's generade in initializeListView |
600 | initializeListView( ); // will raise the widget as well | 600 | initializeListView( ); // will raise the widget as well |
601 | m_stack->raiseWidget( EXTENDED ); | 601 | m_stack->raiseWidget( EXTENDED ); |
602 | } | 602 | } |
603 | m_lay->addWidget( m_stack, 100 ); // add to the layout 10 = stretch | 603 | m_lay->addWidget( m_stack, 100 ); // add to the layout 10 = stretch |
604 | 604 | ||
605 | if( m_shLne ) // the LineEdit with the current FileName | 605 | if( m_shLne ) // the LineEdit with the current FileName |
606 | initializeName(); | 606 | initializeName(); |
607 | 607 | ||
608 | if( m_shPerm ) // the Permission QCheckBox | 608 | if( m_shPerm ) // the Permission QCheckBox |
609 | initializePerm(); | 609 | initializePerm(); |
610 | 610 | ||
611 | if( m_shChooser ) // the Chooser for the view and Mimetypes | 611 | if( m_shChooser ) // the Chooser for the view and Mimetypes |
612 | initializeChooser(); | 612 | initializeChooser(); |
613 | 613 | ||
614 | if( m_shYesNo ) // the Yes No button row | 614 | if( m_shYesNo ) // the Yes No button row |
615 | initializeYes( ); | 615 | initializeYes( ); |
616 | 616 | ||
617 | if (m_selector != NORMAL ) | 617 | if (m_selector != NORMAL ) |
618 | reparse(); | 618 | reparse(); |
619 | } | 619 | } |
620 | void OFileSelector::updateMimes() | 620 | void OFileSelector::updateMimes() |
621 | { | 621 | { |
622 | if( m_autoMime ){ | 622 | if( m_autoMime ){ |
623 | m_mimetypes.clear(); | 623 | m_mimetypes.clear(); |
624 | m_mimetypes.insert( tr("All"), QString::null ); | 624 | m_mimetypes.insert( tr("All"), QString::null ); |
625 | if( m_selector == NORMAL ){ | 625 | if( m_selector == NORMAL ){ |
626 | DocLnkSet set; | 626 | DocLnkSet set; |
627 | Global::findDocuments(&set, QString::null ); | 627 | Global::findDocuments(&set, QString::null ); |
628 | QListIterator<DocLnk> dit( set.children() ); | 628 | QListIterator<DocLnk> dit( set.children() ); |
629 | for( ; dit.current(); ++dit ){ | 629 | for( ; dit.current(); ++dit ){ |
630 | if( !m_mimetypes.contains( (*dit)->type() ) ) | 630 | if( !m_mimetypes.contains( (*dit)->type() ) ) |
631 | m_mimetypes.insert( (*dit)->type(), (*dit)->type() ); | 631 | m_mimetypes.insert( (*dit)->type(), (*dit)->type() ); |
632 | } | 632 | } |
633 | }// else done in reparse | 633 | }// else done in reparse |
634 | } | 634 | } |
635 | } | 635 | } |
636 | void OFileSelector::initVars() | 636 | void OFileSelector::initVars() |
637 | { | 637 | { |
638 | if( m_mimetypes.isEmpty() ) | 638 | if( m_mimetypes.isEmpty() ) |
639 | m_autoMime = true; | 639 | m_autoMime = true; |
640 | else | 640 | else |
641 | m_autoMime = false; | 641 | m_autoMime = false; |
642 | m_shClose = false; | 642 | m_shClose = false; |
643 | m_shNew = false; | 643 | m_shNew = false; |
644 | m_shTool = true; | 644 | m_shTool = true; |
645 | m_shPerm = false; | 645 | m_shPerm = false; |
646 | m_shLne = true; | 646 | m_shLne = true; |
647 | m_shChooser = true; | 647 | m_shChooser = true; |
648 | m_shYesNo = true; | 648 | m_shYesNo = true; |
649 | m_case = false; | 649 | m_case = false; |
650 | m_dir = true; | 650 | m_dir = true; |
651 | m_files = true; | 651 | m_files = true; |
652 | m_showPopup = false; | 652 | m_showPopup = false; |
653 | if(m_pixmaps == 0 ) // init the pixmaps | 653 | if(m_pixmaps == 0 ) // init the pixmaps |
654 | initPics(); | 654 | initPics(); |
655 | 655 | ||
656 | // pointers | 656 | // pointers |
657 | m_location = 0; | 657 | m_location = 0; |
658 | m_mimeCheck = 0; | 658 | m_mimeCheck = 0; |
659 | m_viewCheck = 0; | 659 | m_viewCheck = 0; |
660 | m_homeButton = 0; | 660 | m_homeButton = 0; |
661 | m_docButton = 0; | 661 | m_docButton = 0; |
662 | m_hideButton = 0; | 662 | m_hideButton = 0; |
663 | m_ok = 0; | 663 | m_ok = 0; |
@@ -667,298 +667,305 @@ void OFileSelector::initVars() | |||
667 | m_View = 0; | 667 | m_View = 0; |
668 | m_checkPerm = 0; | 668 | m_checkPerm = 0; |
669 | m_pseudo = 0; | 669 | m_pseudo = 0; |
670 | m_pseudoLayout = 0; | 670 | m_pseudoLayout = 0; |
671 | m_select = 0; | 671 | m_select = 0; |
672 | m_stack = 0; | 672 | m_stack = 0; |
673 | m_lay = 0; | 673 | m_lay = 0; |
674 | m_Oselector = 0; | 674 | m_Oselector = 0; |
675 | m_boxToolbar = 0; | 675 | m_boxToolbar = 0; |
676 | m_boxOk = 0; | 676 | m_boxOk = 0; |
677 | m_boxName = 0; | 677 | m_boxName = 0; |
678 | m_boxView = 0; | 678 | m_boxView = 0; |
679 | m_custom = 0; | 679 | m_custom = 0; |
680 | m_edit = 0; | 680 | m_edit = 0; |
681 | m_fnLabel = 0; | 681 | m_fnLabel = 0; |
682 | m_new = 0; | 682 | m_new = 0; |
683 | m_close = 0; | 683 | m_close = 0; |
684 | } | 684 | } |
685 | void OFileSelector::addFile(const QString &/*mime*/, QFileInfo *info, bool symlink) | 685 | void OFileSelector::addFile(const QString &/*mime*/, QFileInfo *info, bool symlink) |
686 | { | 686 | { |
687 | if(!m_files) | 687 | if(!m_files) |
688 | return; | 688 | return; |
689 | // if( !compliesMime(info->absFilePath(), mime ) ) | 689 | // if( !compliesMime(info->absFilePath(), mime ) ) |
690 | // return; | 690 | // return; |
691 | MimeType type( info->absFilePath() ); | 691 | MimeType type( info->absFilePath() ); |
692 | if (!compliesMime( type.id() ) ) | 692 | if (!compliesMime( type.id() ) ) |
693 | return; | 693 | return; |
694 | 694 | ||
695 | QPixmap pix = type.pixmap(); | 695 | QPixmap pix = type.pixmap(); |
696 | QString dir; | 696 | QString dir; |
697 | QString name; | 697 | QString name; |
698 | bool locked; | 698 | bool locked; |
699 | if( pix.isNull() ) | 699 | if( pix.isNull() ) { |
700 | pix = Resource::loadPixmap( "UnknownDocument-14"); | 700 | //TODO make this scaled pixmap global, so we dont have to keep doing this |
701 | QWMatrix matrix; | ||
702 | QPixmap pixer(Resource::loadPixmap( "UnknownDocument" )); | ||
703 | matrix.scale( .4, .4); | ||
704 | pix = pixer.xForm(matrix); | ||
705 | // pix = Resource::loadPixmap( "UnknownDocument-14"); | ||
706 | } | ||
701 | dir = info->dirPath( true ); | 707 | dir = info->dirPath( true ); |
702 | if( symlink ) | 708 | if( symlink ) |
703 | name = info->fileName() + " -> " +info->dirPath() + "/" + info->readLink(); | 709 | name = info->fileName() + " -> " +info->dirPath() + "/" + info->readLink(); |
704 | else { | 710 | else { |
705 | name = info->fileName(); | 711 | name = info->fileName(); |
706 | if( ( m_mode == OPEN && !info->isReadable() )|| | 712 | if( ( m_mode == OPEN && !info->isReadable() )|| |
707 | ( m_mode == SAVE && !info->isWritable() ) ){ | 713 | ( m_mode == SAVE && !info->isWritable() ) ){ |
708 | 714 | ||
709 | locked = true; pix = Resource::loadPixmap("locked"); | 715 | locked = true; pix = Resource::loadPixmap("locked"); |
710 | } | 716 | } |
711 | } | 717 | } |
712 | new OFileSelectorItem( m_View, pix, name, | 718 | new OFileSelectorItem( m_View, pix, name, |
713 | info->lastModified().toString(), | 719 | info->lastModified().toString(), |
714 | QString::number( info->size() ), | 720 | QString::number( info->size() ), |
715 | dir, locked ); | 721 | dir, locked ); |
716 | } | 722 | } |
717 | void OFileSelector::addDir(const QString &/*mime*/, QFileInfo *info, bool symlink ) | 723 | void OFileSelector::addDir(const QString &/*mime*/, QFileInfo *info, bool symlink ) |
718 | { | 724 | { |
719 | if(!m_dir) | 725 | if(!m_dir) |
720 | return; | 726 | return; |
721 | if( m_selector == EXTENDED_ALL || m_selector == EXTENDED ){ | 727 | if( m_selector == EXTENDED_ALL || m_selector == EXTENDED ){ |
722 | bool locked = false; | 728 | bool locked = false; |
723 | QString name; | 729 | QString name; |
724 | QPixmap pix; | 730 | QPixmap pix; |
725 | if( ( m_mode == OPEN && !info->isReadable() ) || ( m_mode == SAVE && !info->isWritable() ) ){ | 731 | if( ( m_mode == OPEN && !info->isReadable() ) || ( m_mode == SAVE && !info->isWritable() ) ){ |
726 | locked = true; | 732 | locked = true; |
727 | if( symlink ) | 733 | if( symlink ) |
728 | pix = (*m_pixmaps)["symlinkedlocked"]; | 734 | pix = (*m_pixmaps)["symlinkedlocked"]; |
729 | else | 735 | else |
730 | pix = Resource::loadPixmap("lockedfolder"); | 736 | pix = Resource::loadPixmap("lockedfolder"); |
731 | }else { // readable | 737 | }else { // readable |
732 | pix = symlink ? (*m_pixmaps)["dirsymlink"] : Resource::loadPixmap("folder") ; | 738 | pix = symlink ? (*m_pixmaps)["dirsymlink"] : Resource::loadPixmap("folder") ; |
733 | } | 739 | } |
734 | name = symlink ? info->fileName() + "->" + info->dirPath(true) + "/" +info->readLink() : info->fileName() ; | 740 | name = symlink ? info->fileName() + "->" + info->dirPath(true) + "/" +info->readLink() : info->fileName() ; |
735 | new OFileSelectorItem( m_View, pix, name, | 741 | new OFileSelectorItem( m_View, pix, name, |
736 | info->lastModified().toString(), | 742 | info->lastModified().toString(), |
737 | QString::number( info->size() ), | 743 | QString::number( info->size() ), |
738 | info->dirPath( true ), locked, | 744 | info->dirPath( true ), locked, |
739 | true ); | 745 | true ); |
740 | 746 | ||
741 | }// else CUSTOM View | 747 | }// else CUSTOM View |
742 | } | 748 | } |
743 | void OFileSelector::delItems() | 749 | void OFileSelector::delItems() |
744 | { | 750 | { |
745 | 751 | ||
746 | } | 752 | } |
747 | void OFileSelector::initializeName() | 753 | void OFileSelector::initializeName() |
748 | { | 754 | { |
749 | /** Name Layout Line | 755 | /** Name Layout Line |
750 | * This is the Layout line arranged in | 756 | * This is the Layout line arranged in |
751 | * horizontal way each components | 757 | * horizontal way each components |
752 | * are next to each other | 758 | * are next to each other |
753 | * but we will only do this if | 759 | * but we will only do this if |
754 | * we didn't initialize a while ago. | 760 | * we didn't initialize a while ago. |
755 | */ | 761 | */ |
756 | if( m_boxName == 0 ){ | 762 | if( m_boxName == 0 ){ |
757 | m_boxName = new QHBox( this ); // remove this this? or use a QHBox | 763 | m_boxName = new QHBox( this ); // remove this this? or use a QHBox |
758 | m_fnLabel = new QLabel( m_boxName ); | 764 | m_fnLabel = new QLabel( m_boxName ); |
759 | m_fnLabel->setText( tr("Name:") ); | 765 | m_fnLabel->setText( tr("Name:") ); |
760 | m_edit = new QLineEdit( m_boxName ); | 766 | m_edit = new QLineEdit( m_boxName ); |
761 | m_edit->setText( m_name ); | 767 | m_edit->setText( m_name ); |
762 | //m_boxName->addWidget( m_fnLabel ); | 768 | //m_boxName->addWidget( m_fnLabel ); |
763 | m_boxName->setMargin( 5 ); | 769 | m_boxName->setMargin( 5 ); |
764 | m_boxName->setSpacing( 8 ); | 770 | m_boxName->setSpacing( 8 ); |
765 | //m_boxName->setStretchFactor(m_edit, 100 ); // 100 is stretch factor | 771 | //m_boxName->setStretchFactor(m_edit, 100 ); // 100 is stretch factor |
766 | 772 | ||
767 | m_lay->addWidget( m_boxName, 0 ); // add it to the topLevel layout | 773 | m_lay->addWidget( m_boxName, 0 ); // add it to the topLevel layout |
768 | }// else we already initialized | 774 | }// else we already initialized |
769 | // maybe show the components? | 775 | // maybe show the components? |
770 | // | 776 | // |
771 | } | 777 | } |
772 | void OFileSelector::initializeYes() | 778 | void OFileSelector::initializeYes() |
773 | { | 779 | { |
774 | /** The Save Cancel bar | 780 | /** The Save Cancel bar |
775 | * | 781 | * |
776 | */ | 782 | */ |
777 | if( m_boxOk == 0 ){ | 783 | if( m_boxOk == 0 ){ |
778 | m_boxOk = new QHBox( this ); | 784 | m_boxOk = new QHBox( this ); |
779 | m_ok = new QPushButton( tr("&Save"),m_boxOk , "save" ); | 785 | m_ok = new QPushButton( tr("&Save"),m_boxOk , "save" ); |
780 | m_cancel = new QPushButton( tr("C&ancel"), m_boxOk, "cancel" ); | 786 | m_cancel = new QPushButton( tr("C&ancel"), m_boxOk, "cancel" ); |
781 | 787 | ||
782 | //m_boxOk->addWidget( m_ok ); | 788 | //m_boxOk->addWidget( m_ok ); |
783 | //m_boxOk->addWidget( m_cancel ); | 789 | //m_boxOk->addWidget( m_cancel ); |
784 | m_boxOk->setMargin( 5 ); | 790 | m_boxOk->setMargin( 5 ); |
785 | m_boxOk->setSpacing( 10 ); | 791 | m_boxOk->setSpacing( 10 ); |
786 | m_lay->addWidget( m_boxOk, 0 ); | 792 | m_lay->addWidget( m_boxOk, 0 ); |
787 | 793 | ||
788 | connect( m_ok, SIGNAL( clicked() ), | 794 | connect( m_ok, SIGNAL( clicked() ), |
789 | this, SLOT(slotOk() ) ); | 795 | this, SLOT(slotOk() ) ); |
790 | connect( m_cancel, SIGNAL( clicked() ), | 796 | connect( m_cancel, SIGNAL( clicked() ), |
791 | this, SLOT( slotCancel() ) ); | 797 | this, SLOT( slotCancel() ) ); |
792 | } | 798 | } |
793 | } | 799 | } |
794 | /* | 800 | /* |
795 | * OK m_mimeCheck is a QComboBox we now want to fill | 801 | * OK m_mimeCheck is a QComboBox we now want to fill |
796 | * out that combobox | 802 | * out that combobox |
797 | * if automime we need to update the mimetypes | 803 | * if automime we need to update the mimetypes |
798 | */ | 804 | */ |
799 | void OFileSelector::updateMimeCheck() { | 805 | void OFileSelector::updateMimeCheck() { |
800 | m_mimeCheck->clear(); | 806 | m_mimeCheck->clear(); |
801 | if (m_autoMime ) { | 807 | if (m_autoMime ) { |
802 | //m_mimeCheck->insertItem( tr("All") ); | 808 | //m_mimeCheck->insertItem( tr("All") ); |
803 | updateMimes(); | 809 | updateMimes(); |
804 | } | 810 | } |
805 | 811 | ||
806 | QMap<QString, QStringList>::Iterator it; | 812 | QMap<QString, QStringList>::Iterator it; |
807 | for (it = m_mimetypes.begin(); it != m_mimetypes.end(); ++it ) { | 813 | for (it = m_mimetypes.begin(); it != m_mimetypes.end(); ++it ) { |
808 | m_mimeCheck->insertItem( it.key() ); | 814 | m_mimeCheck->insertItem( it.key() ); |
809 | } | 815 | } |
810 | } | 816 | } |
811 | 817 | ||
812 | void OFileSelector::initializeChooser() | 818 | void OFileSelector::initializeChooser() |
813 | { | 819 | { |
814 | if( m_boxView == 0 ){ | 820 | if( m_boxView == 0 ){ |
815 | m_boxView = new QHBox( this ); | 821 | m_boxView = new QHBox( this ); |
816 | m_viewCheck = new QComboBox( m_boxView, "view check"); | 822 | m_viewCheck = new QComboBox( m_boxView, "view check"); |
817 | m_mimeCheck = new QComboBox( m_boxView, "mime check"); | 823 | m_mimeCheck = new QComboBox( m_boxView, "mime check"); |
818 | m_boxView->setSpacing( 8 ); | 824 | m_boxView->setSpacing( 8 ); |
819 | m_lay->addWidget(m_boxView, 0 ); | 825 | m_lay->addWidget(m_boxView, 0 ); |
820 | 826 | ||
821 | m_viewCheck->insertItem( tr("Documents") ); | 827 | m_viewCheck->insertItem( tr("Documents") ); |
822 | m_viewCheck->insertItem( tr("Files") ); | 828 | m_viewCheck->insertItem( tr("Files") ); |
823 | m_viewCheck->insertItem( tr("All Files") ); | 829 | m_viewCheck->insertItem( tr("All Files") ); |
824 | updateMimeCheck(); | 830 | updateMimeCheck(); |
825 | 831 | ||
826 | connect( m_viewCheck, SIGNAL( activated(const QString & ) ), | 832 | connect( m_viewCheck, SIGNAL( activated(const QString & ) ), |
827 | this, SLOT( slotViewCheck(const QString & ) ) ); | 833 | this, SLOT( slotViewCheck(const QString & ) ) ); |
828 | connect( m_mimeCheck, SIGNAL( activated(const QString & ) ), | 834 | connect( m_mimeCheck, SIGNAL( activated(const QString & ) ), |
829 | this, SLOT( slotMimeCheck( const QString & ) ) ); | 835 | this, SLOT( slotMimeCheck( const QString & ) ) ); |
830 | } | 836 | } |
831 | } | 837 | } |
832 | void OFileSelector::initializeListView() | 838 | void OFileSelector::initializeListView() |
833 | { | 839 | { |
834 | qWarning("initializeListView"); | 840 | qWarning("initializeListView"); |
835 | if( m_pseudo == 0 ){ | 841 | if( m_pseudo == 0 ){ |
836 | qWarning("init"); | 842 | qWarning("init"); |
837 | m_pseudo = new QWidget( m_stack, "Pseudo Widget"); | 843 | m_pseudo = new QWidget( m_stack, "Pseudo Widget"); |
838 | m_pseudoLayout = new QVBoxLayout( m_pseudo ); | 844 | m_pseudoLayout = new QVBoxLayout( m_pseudo ); |
839 | // toolbar | 845 | // toolbar |
840 | m_boxToolbar = new QHBox( m_pseudo ); | 846 | m_boxToolbar = new QHBox( m_pseudo ); |
841 | m_boxToolbar->setSpacing(0 ); // next to each other please | 847 | m_boxToolbar->setSpacing(0 ); // next to each other please |
842 | 848 | ||
843 | // toolbar members | 849 | // toolbar members |
844 | { | 850 | { |
845 | // location QComboBox | 851 | // location QComboBox |
846 | m_location = new QComboBox( m_boxToolbar ); | 852 | m_location = new QComboBox( m_boxToolbar ); |
847 | m_location->setEditable( TRUE ); | 853 | m_location->setEditable( TRUE ); |
848 | m_location->setDuplicatesEnabled( FALSE ); | 854 | m_location->setDuplicatesEnabled( FALSE ); |
849 | connect( m_location, SIGNAL(activated(const QString &) ), | 855 | connect( m_location, SIGNAL(activated(const QString &) ), |
850 | this, SLOT( slotLocationActivated(const QString &) ) ); | 856 | this, SLOT( slotLocationActivated(const QString &) ) ); |
851 | connect( m_location->lineEdit(), SIGNAL(returnPressed() ), | 857 | connect( m_location->lineEdit(), SIGNAL(returnPressed() ), |
852 | this, SLOT(locationComboChanged() ) ); | 858 | this, SLOT(locationComboChanged() ) ); |
853 | // UP Button | 859 | // UP Button |
854 | m_up = new QPushButton(Resource::loadIconSet("up"),"", | 860 | m_up = new QPushButton(Resource::loadIconSet("up"),"", |
855 | m_boxToolbar,"cdUpButton"); | 861 | m_boxToolbar,"cdUpButton"); |
856 | m_up->setFixedSize( QSize( 20, 20 ) ); | 862 | m_up->setFixedSize( QSize( 20, 20 ) ); |
857 | connect(m_up ,SIGNAL(clicked()),this,SLOT(cdUP() ) ); | 863 | connect(m_up ,SIGNAL(clicked()),this,SLOT(cdUP() ) ); |
858 | m_up->setFlat(TRUE); | 864 | m_up->setFlat(TRUE); |
859 | 865 | ||
860 | // Home Button | 866 | // Home Button |
861 | m_homeButton = new QPushButton(Resource::loadIconSet("home") , | 867 | m_homeButton = new QPushButton(Resource::loadIconSet("home") , |
862 | "", m_boxToolbar); | 868 | "", m_boxToolbar); |
863 | m_homeButton->setFixedSize( QSize( 20, 20 ) ); | 869 | m_homeButton->setFixedSize( QSize( 20, 20 ) ); |
864 | connect(m_homeButton,SIGNAL(clicked()),this,SLOT(slotHome() ) ); | 870 | connect(m_homeButton,SIGNAL(clicked()),this,SLOT(slotHome() ) ); |
865 | m_homeButton->setFlat(TRUE); | 871 | m_homeButton->setFlat(TRUE); |
866 | // Documents Button | 872 | // Documents Button |
867 | m_docButton = new QPushButton(Resource::loadIconSet("DocsIcon"),"", | 873 | m_docButton = new QPushButton(Resource::loadIconSet("DocsIcon"),"", |
868 | m_boxToolbar,"docsButton"); | 874 | m_boxToolbar,"docsButton"); |
869 | m_docButton->setFixedSize( QSize( 20, 20 ) ); | 875 | m_docButton->setFixedSize( QSize( 20, 20 ) ); |
870 | connect(m_homeButton,SIGNAL(clicked()),this,SLOT(slotDoc() ) ); | 876 | connect(m_homeButton,SIGNAL(clicked()),this,SLOT(slotDoc() ) ); |
871 | m_docButton->setFlat(TRUE); | 877 | m_docButton->setFlat(TRUE); |
872 | 878 | ||
873 | // Close button | 879 | // Close button |
874 | m_close = new QPushButton( Resource::loadIconSet( "close"), "", | 880 | m_close = new QPushButton( Resource::loadIconSet( "close"), "", |
875 | m_boxToolbar ); | 881 | m_boxToolbar ); |
876 | connect( m_close, SIGNAL(clicked() ), this, SIGNAL(closeMe() ) ); | 882 | connect( m_close, SIGNAL(clicked() ), this, SIGNAL(closeMe() ) ); |
877 | m_close->setFixedSize( 20, 20 ); | 883 | m_close->setFixedSize( 20, 20 ); |
878 | 884 | ||
879 | m_boxToolbar->setFixedHeight( 20 ); | 885 | m_boxToolbar->setFixedHeight( 20 ); |
880 | m_pseudoLayout->addWidget(m_boxToolbar ); | 886 | m_pseudoLayout->addWidget(m_boxToolbar ); |
881 | 887 | ||
882 | // let;s fill the Location ComboBox | 888 | // let;s fill the Location ComboBox |
883 | StorageInfo storage; | 889 | StorageInfo storage; |
884 | const QList<FileSystem> &fs = storage.fileSystems(); | 890 | const QList<FileSystem> &fs = storage.fileSystems(); |
885 | QListIterator<FileSystem> it ( fs ); | 891 | QListIterator<FileSystem> it ( fs ); |
886 | for( ; it.current(); ++it ){ | 892 | for( ; it.current(); ++it ){ |
887 | const QString disk = (*it)->name(); | 893 | const QString disk = (*it)->name(); |
888 | const QString path = (*it)->path(); | 894 | const QString path = (*it)->path(); |
889 | m_location->insertItem(path+ "<-"+disk ); | 895 | m_location->insertItem(path+ "<-"+disk ); |
890 | } | 896 | } |
891 | int count = m_location->count(); | 897 | int count = m_location->count(); |
892 | m_location->insertItem( m_currentDir ); | 898 | m_location->insertItem( m_currentDir ); |
893 | m_location->setCurrentItem( count ); | 899 | m_location->setCurrentItem( count ); |
894 | // due to the New and Close button we can not simply hide m_boxToolBar to not show it | 900 | // due to the New and Close button we can not simply hide m_boxToolBar to not show it |
895 | if( !m_shTool ){ | 901 | if( !m_shTool ){ |
896 | m_location->hide( ); | 902 | m_location->hide( ); |
897 | m_up->hide( ); | 903 | m_up->hide( ); |
898 | m_homeButton->hide( ); | 904 | m_homeButton->hide( ); |
899 | m_docButton->hide( ); | 905 | m_docButton->hide( ); |
900 | } | 906 | } |
901 | if(!m_shClose ) | 907 | if(!m_shClose ) |
902 | m_close->hide(); | 908 | m_close->hide(); |
903 | //if(!m_shNew) | 909 | //if(!m_shNew) |
904 | //m_close->hide(); | 910 | //m_close->hide(); |
905 | 911 | ||
906 | } // off toolbar | 912 | } // off toolbar |
907 | // the Main ListView | 913 | // the Main ListView |
908 | // make a QWidgetStack first so Views can share the Toolbar | 914 | // make a QWidgetStack first so Views can share the Toolbar |
909 | m_View = new QListView( m_pseudo, "Extended view"); | 915 | m_View = new QListView( m_pseudo, "Extended view"); |
910 | QPEApplication::setStylusOperation( m_View->viewport(), | 916 | QPEApplication::setStylusOperation( m_View->viewport(), |
911 | QPEApplication::RightOnHold); | 917 | QPEApplication::RightOnHold); |
912 | m_View->addColumn(" " ); | 918 | m_View->addColumn(" " ); |
913 | m_View->addColumn(tr("Name"), 135 ); | 919 | m_View->addColumn(tr("Name"), 135 ); |
914 | m_View->addColumn(tr("Size"), -1 ); | 920 | m_View->addColumn(tr("Size"), -1 ); |
915 | m_View->addColumn(tr("Date"), 60 ); | 921 | m_View->addColumn(tr("Date"), 60 ); |
916 | m_View->addColumn(tr("Mime Type"), -1 ); | 922 | m_View->addColumn(tr("Mime Type"), -1 ); |
917 | QHeader *header = m_View->header(); | 923 | QHeader *header = m_View->header(); |
918 | header->hide(); | 924 | header->hide(); |
919 | m_View->setSorting( 1 ); | 925 | m_View->setSorting( 1 ); |
920 | m_View->setAllColumnsShowFocus( TRUE ); | 926 | m_View->setAllColumnsShowFocus( TRUE ); |
921 | 927 | ||
922 | connect(m_View, SIGNAL(selectionChanged() ), | 928 | connect(m_View, SIGNAL(selectionChanged() ), |
923 | this, SLOT(slotSelectionChanged() ) ); | 929 | this, SLOT(slotSelectionChanged() ) ); |
924 | 930 | ||
925 | connect(m_View, SIGNAL(currentChanged(QListViewItem *) ), | 931 | connect(m_View, SIGNAL(clicked(QListViewItem *) ), |
926 | this, SLOT(slotCurrentChanged(QListViewItem * ) ) ); | 932 | // connect(m_View, SIGNAL(currentChanged(QListViewItem *) ), |
933 | this, SLOT(slotCurrentChanged(QListViewItem * ) ) ); | ||
927 | 934 | ||
928 | connect(m_View, SIGNAL(mouseButtonClicked(int, QListViewItem*, const QPoint &, int) ), | 935 | connect(m_View, SIGNAL(mouseButtonClicked(int, QListViewItem*, const QPoint &, int) ), |
929 | this, SLOT(slotClicked( int, QListViewItem *, const QPoint &, int) ) ); | 936 | this, SLOT(slotClicked( int, QListViewItem *, const QPoint &, int) ) ); |
930 | 937 | ||
931 | connect(m_View, SIGNAL(mouseButtonPressed(int, QListViewItem *, const QPoint &, int )), | 938 | connect(m_View, SIGNAL(mouseButtonPressed(int, QListViewItem *, const QPoint &, int )), |
932 | this, SLOT(slotRightButton(int, QListViewItem *, const QPoint &, int ) ) ); | 939 | this, SLOT(slotRightButton(int, QListViewItem *, const QPoint &, int ) ) ); |
933 | 940 | ||
934 | m_pseudoLayout->addWidget( m_View, 288 ); | 941 | m_pseudoLayout->addWidget( m_View, 288 ); |
935 | m_stack->addWidget( m_pseudo, EXTENDED ); | 942 | m_stack->addWidget( m_pseudo, EXTENDED ); |
936 | } | 943 | } |
937 | } | 944 | } |
938 | void OFileSelector::initializePerm() | 945 | void OFileSelector::initializePerm() |
939 | { | 946 | { |
940 | if( m_checkPerm == 0 ){ | 947 | if( m_checkPerm == 0 ){ |
941 | m_checkPerm = new QCheckBox(tr("Ser Permission"), this, "perm"); | 948 | m_checkPerm = new QCheckBox(tr("Ser Permission"), this, "perm"); |
942 | m_checkPerm->setChecked( false ); | 949 | m_checkPerm->setChecked( false ); |
943 | m_lay->addWidget( m_checkPerm ); | 950 | m_lay->addWidget( m_checkPerm ); |
944 | 951 | ||
945 | } | 952 | } |
946 | } | 953 | } |
947 | void OFileSelector::initPics() | 954 | void OFileSelector::initPics() |
948 | { | 955 | { |
949 | m_pixmaps = new QMap<QString,QPixmap>; | 956 | m_pixmaps = new QMap<QString,QPixmap>; |
950 | QPixmap pm = Resource::loadPixmap( "folder" ); | 957 | QPixmap pm = Resource::loadPixmap( "folder" ); |
951 | QPixmap lnk = Resource::loadPixmap( "opie/symlink" ); | 958 | QPixmap lnk = Resource::loadPixmap( "opie/symlink" ); |
952 | QPainter painter( &pm ); | 959 | QPainter painter( &pm ); |
953 | painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk ); | 960 | painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk ); |
954 | pm.setMask( pm.createHeuristicMask( FALSE ) ); | 961 | pm.setMask( pm.createHeuristicMask( FALSE ) ); |
955 | m_pixmaps->insert("dirsymlink", pm ); | 962 | m_pixmaps->insert("dirsymlink", pm ); |
956 | 963 | ||
957 | QPixmap pm2 = Resource::loadPixmap( "lockedfolder" ); | 964 | QPixmap pm2 = Resource::loadPixmap( "lockedfolder" ); |
958 | QPainter pen(&pm2 ); | 965 | QPainter pen(&pm2 ); |
959 | pen.drawPixmap(pm2.width()-lnk.width(), pm2.height()-lnk.height(), lnk ); | 966 | pen.drawPixmap(pm2.width()-lnk.width(), pm2.height()-lnk.height(), lnk ); |
960 | pm2.setMask( pm2.createHeuristicMask( FALSE ) ); | 967 | pm2.setMask( pm2.createHeuristicMask( FALSE ) ); |
961 | m_pixmaps->insert("symlinkedlocked", pm2 ); | 968 | m_pixmaps->insert("symlinkedlocked", pm2 ); |
962 | } | 969 | } |
963 | // if a mime complies with the m_mimeCheck->currentItem | 970 | // if a mime complies with the m_mimeCheck->currentItem |
964 | bool OFileSelector::compliesMime( const QString &path, const QString &mime ) | 971 | bool OFileSelector::compliesMime( const QString &path, const QString &mime ) |
@@ -1021,103 +1028,103 @@ bool OFileSelector::compliesMime( const QString& mime ) { | |||
1021 | for ( it2 = list.begin(); it2 != list.end(); ++it2 ) { | 1028 | for ( it2 = list.begin(); it2 != list.end(); ++it2 ) { |
1022 | pos = (*it2).findRev("/*"); | 1029 | pos = (*it2).findRev("/*"); |
1023 | if ( pos >= 0 ) { | 1030 | if ( pos >= 0 ) { |
1024 | if ( mime.contains( (*it2).left(pos) ) ) return true; | 1031 | if ( mime.contains( (*it2).left(pos) ) ) return true; |
1025 | } | 1032 | } |
1026 | } | 1033 | } |
1027 | return false; | 1034 | return false; |
1028 | } | 1035 | } |
1029 | void OFileSelector::slotFileSelected( const QString &string ) | 1036 | void OFileSelector::slotFileSelected( const QString &string ) |
1030 | { | 1037 | { |
1031 | if( m_shLne ) | 1038 | if( m_shLne ) |
1032 | m_edit->setText( string ); | 1039 | m_edit->setText( string ); |
1033 | emit fileSelected( string ); | 1040 | emit fileSelected( string ); |
1034 | } | 1041 | } |
1035 | void OFileSelector::slotFileBridgeSelected( const DocLnk &lnk ) | 1042 | void OFileSelector::slotFileBridgeSelected( const DocLnk &lnk ) |
1036 | { | 1043 | { |
1037 | slotFileSelected( lnk.name() ); | 1044 | slotFileSelected( lnk.name() ); |
1038 | emit fileSelected( lnk ); | 1045 | emit fileSelected( lnk ); |
1039 | } | 1046 | } |
1040 | void OFileSelector::slotSelectionChanged() | 1047 | void OFileSelector::slotSelectionChanged() |
1041 | { | 1048 | { |
1042 | 1049 | ||
1043 | } | 1050 | } |
1044 | void OFileSelector::slotCurrentChanged(QListViewItem* item ) | 1051 | void OFileSelector::slotCurrentChanged(QListViewItem* item ) |
1045 | { | 1052 | { |
1046 | if( item == 0 ) | 1053 | if( item == 0 ) |
1047 | return; | 1054 | return; |
1048 | if( m_selector == EXTENDED || m_selector == EXTENDED_ALL ) { | 1055 | if( m_selector == EXTENDED || m_selector == EXTENDED_ALL ) { |
1049 | OFileSelectorItem *sel = (OFileSelectorItem*) item; // start to use the C++ casts ;) | 1056 | OFileSelectorItem *sel = (OFileSelectorItem*) item; // start to use the C++ casts ;) |
1050 | qWarning("current changed"); | 1057 | qWarning("current changed"); |
1051 | if(!sel->isDir() ){ | 1058 | if(!sel->isDir() ){ |
1052 | if( m_shLne ) | 1059 | if( m_shLne ) |
1053 | m_edit->setText( sel->text(1) ); | 1060 | m_edit->setText( sel->text(1) ); |
1054 | 1061 | ||
1055 | if (m_mode == FILESELECTOR ) { | 1062 | if (m_mode == FILESELECTOR ) { |
1056 | QStringList str = QStringList::split("->", sel->text(1) ); | 1063 | QStringList str = QStringList::split("->", sel->text(1) ); |
1057 | QString path =sel->directory() + "/" + str[0].stripWhiteSpace(); | 1064 | QString path =sel->directory() + "/" + str[0].stripWhiteSpace(); |
1058 | emit fileSelected(path ); | 1065 | emit fileSelected(path ); |
1059 | DocLnk lnk( path ); | 1066 | DocLnk lnk( path ); |
1060 | emit fileSelected(lnk ); | 1067 | emit fileSelected(lnk ); |
1061 | } | 1068 | } |
1062 | } | 1069 | } |
1063 | } | 1070 | } |
1064 | } | 1071 | } |
1065 | void OFileSelector::slotClicked( int button, QListViewItem *item, const QPoint &, int) | 1072 | void OFileSelector::slotClicked( int button, QListViewItem *item, const QPoint &, int) |
1066 | { | 1073 | { |
1067 | if ( item == 0 ) | 1074 | if ( item == 0 ) |
1068 | return; | 1075 | return; |
1069 | 1076 | ||
1070 | if( button != Qt::LeftButton ) | 1077 | if( button != Qt::LeftButton ) |
1071 | return; | 1078 | return; |
1072 | 1079 | ||
1073 | switch( m_selector ){ | 1080 | switch( m_selector ){ |
1074 | default: | 1081 | default: |
1075 | break; | 1082 | break; |
1076 | case EXTENDED: // fall through | 1083 | case EXTENDED: // fall through |
1077 | case EXTENDED_ALL:{ | 1084 | case EXTENDED_ALL:{ |
1078 | OFileSelectorItem *sel = (OFileSelectorItem*)item; | 1085 | OFileSelectorItem *sel = (OFileSelectorItem*)item; |
1079 | if(!sel->isLocked() ){ | 1086 | if(!sel->isLocked() ){ |
1080 | QStringList str = QStringList::split("->", sel->text(1) ); | 1087 | QStringList str = QStringList::split("->", sel->text(1) ); |
1081 | if( sel->isDir() ){ | 1088 | if( sel->isDir() ){ |
1082 | cd( sel->directory() + "/" + str[0].stripWhiteSpace() ); | 1089 | cd( sel->directory() + "/" + str[0].stripWhiteSpace() ); |
1083 | // if MODE Dir m_shLne set the Text | 1090 | // if MODE Dir m_shLne set the Text |
1084 | }else{ | 1091 | }else{ |
1085 | if( m_shLne ) | 1092 | if( m_shLne ) |
1086 | m_edit->setText( str[0].stripWhiteSpace() ); | 1093 | m_edit->setText( str[0].stripWhiteSpace() ); |
1087 | qWarning("selected here in slot clicked"); | 1094 | qWarning("selected here in slot clicked"); |
1088 | emit fileSelected( sel->directory() + "/" + str[0].stripWhiteSpace() ); | 1095 | emit fileSelected( sel->directory() + "/" + str[0].stripWhiteSpace() ); |
1089 | DocLnk lnk( sel->directory() + "/" + str[0].stripWhiteSpace() ); | 1096 | DocLnk lnk( sel->directory() + "/" + str[0].stripWhiteSpace() ); |
1090 | qWarning("file selected"); | 1097 | qWarning("file selected"); |
1091 | emit fileSelected( lnk ); | 1098 | emit fileSelected( lnk ); |
1092 | } | 1099 | } |
1093 | } | 1100 | } |
1094 | break; | 1101 | break; |
1095 | } | 1102 | } |
1096 | } | 1103 | } |
1097 | } | 1104 | } |
1098 | void OFileSelector::slotRightButton(int button, QListViewItem *item, const QPoint &, int ) | 1105 | void OFileSelector::slotRightButton(int button, QListViewItem *item, const QPoint &, int ) |
1099 | { | 1106 | { |
1100 | if( item == 0 ) | 1107 | if( item == 0 ) |
1101 | return; | 1108 | return; |
1102 | 1109 | ||
1103 | if( button != Qt::RightButton ) | 1110 | if( button != Qt::RightButton ) |
1104 | return; | 1111 | return; |
1105 | slotContextMenu( item ); | 1112 | slotContextMenu( item ); |
1106 | } | 1113 | } |
1107 | void OFileSelector::slotContextMenu( QListViewItem * /*item*/) | 1114 | void OFileSelector::slotContextMenu( QListViewItem * /*item*/) |
1108 | { | 1115 | { |
1109 | 1116 | ||
1110 | } | 1117 | } |
1111 | void OFileSelector::slotChangedDir() | 1118 | void OFileSelector::slotChangedDir() |
1112 | { | 1119 | { |
1113 | OFileSelectorItem *sel = (OFileSelectorItem*)m_View->currentItem(); | 1120 | OFileSelectorItem *sel = (OFileSelectorItem*)m_View->currentItem(); |
1114 | if(sel->isDir() ){ | 1121 | if(sel->isDir() ){ |
1115 | QStringList str = QStringList::split("->", sel->text(1) ); | 1122 | QStringList str = QStringList::split("->", sel->text(1) ); |
1116 | cd( sel->directory() + "/" + str[0].stripWhiteSpace() ); | 1123 | cd( sel->directory() + "/" + str[0].stripWhiteSpace() ); |
1117 | } | 1124 | } |
1118 | } | 1125 | } |
1119 | void OFileSelector::slotOpen() | 1126 | void OFileSelector::slotOpen() |
1120 | { | 1127 | { |
1121 | OFileSelectorItem *sel = (OFileSelectorItem*)m_View->currentItem(); | 1128 | OFileSelectorItem *sel = (OFileSelectorItem*)m_View->currentItem(); |
1122 | if(!sel->isDir() ){ | 1129 | if(!sel->isDir() ){ |
1123 | QStringList str = QStringList::split("->", sel->text(1) ); | 1130 | QStringList str = QStringList::split("->", sel->text(1) ); |
@@ -1180,124 +1187,124 @@ void OFileSelector::slotNavigate( ) | |||
1180 | 1187 | ||
1181 | } | 1188 | } |
1182 | // fill the View with life | 1189 | // fill the View with life |
1183 | void OFileSelector::reparse() | 1190 | void OFileSelector::reparse() |
1184 | { | 1191 | { |
1185 | if( m_selector == NORMAL ) | 1192 | if( m_selector == NORMAL ) |
1186 | return; | 1193 | return; |
1187 | if( m_selector == EXTENDED || m_selector == EXTENDED_ALL ) | 1194 | if( m_selector == EXTENDED || m_selector == EXTENDED_ALL ) |
1188 | m_View->clear(); | 1195 | m_View->clear(); |
1189 | else // custom view | 1196 | else // custom view |
1190 | ; // currentView()->clear(); | 1197 | ; // currentView()->clear(); |
1191 | if( m_shChooser) | 1198 | if( m_shChooser) |
1192 | qWarning("reparse %s", m_mimeCheck->currentText().latin1() ); | 1199 | qWarning("reparse %s", m_mimeCheck->currentText().latin1() ); |
1193 | 1200 | ||
1194 | QString currentMimeType; | 1201 | QString currentMimeType; |
1195 | // let's update the mimetype | 1202 | // let's update the mimetype |
1196 | if( m_autoMime ){ | 1203 | if( m_autoMime ){ |
1197 | m_mimetypes.clear(); | 1204 | m_mimetypes.clear(); |
1198 | // ok we can change mimetype so we need to be able to give a selection | 1205 | // ok we can change mimetype so we need to be able to give a selection |
1199 | if( m_shChooser ) { | 1206 | if( m_shChooser ) { |
1200 | currentMimeType = m_mimeCheck->currentText(); | 1207 | currentMimeType = m_mimeCheck->currentText(); |
1201 | m_mimeCheck->clear(); | 1208 | m_mimeCheck->clear(); |
1202 | 1209 | ||
1203 | // let's find possible mimetypes | 1210 | // let's find possible mimetypes |
1204 | QDir dir( m_currentDir ); | 1211 | QDir dir( m_currentDir ); |
1205 | if( dir.exists() ){ | 1212 | if( dir.exists() ){ |
1206 | dir.setFilter( QDir::Files | QDir::Readable ); | 1213 | dir.setFilter( QDir::Files | QDir::Readable ); |
1207 | dir.setSorting( QDir::Size ); | 1214 | dir.setSorting( QDir::Size ); |
1208 | const QFileInfoList *list = dir.entryInfoList(); | 1215 | const QFileInfoList *list = dir.entryInfoList(); |
1209 | QFileInfoListIterator it( *list ); | 1216 | QFileInfoListIterator it( *list ); |
1210 | QFileInfo *fi; | 1217 | QFileInfo *fi; |
1211 | while( (fi=it.current() ) ) { | 1218 | while( (fi=it.current() ) ) { |
1212 | if( fi->extension() == QString::fromLatin1("desktop") ){ | 1219 | if( fi->extension() == QString::fromLatin1("desktop") ){ |
1213 | ++it; | 1220 | ++it; |
1214 | continue; | 1221 | continue; |
1215 | } | 1222 | } |
1216 | MimeType type( fi->absFilePath() ); | 1223 | MimeType type( fi->absFilePath() ); |
1217 | if( !m_mimetypes.contains( type.id() ) ){ | 1224 | if( !m_mimetypes.contains( type.id() ) ){ |
1218 | //qWarning("Type %s", type.id().latin1() ); | 1225 | //qWarning("Type %s", type.id().latin1() ); |
1219 | m_mimetypes.insert( type.id(), type.id() ); | 1226 | m_mimetypes.insert( type.id(), type.id() ); |
1220 | } | 1227 | } |
1221 | 1228 | ||
1222 | ++it; | 1229 | ++it; |
1223 | } | 1230 | } |
1224 | // add them to the chooser | 1231 | // add them to the chooser |
1225 | updateMimeCheck(); | 1232 | updateMimeCheck(); |
1226 | m_mimeCheck->setCurrentItem( indexByString( m_mimeCheck, currentMimeType ) ); | 1233 | m_mimeCheck->setCurrentItem( indexByString( m_mimeCheck, currentMimeType ) ); |
1227 | currentMimeType = m_mimeCheck->currentText(); | 1234 | currentMimeType = m_mimeCheck->currentText(); |
1228 | } | 1235 | } |
1229 | } | 1236 | } |
1230 | }else { // no autoMime | 1237 | }else { // no autoMime |
1231 | // let the mimetype be set from out side the m_mimeCheck FEATURE | 1238 | // let the mimetype be set from out side the m_mimeCheck FEATURE |
1232 | 1239 | ||
1233 | if( m_shChooser ){ | 1240 | if( m_shChooser ){ |
1234 | currentMimeType = m_mimeCheck->currentText(); | 1241 | currentMimeType = m_mimeCheck->currentText(); |
1235 | // updateMimeCheck(); | 1242 | // updateMimeCheck(); |
1236 | } | 1243 | } |
1237 | } | 1244 | } |
1238 | // now we got our mimetypes we can add the files | 1245 | // now we got our mimetypes we can add the files |
1239 | 1246 | ||
1240 | QDir dir( m_currentDir ); | 1247 | QDir dir( m_currentDir ); |
1241 | 1248 | ||
1242 | if( dir.exists() ){ | 1249 | if( dir.exists() ){ |
1243 | int sort; | 1250 | int sort; |
1244 | if ( m_case ) | 1251 | if ( m_case ) |
1245 | sort = (QDir::IgnoreCase | QDir::Name | QDir::DirsFirst | QDir::Reversed); | 1252 | sort = (QDir::IgnoreCase | QDir::Name | QDir::DirsFirst | QDir::Reversed); |
1246 | else | 1253 | else |
1247 | sort = (QDir::Name | QDir::DirsFirst | QDir::Reversed); | 1254 | sort = (QDir::Name | QDir::DirsFirst | QDir::Reversed); |
1248 | dir.setSorting( sort ); | 1255 | dir.setSorting( sort ); |
1249 | 1256 | ||
1250 | int filter; | 1257 | int filter; |
1251 | if( m_selector == EXTENDED_ALL /*|| m_selector ==CUSTOM_ALL */ ){ | 1258 | if( m_selector == EXTENDED_ALL /*|| m_selector ==CUSTOM_ALL */ ){ |
1252 | filter = QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All; | 1259 | filter = QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All; |
1253 | }else | 1260 | }else |
1254 | filter = QDir::Files | QDir::Dirs | QDir::All; | 1261 | filter = QDir::Files | QDir::Dirs | QDir::All; |
1255 | dir.setFilter( filter ); | 1262 | dir.setFilter( filter ); |
1256 | 1263 | ||
1257 | // now go through all files | 1264 | // now go through all files |
1258 | const QFileInfoList *list = dir.entryInfoList(); | 1265 | const QFileInfoList *list = dir.entryInfoList(); |
1259 | QFileInfoListIterator it( *list ); | 1266 | QFileInfoListIterator it( *list ); |
1260 | QFileInfo *fi; | 1267 | QFileInfo *fi; |
1261 | while( (fi=it.current() ) ){ | 1268 | while( (fi=it.current() ) ){ |
1262 | //qWarning("True and only" ); | 1269 | //qWarning("True and only" ); |
1263 | if( fi->fileName() == QString::fromLatin1("..") || fi->fileName() == QString::fromLatin1(".") ){ | 1270 | if( fi->fileName() == QString::fromLatin1("..") || fi->fileName() == QString::fromLatin1(".") ){ |
1264 | //qWarning(".. or ." ); | 1271 | //qWarning(".. or ." ); |
1265 | ++it; | 1272 | ++it; |
1266 | continue; | 1273 | continue; |
1267 | } | 1274 | } |
1268 | if( fi->isSymLink() ){ | 1275 | if( fi->isSymLink() ){ |
1269 | QString file = fi->dirPath( true ) + "/" + fi->readLink(); | 1276 | QString file = fi->dirPath( true ) + "/" + fi->readLink(); |
1270 | for( int i = 0; i<=4; i++) { // 5 tries to prevent dos | 1277 | for( int i = 0; i<=4; i++) { // 5 tries to prevent dos |
1271 | QFileInfo info( file ); | 1278 | QFileInfo info( file ); |
1272 | if( !info.exists() ){ | 1279 | if( !info.exists() ){ |
1273 | addSymlink( currentMimeType, fi, TRUE ); | 1280 | addSymlink( currentMimeType, fi, TRUE ); |
1274 | break; | 1281 | break; |
1275 | }else if( info.isDir() ){ | 1282 | }else if( info.isDir() ){ |
1276 | addDir( currentMimeType, fi, TRUE ); | 1283 | addDir( currentMimeType, fi, TRUE ); |
1277 | break; | 1284 | break; |
1278 | }else if( info.isFile() ){ | 1285 | }else if( info.isFile() ){ |
1279 | addFile( currentMimeType, fi, TRUE ); | 1286 | addFile( currentMimeType, fi, TRUE ); |
1280 | break; | 1287 | break; |
1281 | }else if( info.isSymLink() ){ | 1288 | }else if( info.isSymLink() ){ |
1282 | file = info.dirPath(true ) + "/" + info.readLink() ; | 1289 | file = info.dirPath(true ) + "/" + info.readLink() ; |
1283 | break; | 1290 | break; |
1284 | }else if( i == 4){ | 1291 | }else if( i == 4){ |
1285 | addSymlink( currentMimeType, fi ); | 1292 | addSymlink( currentMimeType, fi ); |
1286 | } | 1293 | } |
1287 | } // off for loop | 1294 | } // off for loop |
1288 | }else if( fi->isDir() ){ | 1295 | }else if( fi->isDir() ){ |
1289 | addDir( currentMimeType, fi ); | 1296 | addDir( currentMimeType, fi ); |
1290 | }else if( fi->isFile() ){ | 1297 | }else if( fi->isFile() ){ |
1291 | addFile( currentMimeType, fi ); | 1298 | addFile( currentMimeType, fi ); |
1292 | } | 1299 | } |
1293 | //qWarning( "%s", fi->fileName().latin1() ); | 1300 | //qWarning( "%s", fi->fileName().latin1() ); |
1294 | ++it; | 1301 | ++it; |
1295 | } // of while loop | 1302 | } // of while loop |
1296 | } // if ( dir.exists() ) | 1303 | } // if ( dir.exists() ) |
1297 | m_View->sort(); | 1304 | m_View->sort(); |
1298 | if( m_shTool ){ | 1305 | if( m_shTool ){ |
1299 | m_location->insertItem( m_currentDir ); | 1306 | m_location->insertItem( m_currentDir ); |
1300 | 1307 | ||
1301 | } | 1308 | } |
1302 | // reenable painting and updates | 1309 | // reenable painting and updates |
1303 | } | 1310 | } |