-rw-r--r-- | libopie/ofileselector.cc | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/libopie/ofileselector.cc b/libopie/ofileselector.cc index d780da9..8299b3d 100644 --- a/libopie/ofileselector.cc +++ b/libopie/ofileselector.cc | |||
@@ -1,1133 +1,1134 @@ | |||
1 | 1 | ||
2 | 2 | ||
3 | #include <qcheckbox.h> | 3 | #include <qcheckbox.h> |
4 | #include <qcombobox.h> | 4 | #include <qcombobox.h> |
5 | #include <qheader.h> | 5 | #include <qheader.h> |
6 | #include <qlabel.h> | 6 | #include <qlabel.h> |
7 | #include <qabstractlayout.h> | 7 | #include <qabstractlayout.h> |
8 | #include <qlayout.h> | 8 | #include <qlayout.h> |
9 | #include <qlineedit.h> | 9 | #include <qlineedit.h> |
10 | #include <qlistview.h> | 10 | #include <qlistview.h> |
11 | #include <qmessagebox.h> | 11 | #include <qmessagebox.h> |
12 | #include <qpainter.h> | ||
12 | #include <qpushbutton.h> | 13 | #include <qpushbutton.h> |
13 | #include <qwidgetstack.h> | 14 | #include <qwidgetstack.h> |
14 | #include <qpopupmenu.h> | 15 | #include <qpopupmenu.h> |
15 | #include <qdir.h> | 16 | #include <qdir.h> |
16 | #include <qfile.h> | 17 | #include <qfile.h> |
17 | #include <qfileinfo.h> | 18 | #include <qfileinfo.h> |
18 | #include <qtimer.h> | 19 | #include <qtimer.h> |
19 | 20 | ||
20 | #include <qpe/qpeapplication.h> | 21 | #include <qpe/qpeapplication.h> |
21 | #include <qpe/applnk.h> | 22 | #include <qpe/applnk.h> |
22 | #include <qpe/fileselector.h> | 23 | #include <qpe/fileselector.h> |
23 | #include <qpe/global.h> | 24 | #include <qpe/global.h> |
24 | #include <qpe/mimetype.h> | 25 | #include <qpe/mimetype.h> |
25 | #include <qpe/resource.h> | 26 | #include <qpe/resource.h> |
26 | #include <qpe/storage.h> | 27 | #include <qpe/storage.h> |
27 | 28 | ||
28 | #include <unistd.h> | 29 | #include <unistd.h> |
29 | #include <stdlib.h> | 30 | #include <stdlib.h> |
30 | #include <sys/stat.h> | 31 | #include <sys/stat.h> |
31 | 32 | ||
32 | #include "ofileselector.h" | 33 | #include "ofileselector.h" |
33 | 34 | ||
34 | 35 | ||
35 | QMap<QString,QPixmap> *OFileSelector::m_pixmaps = 0; | 36 | QMap<QString,QPixmap> *OFileSelector::m_pixmaps = 0; |
36 | 37 | ||
37 | namespace { | 38 | namespace { |
38 | int indexByString( const QComboBox *box, const QString &str ){ | 39 | int indexByString( const QComboBox *box, const QString &str ){ |
39 | int index= 0; | 40 | int index= 0; |
40 | for(int i= 0; i < box->count(); i++ ){ | 41 | for(int i= 0; i < box->count(); i++ ){ |
41 | if( str == box->text(i ) ){ | 42 | if( str == box->text(i ) ){ |
42 | index= i; | 43 | index= i; |
43 | break; | 44 | break; |
44 | } | 45 | } |
45 | } | 46 | } |
46 | return index; | 47 | return index; |
47 | } | 48 | } |
48 | class OFileSelectorItem : public QListViewItem { | 49 | class OFileSelectorItem : public QListViewItem { |
49 | public: | 50 | public: |
50 | OFileSelectorItem(QListView *view, const QPixmap &pixmap, const QString &path, | 51 | OFileSelectorItem(QListView *view, const QPixmap &pixmap, const QString &path, |
51 | const QString &date, const QString &size, const QString &mDir, | 52 | const QString &date, const QString &size, const QString &mDir, |
52 | bool isLocked=false, bool isDir=false ): QListViewItem(view) { | 53 | bool isLocked=false, bool isDir=false ): QListViewItem(view) { |
53 | setPixmap(0, pixmap ); | 54 | setPixmap(0, pixmap ); |
54 | setText(1, path ); | 55 | setText(1, path ); |
55 | setText(2, size ); | 56 | setText(2, size ); |
56 | setText(3, date ); | 57 | setText(3, date ); |
57 | //setText(4, mDir ); | 58 | //setText(4, mDir ); |
58 | m_dir = mDir; | 59 | m_dir = mDir; |
59 | dir = isDir; | 60 | dir = isDir; |
60 | mLocked = isLocked; | 61 | mLocked = isLocked; |
61 | } | 62 | } |
62 | bool isLocked() const{ | 63 | bool isLocked() const{ |
63 | return mLocked; | 64 | return mLocked; |
64 | } | 65 | } |
65 | QString directory()const{ | 66 | QString directory()const{ |
66 | return m_dir; | 67 | return m_dir; |
67 | } | 68 | } |
68 | bool isDir()const{ | 69 | bool isDir()const{ |
69 | return dir; | 70 | return dir; |
70 | } | 71 | } |
71 | QString path()const{ | 72 | QString path()const{ |
72 | return text(1 ); | 73 | return text(1 ); |
73 | } | 74 | } |
74 | QString key(int id, bool )const { | 75 | QString key(int id, bool )const { |
75 | QString ke; | 76 | QString ke; |
76 | if( id == 0 || id == 1 ){ // name | 77 | if( id == 0 || id == 1 ){ // name |
77 | if( dir ){ | 78 | if( dir ){ |
78 | ke.append("0" ); | 79 | ke.append("0" ); |
79 | ke.append( text(1) ); | 80 | ke.append( text(1) ); |
80 | }else{ | 81 | }else{ |
81 | ke.append("1" ); | 82 | ke.append("1" ); |
82 | ke.append( text(1) ); | 83 | ke.append( text(1) ); |
83 | } | 84 | } |
84 | }else if( id == 2 ){ // size | 85 | }else if( id == 2 ){ // size |
85 | return text(2); | 86 | return text(2); |
86 | }else if( id == 3 ){ // date | 87 | }else if( id == 3 ){ // date |
87 | return text(3); | 88 | return text(3); |
88 | } | 89 | } |
89 | return ke; | 90 | return ke; |
90 | }; | 91 | }; |
91 | private: | 92 | private: |
92 | bool mLocked:1; | 93 | bool mLocked:1; |
93 | bool dir:1; | 94 | bool dir:1; |
94 | QString m_dir; | 95 | QString m_dir; |
95 | }; | 96 | }; |
96 | }; | 97 | }; |
97 | 98 | ||
98 | 99 | ||
99 | OFileSelector::OFileSelector( QWidget *wid, int mode, int selector, | 100 | OFileSelector::OFileSelector( QWidget *wid, int mode, int selector, |
100 | const QString &dirName, | 101 | const QString &dirName, |
101 | const QString &fileName, | 102 | const QString &fileName, |
102 | const QStringList &mimeTypes ) | 103 | const QStringList &mimeTypes ) |
103 | : QWidget( wid, "OFileSelector") | 104 | : QWidget( wid, "OFileSelector") |
104 | { | 105 | { |
105 | m_mimetypes = mimeTypes; | 106 | m_mimetypes = mimeTypes; |
106 | initVars(); | 107 | initVars(); |
107 | m_mode = mode; | 108 | m_mode = mode; |
108 | m_selector = selector; | 109 | m_selector = selector; |
109 | m_currentDir = dirName; | 110 | m_currentDir = dirName; |
110 | init(); | 111 | init(); |
111 | QTimer::singleShot(6*1000, this, SLOT( slotTest() ) ); | 112 | QTimer::singleShot(6*1000, this, SLOT( slotTest() ) ); |
112 | } | 113 | } |
113 | 114 | ||
114 | OFileSelector::OFileSelector(const QString &mimeFilter, QWidget *parent, | 115 | OFileSelector::OFileSelector(const QString &mimeFilter, QWidget *parent, |
115 | const char *name, bool newVisible = TRUE, | 116 | const char *name, bool newVisible = TRUE, |
116 | bool closeVisible = FALSE ) | 117 | bool closeVisible = FALSE ) |
117 | : QWidget( parent, name ) | 118 | : QWidget( parent, name ) |
118 | { | 119 | { |
119 | m_mimetypes = QStringList::split(";", mimeFilter ); | 120 | m_mimetypes = QStringList::split(";", mimeFilter ); |
120 | initVars(); | 121 | initVars(); |
121 | m_currentDir = QPEApplication::documentDir(); | 122 | m_currentDir = QPEApplication::documentDir(); |
122 | m_mode = OPEN; | 123 | m_mode = OPEN; |
123 | m_selector = NORMAL; | 124 | m_selector = NORMAL; |
124 | m_shClose = closeVisible; | 125 | m_shClose = closeVisible; |
125 | m_shNew = newVisible; | 126 | m_shNew = newVisible; |
126 | m_shLne = false; | 127 | m_shLne = false; |
127 | m_shPerm = false; | 128 | m_shPerm = false; |
128 | m_shYesNo = false; | 129 | m_shYesNo = false; |
129 | init(); | 130 | init(); |
130 | 131 | ||
131 | 132 | ||
132 | } | 133 | } |
133 | 134 | ||
134 | OFileSelector::~OFileSelector() | 135 | OFileSelector::~OFileSelector() |
135 | { | 136 | { |
136 | 137 | ||
137 | } | 138 | } |
138 | 139 | ||
139 | void OFileSelector::setNewVisible( bool visible ) | 140 | void OFileSelector::setNewVisible( bool visible ) |
140 | { | 141 | { |
141 | m_shNew = visible; | 142 | m_shNew = visible; |
142 | if( m_selector == NORMAL ){ | 143 | if( m_selector == NORMAL ){ |
143 | delete m_select; | 144 | delete m_select; |
144 | // we need to initialize but keep the selected mimetype | 145 | // we need to initialize but keep the selected mimetype |
145 | QString mime = m_mimeCheck == 0 ? QString::null : m_mimeCheck->currentText() ; | 146 | QString mime = m_mimeCheck == 0 ? QString::null : m_mimeCheck->currentText() ; |
146 | m_select = new FileSelector( m_autoMime ? mime : m_mimetypes.join(";") , | 147 | m_select = new FileSelector( m_autoMime ? mime : m_mimetypes.join(";") , |
147 | m_stack, "fileselector", | 148 | m_stack, "fileselector", |
148 | m_shNew, m_shClose); | 149 | m_shNew, m_shClose); |
149 | connect(m_select, SIGNAL(fileSelected( const DocLnk & ) ), | 150 | connect(m_select, SIGNAL(fileSelected( const DocLnk & ) ), |
150 | this, SLOT( slotFileBridgeSelected(const DocLnk & ) ) ); | 151 | this, SLOT( slotFileBridgeSelected(const DocLnk & ) ) ); |
151 | //connect to close me and other signals as well | 152 | //connect to close me and other signals as well |
152 | m_stack->addWidget( m_select, NORMAL ); | 153 | m_stack->addWidget( m_select, NORMAL ); |
153 | }else{ | 154 | }else{ |
154 | m_new->show(); | 155 | m_new->show(); |
155 | } | 156 | } |
156 | } | 157 | } |
157 | void OFileSelector::setCloseVisible( bool visible ) | 158 | void OFileSelector::setCloseVisible( bool visible ) |
158 | { | 159 | { |
159 | m_shClose = visible; | 160 | m_shClose = visible; |
160 | if( m_selector == NORMAL ){ | 161 | if( m_selector == NORMAL ){ |
161 | setNewVisible( m_shNew ); // yeah baby | 162 | setNewVisible( m_shNew ); // yeah baby |
162 | }else{ | 163 | }else{ |
163 | m_close->show(); | 164 | m_close->show(); |
164 | } | 165 | } |
165 | } | 166 | } |
166 | void OFileSelector::reread() | 167 | void OFileSelector::reread() |
167 | { | 168 | { |
168 | if( m_selector == NORMAL ){ | 169 | if( m_selector == NORMAL ){ |
169 | setNewVisible( m_shNew ); // make it a initializeSelector | 170 | setNewVisible( m_shNew ); // make it a initializeSelector |
170 | }else if ( m_selector == EXTENDED || m_selector == EXTENDED_ALL ){ | 171 | }else if ( m_selector == EXTENDED || m_selector == EXTENDED_ALL ){ |
171 | reparse(); | 172 | reparse(); |
172 | //}else{ | 173 | //}else{ |
173 | //; | 174 | //; |
174 | } | 175 | } |
175 | } | 176 | } |
176 | 177 | ||
177 | const DocLnk *OFileSelector::selected() | 178 | const DocLnk *OFileSelector::selected() |
178 | { | 179 | { |
179 | if( m_selector == NORMAL ){ | 180 | if( m_selector == NORMAL ){ |
180 | return m_select->selected(); | 181 | return m_select->selected(); |
181 | }else{ | 182 | }else{ |
182 | DocLnk *lnk = new DocLnk(selectedDocument() ); | 183 | DocLnk *lnk = new DocLnk(selectedDocument() ); |
183 | return lnk; | 184 | return lnk; |
184 | } | 185 | } |
185 | } | 186 | } |
186 | 187 | ||
187 | void OFileSelector::setYesCancelVisible( bool show ) | 188 | void OFileSelector::setYesCancelVisible( bool show ) |
188 | { | 189 | { |
189 | initializeYes(); // FIXME if YesCancel is not shown we will initialize it to hide it :( | 190 | initializeYes(); // FIXME if YesCancel is not shown we will initialize it to hide it :( |
190 | m_shYesNo = show; | 191 | m_shYesNo = show; |
191 | if( m_shYesNo ) | 192 | if( m_shYesNo ) |
192 | m_boxOk->show(); | 193 | m_boxOk->show(); |
193 | else | 194 | else |
194 | m_boxOk->hide(); | 195 | m_boxOk->hide(); |
195 | 196 | ||
196 | } | 197 | } |
197 | void OFileSelector::setToolbarVisible( bool show ) | 198 | void OFileSelector::setToolbarVisible( bool show ) |
198 | { | 199 | { |
199 | m_shTool = show; | 200 | m_shTool = show; |
200 | initializeListView(); // FIXME see above waste of memory | 201 | initializeListView(); // FIXME see above waste of memory |
201 | if(!m_shTool ){ | 202 | if(!m_shTool ){ |
202 | m_location->hide(); | 203 | m_location->hide(); |
203 | m_up->hide(); | 204 | m_up->hide(); |
204 | m_homeButton->hide(); | 205 | m_homeButton->hide(); |
205 | m_docButton->hide(); | 206 | m_docButton->hide(); |
206 | }else{ | 207 | }else{ |
207 | m_location->show(); | 208 | m_location->show(); |
208 | m_up->show(); | 209 | m_up->show(); |
209 | m_homeButton->show(); | 210 | m_homeButton->show(); |
210 | m_docButton->show(); | 211 | m_docButton->show(); |
211 | } | 212 | } |
212 | } | 213 | } |
213 | void OFileSelector::setPermissionBarVisible( bool show ) | 214 | void OFileSelector::setPermissionBarVisible( bool show ) |
214 | { | 215 | { |
215 | m_shPerm = show; | 216 | m_shPerm = show; |
216 | initializePerm(); | 217 | initializePerm(); |
217 | if( m_shPerm ) | 218 | if( m_shPerm ) |
218 | m_checkPerm->show(); | 219 | m_checkPerm->show(); |
219 | else | 220 | else |
220 | m_checkPerm->hide(); | 221 | m_checkPerm->hide(); |
221 | } | 222 | } |
222 | void OFileSelector::setLineEditVisible( bool show ) | 223 | void OFileSelector::setLineEditVisible( bool show ) |
223 | { | 224 | { |
224 | if( show ){ | 225 | if( show ){ |
225 | initializeName(); | 226 | initializeName(); |
226 | m_boxName->show(); | 227 | m_boxName->show(); |
227 | }else{ | 228 | }else{ |
228 | if( m_shLne && m_boxName != 0 ){ // check if we showed before this is the way to go | 229 | if( m_shLne && m_boxName != 0 ){ // check if we showed before this is the way to go |
229 | m_boxName->hide(); | 230 | m_boxName->hide(); |
230 | } | 231 | } |
231 | } | 232 | } |
232 | m_shLne = show; | 233 | m_shLne = show; |
233 | } | 234 | } |
234 | 235 | ||
235 | void OFileSelector::setChooserVisible( bool show ) | 236 | void OFileSelector::setChooserVisible( bool show ) |
236 | { | 237 | { |
237 | m_shChooser = show; | 238 | m_shChooser = show; |
238 | initializeChooser(); | 239 | initializeChooser(); |
239 | if( m_shChooser ){ | 240 | if( m_shChooser ){ |
240 | m_boxView->hide(); | 241 | m_boxView->hide(); |
241 | }else{ | 242 | }else{ |
242 | m_boxView->show(); | 243 | m_boxView->show(); |
243 | } | 244 | } |
244 | } | 245 | } |
245 | 246 | ||
246 | QCheckBox* OFileSelector::permissionCheckbox() | 247 | QCheckBox* OFileSelector::permissionCheckbox() |
247 | { | 248 | { |
248 | if( m_selector == NORMAL ) | 249 | if( m_selector == NORMAL ) |
249 | return 0l; | 250 | return 0l; |
250 | else | 251 | else |
251 | return m_checkPerm; | 252 | return m_checkPerm; |
252 | } | 253 | } |
253 | bool OFileSelector::setPermission()const | 254 | bool OFileSelector::setPermission()const |
254 | { | 255 | { |
255 | return m_checkPerm == 0 ? false : m_checkPerm->isChecked(); | 256 | return m_checkPerm == 0 ? false : m_checkPerm->isChecked(); |
256 | } | 257 | } |
257 | void OFileSelector::setPermissionChecked( bool check ) | 258 | void OFileSelector::setPermissionChecked( bool check ) |
258 | { | 259 | { |
259 | if( m_checkPerm ) | 260 | if( m_checkPerm ) |
260 | m_checkPerm->setChecked( check ); | 261 | m_checkPerm->setChecked( check ); |
261 | } | 262 | } |
262 | 263 | ||
263 | void OFileSelector::setMode(int mode) // FIXME do direct raising | 264 | void OFileSelector::setMode(int mode) // FIXME do direct raising |
264 | { | 265 | { |
265 | m_mode = mode; | 266 | m_mode = mode; |
266 | if( m_selector == NORMAL ) | 267 | if( m_selector == NORMAL ) |
267 | return; | 268 | return; |
268 | } | 269 | } |
269 | void OFileSelector::setShowDirs(bool ) | 270 | void OFileSelector::setShowDirs(bool ) |
270 | { | 271 | { |
271 | m_dir = true; | 272 | m_dir = true; |
272 | reparse(); | 273 | reparse(); |
273 | } | 274 | } |
274 | void OFileSelector::setCaseSensetive(bool caSe ) | 275 | void OFileSelector::setCaseSensetive(bool caSe ) |
275 | { | 276 | { |
276 | m_case = caSe; | 277 | m_case = caSe; |
277 | reparse(); | 278 | reparse(); |
278 | } | 279 | } |
279 | void OFileSelector::setShowFiles(bool show ) | 280 | void OFileSelector::setShowFiles(bool show ) |
280 | { | 281 | { |
281 | m_files = show; | 282 | m_files = show; |
282 | reparse(); | 283 | reparse(); |
283 | } | 284 | } |
284 | /// | 285 | /// |
285 | bool OFileSelector::cd(const QString &path ) | 286 | bool OFileSelector::cd(const QString &path ) |
286 | { | 287 | { |
287 | m_currentDir = path; | 288 | m_currentDir = path; |
288 | reparse(); | 289 | reparse(); |
289 | return true; | 290 | return true; |
290 | } | 291 | } |
291 | void OFileSelector::setSelector(int mode ) | 292 | void OFileSelector::setSelector(int mode ) |
292 | { | 293 | { |
293 | QString text; | 294 | QString text; |
294 | switch( mode ){ | 295 | switch( mode ){ |
295 | case NORMAL: | 296 | case NORMAL: |
296 | text = tr("Documents"); | 297 | text = tr("Documents"); |
297 | break; | 298 | break; |
298 | case EXTENDED: | 299 | case EXTENDED: |
299 | text = tr("Files"); | 300 | text = tr("Files"); |
300 | break; | 301 | break; |
301 | case EXTENDED_ALL: | 302 | case EXTENDED_ALL: |
302 | text = tr("All Files"); | 303 | text = tr("All Files"); |
303 | break; | 304 | break; |
304 | } | 305 | } |
305 | slotViewCheck( text ); | 306 | slotViewCheck( text ); |
306 | } | 307 | } |
307 | 308 | ||
308 | void OFileSelector::setPopupMenu(QPopupMenu *popup ) | 309 | void OFileSelector::setPopupMenu(QPopupMenu *popup ) |
309 | { | 310 | { |
310 | m_custom = popup; | 311 | m_custom = popup; |
311 | m_showPopup = true; | 312 | m_showPopup = true; |
312 | } | 313 | } |
313 | 314 | ||
314 | //void OFileSelector::updateL | 315 | //void OFileSelector::updateL |
315 | 316 | ||
316 | QString OFileSelector::selectedName() const | 317 | QString OFileSelector::selectedName() const |
317 | { | 318 | { |
318 | QString name; | 319 | QString name; |
319 | if( m_selector == NORMAL ){ | 320 | if( m_selector == NORMAL ){ |
320 | const DocLnk *lnk = m_select->selected(); | 321 | const DocLnk *lnk = m_select->selected(); |
321 | name = lnk->file(); | 322 | name = lnk->file(); |
322 | delete lnk; | 323 | delete lnk; |
323 | }else if( m_selector == EXTENDED || m_selector == EXTENDED_ALL ){ | 324 | }else if( m_selector == EXTENDED || m_selector == EXTENDED_ALL ){ |
324 | QListViewItem *item = m_View->currentItem(); | 325 | QListViewItem *item = m_View->currentItem(); |
325 | if( item != 0 ) | 326 | if( item != 0 ) |
326 | name = m_currentDir + "/" + item->text( 1 ); | 327 | name = m_currentDir + "/" + item->text( 1 ); |
327 | }else { // installed view | 328 | }else { // installed view |
328 | ; | 329 | ; |
329 | } | 330 | } |
330 | return name; | 331 | return name; |
331 | } | 332 | } |
332 | QStringList OFileSelector::selectedNames()const | 333 | QStringList OFileSelector::selectedNames()const |
333 | { | 334 | { |
334 | QStringList list; | 335 | QStringList list; |
335 | if( m_selector == NORMAL ){ | 336 | if( m_selector == NORMAL ){ |
336 | list << selectedName(); | 337 | list << selectedName(); |
337 | }else if ( m_selector == EXTENDED || m_selector == EXTENDED_ALL ) { | 338 | }else if ( m_selector == EXTENDED || m_selector == EXTENDED_ALL ) { |
338 | list << selectedName(); // FIXME implement multiple Selections | 339 | list << selectedName(); // FIXME implement multiple Selections |
339 | } | 340 | } |
340 | return list; | 341 | return list; |
341 | } | 342 | } |
342 | /** If mode is set to the Dir selection this will return the selected path. | 343 | /** If mode is set to the Dir selection this will return the selected path. |
343 | * | 344 | * |
344 | * | 345 | * |
345 | */ | 346 | */ |
346 | QString OFileSelector::selectedPath()const | 347 | QString OFileSelector::selectedPath()const |
347 | { | 348 | { |
348 | QString path; | 349 | QString path; |
349 | if( m_selector == NORMAL ){ | 350 | if( m_selector == NORMAL ){ |
350 | path = QPEApplication::documentDir(); | 351 | path = QPEApplication::documentDir(); |
351 | }else if( m_selector == EXTENDED || m_selector == EXTENDED_ALL ){ | 352 | }else if( m_selector == EXTENDED || m_selector == EXTENDED_ALL ){ |
352 | ; | 353 | ; |
353 | } | 354 | } |
354 | return path; | 355 | return path; |
355 | } | 356 | } |
356 | QStringList OFileSelector::selectedPaths() const | 357 | QStringList OFileSelector::selectedPaths() const |
357 | { | 358 | { |
358 | QStringList list; | 359 | QStringList list; |
359 | list << selectedPath(); | 360 | list << selectedPath(); |
360 | return list; | 361 | return list; |
361 | } | 362 | } |
362 | QString OFileSelector::directory()const | 363 | QString OFileSelector::directory()const |
363 | { | 364 | { |
364 | if( m_selector == NORMAL ) | 365 | if( m_selector == NORMAL ) |
365 | return QPEApplication::documentDir(); | 366 | return QPEApplication::documentDir(); |
366 | 367 | ||
367 | return QDir(m_currentDir).absPath(); | 368 | return QDir(m_currentDir).absPath(); |
368 | } | 369 | } |
369 | 370 | ||
370 | int OFileSelector::fileCount() | 371 | int OFileSelector::fileCount() |
371 | { | 372 | { |
372 | int count; | 373 | int count; |
373 | switch( m_selector ){ | 374 | switch( m_selector ){ |
374 | case NORMAL: | 375 | case NORMAL: |
375 | count = m_select->fileCount(); | 376 | count = m_select->fileCount(); |
376 | break; | 377 | break; |
377 | //case CUSTOM: | 378 | //case CUSTOM: |
378 | case EXTENDED: | 379 | case EXTENDED: |
379 | case EXTENDED_ALL: | 380 | case EXTENDED_ALL: |
380 | default: | 381 | default: |
381 | count = m_View->childCount(); | 382 | count = m_View->childCount(); |
382 | break; | 383 | break; |
383 | } | 384 | } |
384 | return count; | 385 | return count; |
385 | } | 386 | } |
386 | DocLnk OFileSelector::selectedDocument() const | 387 | DocLnk OFileSelector::selectedDocument() const |
387 | { | 388 | { |
388 | DocLnk lnk; | 389 | DocLnk lnk; |
389 | switch( m_selector ){ | 390 | switch( m_selector ){ |
390 | case NORMAL:{ | 391 | case NORMAL:{ |
391 | const DocLnk *lnk2 = m_select->selected(); | 392 | const DocLnk *lnk2 = m_select->selected(); |
392 | lnk = DocLnk(*lnk2 ); // copy | 393 | lnk = DocLnk(*lnk2 ); // copy |
393 | delete lnk2; | 394 | delete lnk2; |
394 | break; | 395 | break; |
395 | } | 396 | } |
396 | case EXTENDED: | 397 | case EXTENDED: |
397 | case EXTENDED_ALL: | 398 | case EXTENDED_ALL: |
398 | default: | 399 | default: |
399 | lnk = DocLnk( selectedName() ); // new DocLnk | 400 | lnk = DocLnk( selectedName() ); // new DocLnk |
400 | break; | 401 | break; |
401 | } | 402 | } |
402 | return lnk; | 403 | return lnk; |
403 | } | 404 | } |
404 | QValueList<DocLnk> OFileSelector::selectedDocuments() const | 405 | QValueList<DocLnk> OFileSelector::selectedDocuments() const |
405 | { | 406 | { |
406 | QValueList<DocLnk> docs; | 407 | QValueList<DocLnk> docs; |
407 | docs.append( selectedDocument() ); | 408 | docs.append( selectedDocument() ); |
408 | return docs; | 409 | return docs; |
409 | } | 410 | } |
410 | 411 | ||
411 | 412 | ||
412 | // slots internal | 413 | // slots internal |
413 | 414 | ||
414 | void OFileSelector::slotOk() | 415 | void OFileSelector::slotOk() |
415 | { | 416 | { |
416 | emit ok(); | 417 | emit ok(); |
417 | } | 418 | } |
418 | void OFileSelector::slotCancel() | 419 | void OFileSelector::slotCancel() |
419 | { | 420 | { |
420 | emit cancel(); | 421 | emit cancel(); |
421 | } | 422 | } |
422 | void OFileSelector::slotViewCheck(const QString &sel) | 423 | void OFileSelector::slotViewCheck(const QString &sel) |
423 | { | 424 | { |
424 | if( sel == tr("Documents" ) ){ | 425 | if( sel == tr("Documents" ) ){ |
425 | if( m_select == 0 ){ | 426 | if( m_select == 0 ){ |
426 | // autMime? fix cause now we use All and not the current | 427 | // autMime? fix cause now we use All and not the current |
427 | m_select = new FileSelector(m_autoMime ? QString::null : m_mimetypes.join(";"), | 428 | m_select = new FileSelector(m_autoMime ? QString::null : m_mimetypes.join(";"), |
428 | m_stack, "fileselector", | 429 | m_stack, "fileselector", |
429 | FALSE, FALSE); | 430 | FALSE, FALSE); |
430 | connect(m_select, SIGNAL(fileSelected( const DocLnk & ) ), | 431 | connect(m_select, SIGNAL(fileSelected( const DocLnk & ) ), |
431 | this, SLOT( slotFileBridgeSelected(const DocLnk & ) ) ); | 432 | this, SLOT( slotFileBridgeSelected(const DocLnk & ) ) ); |
432 | //connect to close me and other signals as well | 433 | //connect to close me and other signals as well |
433 | 434 | ||
434 | m_stack->addWidget( m_select, NORMAL ); | 435 | m_stack->addWidget( m_select, NORMAL ); |
435 | } | 436 | } |
436 | m_stack->raiseWidget( NORMAL ); | 437 | m_stack->raiseWidget( NORMAL ); |
437 | m_selector = NORMAL; | 438 | m_selector = NORMAL; |
438 | }else if( sel == tr("Files") ){ | 439 | }else if( sel == tr("Files") ){ |
439 | m_selector = EXTENDED; | 440 | m_selector = EXTENDED; |
440 | initializeListView(); | 441 | initializeListView(); |
441 | reparse(); | 442 | reparse(); |
442 | m_stack->raiseWidget( EXTENDED ); | 443 | m_stack->raiseWidget( EXTENDED ); |
443 | }else if( sel == tr("All Files") ){ | 444 | }else if( sel == tr("All Files") ){ |
444 | m_selector = EXTENDED_ALL; | 445 | m_selector = EXTENDED_ALL; |
445 | initializeListView(); | 446 | initializeListView(); |
446 | reparse(); | 447 | reparse(); |
447 | m_stack->raiseWidget( EXTENDED ); // same widget other QFileFilter | 448 | m_stack->raiseWidget( EXTENDED ); // same widget other QFileFilter |
448 | } | 449 | } |
449 | } | 450 | } |
450 | void OFileSelector::slotMimeCheck(const QString &mime) | 451 | void OFileSelector::slotMimeCheck(const QString &mime) |
451 | { | 452 | { |
452 | if( m_selector == NORMAL ){ | 453 | if( m_selector == NORMAL ){ |
453 | if( m_autoMime ){ | 454 | if( m_autoMime ){ |
454 | delete m_select; | 455 | delete m_select; |
455 | m_select = new FileSelector( mime == tr("All") ? QString::null : mime, | 456 | m_select = new FileSelector( mime == tr("All") ? QString::null : mime, |
456 | m_stack, "fileselector", | 457 | m_stack, "fileselector", |
457 | FALSE, FALSE); | 458 | FALSE, FALSE); |
458 | 459 | ||
459 | connect(m_select, SIGNAL(fileSelected( const DocLnk & ) ), | 460 | connect(m_select, SIGNAL(fileSelected( const DocLnk & ) ), |
460 | this, SLOT( slotFileBridgeSelected(const DocLnk & ) ) ); | 461 | this, SLOT( slotFileBridgeSelected(const DocLnk & ) ) ); |
461 | //connect to close me and other signals as well | 462 | //connect to close me and other signals as well |
462 | m_stack->addWidget( m_select, NORMAL ); | 463 | m_stack->addWidget( m_select, NORMAL ); |
463 | m_stack->raiseWidget( NORMAL ); | 464 | m_stack->raiseWidget( NORMAL ); |
464 | updateMimes(); | 465 | updateMimes(); |
465 | m_mimeCheck->clear(); | 466 | m_mimeCheck->clear(); |
466 | m_mimeCheck->insertStringList(m_mimetypes ); | 467 | m_mimeCheck->insertStringList(m_mimetypes ); |
467 | m_mimeCheck->setCurrentItem(indexByString( m_mimeCheck, mime) ); | 468 | m_mimeCheck->setCurrentItem(indexByString( m_mimeCheck, mime) ); |
468 | } | 469 | } |
469 | }else{ // others | 470 | }else{ // others |
470 | qWarning("Mime %s", mime.latin1() ); | 471 | qWarning("Mime %s", mime.latin1() ); |
471 | if(m_shChooser ){ | 472 | if(m_shChooser ){ |
472 | qWarning("Current Text %s", m_mimeCheck->currentText().latin1() ); | 473 | qWarning("Current Text %s", m_mimeCheck->currentText().latin1() ); |
473 | //m_mimeCheck->setCurrentItem(indexByString( m_mimeCheck, mime) ); | 474 | //m_mimeCheck->setCurrentItem(indexByString( m_mimeCheck, mime) ); |
474 | } | 475 | } |
475 | reparse(); | 476 | reparse(); |
476 | } | 477 | } |
477 | 478 | ||
478 | } | 479 | } |
479 | void OFileSelector::slotLocationActivated(const QString &file) | 480 | void OFileSelector::slotLocationActivated(const QString &file) |
480 | { | 481 | { |
481 | cd(file.left(file.find("<-",0,TRUE))); | 482 | cd(file.left(file.find("<-",0,TRUE))); |
482 | reparse(); | 483 | reparse(); |
483 | } | 484 | } |
484 | void OFileSelector::slotInsertLocationPath(const QString ¤tPath, int count) | 485 | void OFileSelector::slotInsertLocationPath(const QString ¤tPath, int count) |
485 | { | 486 | { |
486 | QStringList pathList; | 487 | QStringList pathList; |
487 | bool underDog = FALSE; | 488 | bool underDog = FALSE; |
488 | for(int i=0;i<count;i++) { | 489 | for(int i=0;i<count;i++) { |
489 | pathList << m_location->text(i); | 490 | pathList << m_location->text(i); |
490 | if( m_location->text(i) == currentPath) | 491 | if( m_location->text(i) == currentPath) |
491 | underDog = TRUE; | 492 | underDog = TRUE; |
492 | } | 493 | } |
493 | if( !underDog) { | 494 | if( !underDog) { |
494 | m_location->clear(); | 495 | m_location->clear(); |
495 | if( currentPath.left(2)=="//") | 496 | if( currentPath.left(2)=="//") |
496 | pathList.append( currentPath.right(currentPath.length()-1) ); | 497 | pathList.append( currentPath.right(currentPath.length()-1) ); |
497 | else | 498 | else |
498 | pathList.append( currentPath ); | 499 | pathList.append( currentPath ); |
499 | m_location->insertStringList( pathList,-1); | 500 | m_location->insertStringList( pathList,-1); |
500 | } | 501 | } |
501 | } | 502 | } |
502 | void OFileSelector::locationComboChanged() | 503 | void OFileSelector::locationComboChanged() |
503 | { | 504 | { |
504 | cd( m_location->lineEdit()->text()); | 505 | cd( m_location->lineEdit()->text()); |
505 | reparse(); | 506 | reparse(); |
506 | } | 507 | } |
507 | void OFileSelector::init() | 508 | void OFileSelector::init() |
508 | { | 509 | { |
509 | m_lay = new QVBoxLayout( this ); | 510 | m_lay = new QVBoxLayout( this ); |
510 | m_lay->setSpacing(0 ); | 511 | m_lay->setSpacing(0 ); |
511 | 512 | ||
512 | m_stack = new QWidgetStack( this ); | 513 | m_stack = new QWidgetStack( this ); |
513 | if( m_selector == NORMAL ){ | 514 | if( m_selector == NORMAL ){ |
514 | m_select = new FileSelector(m_autoMime ? QString::null : m_mimetypes.join(";"), | 515 | m_select = new FileSelector(m_autoMime ? QString::null : m_mimetypes.join(";"), |
515 | m_stack, "fileselector", | 516 | m_stack, "fileselector", |
516 | FALSE, FALSE); | 517 | FALSE, FALSE); |
517 | 518 | ||
518 | connect(m_select, SIGNAL(fileSelected( const DocLnk & ) ), | 519 | connect(m_select, SIGNAL(fileSelected( const DocLnk & ) ), |
519 | this, SLOT( slotFileBridgeSelected(const DocLnk & ) ) ); | 520 | this, SLOT( slotFileBridgeSelected(const DocLnk & ) ) ); |
520 | //connect to close me and other signals as well | 521 | //connect to close me and other signals as well |
521 | 522 | ||
522 | m_stack->addWidget( m_select, NORMAL ); | 523 | m_stack->addWidget( m_select, NORMAL ); |
523 | m_stack->raiseWidget( NORMAL ); | 524 | m_stack->raiseWidget( NORMAL ); |
524 | }else{ // we're in init so it will be EXTENDED or EXTENDED_ALL | 525 | }else{ // we're in init so it will be EXTENDED or EXTENDED_ALL |
525 | // and initializeListview will take care of those | 526 | // and initializeListview will take care of those |
526 | // toolbar get's generade in initializeListView | 527 | // toolbar get's generade in initializeListView |
527 | initializeListView( ); // will raise the widget as well | 528 | initializeListView( ); // will raise the widget as well |
528 | } | 529 | } |
529 | m_lay->addWidget( m_stack, 100 ); // add to the layout 10 = stretch | 530 | m_lay->addWidget( m_stack, 100 ); // add to the layout 10 = stretch |
530 | 531 | ||
531 | if( m_shLne ) // the LineEdit with the current FileName | 532 | if( m_shLne ) // the LineEdit with the current FileName |
532 | initializeName(); | 533 | initializeName(); |
533 | 534 | ||
534 | if( m_shPerm ) // the Permission QCheckBox | 535 | if( m_shPerm ) // the Permission QCheckBox |
535 | initializePerm(); | 536 | initializePerm(); |
536 | 537 | ||
537 | if( m_shChooser ) // the Chooser for the view and Mimetypes | 538 | if( m_shChooser ) // the Chooser for the view and Mimetypes |
538 | initializeChooser(); | 539 | initializeChooser(); |
539 | 540 | ||
540 | if( m_shYesNo ) // the Yes No button row | 541 | if( m_shYesNo ) // the Yes No button row |
541 | initializeYes( ); | 542 | initializeYes( ); |
542 | } | 543 | } |
543 | void OFileSelector::updateMimes() | 544 | void OFileSelector::updateMimes() |
544 | { | 545 | { |
545 | if( m_autoMime ){ | 546 | if( m_autoMime ){ |
546 | m_mimetypes.clear(); | 547 | m_mimetypes.clear(); |
547 | m_mimetypes.append( tr("All") ); | 548 | m_mimetypes.append( tr("All") ); |
548 | if( m_selector == NORMAL ){ | 549 | if( m_selector == NORMAL ){ |
549 | DocLnkSet set; | 550 | DocLnkSet set; |
550 | Global::findDocuments(&set, QString::null ); | 551 | Global::findDocuments(&set, QString::null ); |
551 | QListIterator<DocLnk> dit( set.children() ); | 552 | QListIterator<DocLnk> dit( set.children() ); |
552 | for( ; dit.current(); ++dit ){ | 553 | for( ; dit.current(); ++dit ){ |
553 | if( !m_mimetypes.contains( (*dit)->type() ) ) | 554 | if( !m_mimetypes.contains( (*dit)->type() ) ) |
554 | m_mimetypes.append( (*dit)->type() ); | 555 | m_mimetypes.append( (*dit)->type() ); |
555 | } | 556 | } |
556 | }// else done in reparse | 557 | }// else done in reparse |
557 | } | 558 | } |
558 | } | 559 | } |
559 | void OFileSelector::initVars() | 560 | void OFileSelector::initVars() |
560 | { | 561 | { |
561 | if( m_mimetypes.isEmpty() ) | 562 | if( m_mimetypes.isEmpty() ) |
562 | m_autoMime = true; | 563 | m_autoMime = true; |
563 | else | 564 | else |
564 | m_autoMime = false; | 565 | m_autoMime = false; |
565 | m_shClose = false; | 566 | m_shClose = false; |
566 | m_shNew = false; | 567 | m_shNew = false; |
567 | m_shTool = true; | 568 | m_shTool = true; |
568 | m_shPerm = false; | 569 | m_shPerm = false; |
569 | m_shLne = true; | 570 | m_shLne = true; |
570 | m_shChooser = true; | 571 | m_shChooser = true; |
571 | m_shYesNo = true; | 572 | m_shYesNo = true; |
572 | m_case = false; | 573 | m_case = false; |
573 | m_dir = true; | 574 | m_dir = true; |
574 | m_files = true; | 575 | m_files = true; |
575 | m_showPopup = false; | 576 | m_showPopup = false; |
576 | if(m_pixmaps == 0 ) // init the pixmaps | 577 | if(m_pixmaps == 0 ) // init the pixmaps |
577 | initPics(); | 578 | initPics(); |
578 | 579 | ||
579 | // pointers | 580 | // pointers |
580 | m_location = 0; | 581 | m_location = 0; |
581 | m_mimeCheck = 0; | 582 | m_mimeCheck = 0; |
582 | m_viewCheck = 0; | 583 | m_viewCheck = 0; |
583 | m_homeButton = 0; | 584 | m_homeButton = 0; |
584 | m_docButton = 0; | 585 | m_docButton = 0; |
585 | m_hideButton = 0; | 586 | m_hideButton = 0; |
586 | m_ok = 0; | 587 | m_ok = 0; |
587 | m_cancel = 0; | 588 | m_cancel = 0; |
588 | m_reread = 0; | 589 | m_reread = 0; |
589 | m_up = 0; | 590 | m_up = 0; |
590 | m_View = 0; | 591 | m_View = 0; |
591 | m_checkPerm = 0; | 592 | m_checkPerm = 0; |
592 | m_pseudo = 0; | 593 | m_pseudo = 0; |
593 | m_pseudoLayout = 0; | 594 | m_pseudoLayout = 0; |
594 | m_select = 0; | 595 | m_select = 0; |
595 | m_stack = 0; | 596 | m_stack = 0; |
596 | m_lay = 0; | 597 | m_lay = 0; |
597 | m_Oselector = 0; | 598 | m_Oselector = 0; |
598 | m_boxToolbar = 0; | 599 | m_boxToolbar = 0; |
599 | m_boxOk = 0; | 600 | m_boxOk = 0; |
600 | m_boxName = 0; | 601 | m_boxName = 0; |
601 | m_boxView = 0; | 602 | m_boxView = 0; |
602 | m_custom = 0; | 603 | m_custom = 0; |
603 | m_edit = 0; | 604 | m_edit = 0; |
604 | m_fnLabel = 0; | 605 | m_fnLabel = 0; |
605 | m_new = 0; | 606 | m_new = 0; |
606 | m_close = 0; | 607 | m_close = 0; |
607 | } | 608 | } |
608 | void OFileSelector::addFile(const QString &mime, QFileInfo *info, bool symlink) | 609 | void OFileSelector::addFile(const QString &mime, QFileInfo *info, bool symlink) |
609 | { | 610 | { |
610 | if(!m_files) | 611 | if(!m_files) |
611 | return; | 612 | return; |
612 | // if( !compliesMime(info->absFilePath(), mime ) ) | 613 | // if( !compliesMime(info->absFilePath(), mime ) ) |
613 | // return; | 614 | // return; |
614 | MimeType type( info->absFilePath() ); | 615 | MimeType type( info->absFilePath() ); |
615 | if( mime != tr("All") && type.id() != mime ) | 616 | if( mime != tr("All") && type.id() != mime ) |
616 | return; | 617 | return; |
617 | QPixmap pix = type.pixmap(); | 618 | QPixmap pix = type.pixmap(); |
618 | QString dir; | 619 | QString dir; |
619 | QString name; | 620 | QString name; |
620 | bool locked; | 621 | bool locked; |
621 | if( pix.isNull() ) | 622 | if( pix.isNull() ) |
622 | pix = Resource::loadPixmap( "UnknownDocument-14"); | 623 | pix = Resource::loadPixmap( "UnknownDocument-14"); |
623 | dir = info->dirPath( true ); | 624 | dir = info->dirPath( true ); |
624 | if( symlink ) | 625 | if( symlink ) |
625 | name = info->fileName() + " -> " +info->dirPath() + "/" + info->readLink(); | 626 | name = info->fileName() + " -> " +info->dirPath() + "/" + info->readLink(); |
626 | else { | 627 | else { |
627 | name = info->fileName(); | 628 | name = info->fileName(); |
628 | if( ( m_mode == OPEN && !info->isReadable() )|| | 629 | if( ( m_mode == OPEN && !info->isReadable() )|| |
629 | ( m_mode == SAVE && !info->isWritable() ) ){ | 630 | ( m_mode == SAVE && !info->isWritable() ) ){ |
630 | 631 | ||
631 | locked = true; pix = Resource::loadPixmap("locked"); | 632 | locked = true; pix = Resource::loadPixmap("locked"); |
632 | } | 633 | } |
633 | } | 634 | } |
634 | new OFileSelectorItem( m_View, pix, name, | 635 | new OFileSelectorItem( m_View, pix, name, |
635 | info->lastModified().toString(), | 636 | info->lastModified().toString(), |
636 | QString::number( info->size() ), | 637 | QString::number( info->size() ), |
637 | dir, locked ); | 638 | dir, locked ); |
638 | } | 639 | } |
639 | void OFileSelector::addDir(const QString &mime, QFileInfo *info, bool symlink ) | 640 | void OFileSelector::addDir(const QString &mime, QFileInfo *info, bool symlink ) |
640 | { | 641 | { |
641 | if(!m_dir) | 642 | if(!m_dir) |
642 | return; | 643 | return; |
643 | if( m_selector == EXTENDED_ALL || m_selector == EXTENDED ){ | 644 | if( m_selector == EXTENDED_ALL || m_selector == EXTENDED ){ |
644 | bool locked = false; | 645 | bool locked = false; |
645 | QString name; | 646 | QString name; |
646 | QPixmap pix; | 647 | QPixmap pix; |
647 | if( ( m_mode == OPEN && !info->isReadable() ) || ( m_mode == SAVE && !info->isWritable() ) ){ | 648 | if( ( m_mode == OPEN && !info->isReadable() ) || ( m_mode == SAVE && !info->isWritable() ) ){ |
648 | locked = true; | 649 | locked = true; |
649 | if( symlink ) | 650 | if( symlink ) |
650 | pix = (*m_pixmaps)["symlinkedlocked"]; | 651 | pix = (*m_pixmaps)["symlinkedlocked"]; |
651 | else | 652 | else |
652 | pix = Resource::loadPixmap("lockedfolder"); | 653 | pix = Resource::loadPixmap("lockedfolder"); |
653 | }else { // readable | 654 | }else { // readable |
654 | pix = symlink ? (*m_pixmaps)["dirsymlink"] : Resource::loadPixmap("folder") ; | 655 | pix = symlink ? (*m_pixmaps)["dirsymlink"] : Resource::loadPixmap("folder") ; |
655 | } | 656 | } |
656 | name = symlink ? info->fileName() + "->" + info->dirPath(true) + "/" +info->readLink() : info->fileName() ; | 657 | name = symlink ? info->fileName() + "->" + info->dirPath(true) + "/" +info->readLink() : info->fileName() ; |
657 | new OFileSelectorItem( m_View, pix, name, | 658 | new OFileSelectorItem( m_View, pix, name, |
658 | info->lastModified().toString(), | 659 | info->lastModified().toString(), |
659 | QString::number( info->size() ), | 660 | QString::number( info->size() ), |
660 | info->dirPath( true ), locked, | 661 | info->dirPath( true ), locked, |
661 | true ); | 662 | true ); |
662 | 663 | ||
663 | }// else CUSTOM View | 664 | }// else CUSTOM View |
664 | } | 665 | } |
665 | void OFileSelector::delItems() | 666 | void OFileSelector::delItems() |
666 | { | 667 | { |
667 | 668 | ||
668 | } | 669 | } |
669 | void OFileSelector::initializeName() | 670 | void OFileSelector::initializeName() |
670 | { | 671 | { |
671 | /** Name Layout Line | 672 | /** Name Layout Line |
672 | * This is the Layout line arranged in | 673 | * This is the Layout line arranged in |
673 | * horizontal way each components | 674 | * horizontal way each components |
674 | * are next to each other | 675 | * are next to each other |
675 | * but we will only do this if | 676 | * but we will only do this if |
676 | * we didn't initialize a while ago. | 677 | * we didn't initialize a while ago. |
677 | */ | 678 | */ |
678 | if( m_boxName == 0 ){ | 679 | if( m_boxName == 0 ){ |
679 | m_boxName = new QHBox( this ); // remove this this? or use a QHBox | 680 | m_boxName = new QHBox( this ); // remove this this? or use a QHBox |
680 | m_fnLabel = new QLabel( m_boxName ); | 681 | m_fnLabel = new QLabel( m_boxName ); |
681 | m_fnLabel->setText( tr("Name:") ); | 682 | m_fnLabel->setText( tr("Name:") ); |
682 | m_edit = new QLineEdit( m_boxName ); | 683 | m_edit = new QLineEdit( m_boxName ); |
683 | //m_boxName->addWidget( m_fnLabel ); | 684 | //m_boxName->addWidget( m_fnLabel ); |
684 | m_boxName->setMargin( 5 ); | 685 | m_boxName->setMargin( 5 ); |
685 | m_boxName->setSpacing( 8 ); | 686 | m_boxName->setSpacing( 8 ); |
686 | //m_boxName->setStretchFactor(m_edit, 100 ); // 100 is stretch factor | 687 | //m_boxName->setStretchFactor(m_edit, 100 ); // 100 is stretch factor |
687 | 688 | ||
688 | m_lay->addWidget( m_boxName, 0 ); // add it to the topLevel layout | 689 | m_lay->addWidget( m_boxName, 0 ); // add it to the topLevel layout |
689 | }// else we already initialized | 690 | }// else we already initialized |
690 | // maybe show the components? | 691 | // maybe show the components? |
691 | // | 692 | // |
692 | } | 693 | } |
693 | void OFileSelector::initializeYes() | 694 | void OFileSelector::initializeYes() |
694 | { | 695 | { |
695 | /** The Save Cancel bar | 696 | /** The Save Cancel bar |
696 | * | 697 | * |
697 | */ | 698 | */ |
698 | if( m_boxOk == 0 ){ | 699 | if( m_boxOk == 0 ){ |
699 | m_boxOk = new QHBox( this ); | 700 | m_boxOk = new QHBox( this ); |
700 | m_ok = new QPushButton( tr("&Save"),m_boxOk , "save" ); | 701 | m_ok = new QPushButton( tr("&Save"),m_boxOk , "save" ); |
701 | m_cancel = new QPushButton( tr("C&ancel"), m_boxOk, "cancel" ); | 702 | m_cancel = new QPushButton( tr("C&ancel"), m_boxOk, "cancel" ); |
702 | 703 | ||
703 | //m_boxOk->addWidget( m_ok ); | 704 | //m_boxOk->addWidget( m_ok ); |
704 | //m_boxOk->addWidget( m_cancel ); | 705 | //m_boxOk->addWidget( m_cancel ); |
705 | m_boxOk->setMargin( 5 ); | 706 | m_boxOk->setMargin( 5 ); |
706 | m_boxOk->setSpacing( 10 ); | 707 | m_boxOk->setSpacing( 10 ); |
707 | m_lay->addWidget( m_boxOk, 0 ); | 708 | m_lay->addWidget( m_boxOk, 0 ); |
708 | 709 | ||
709 | connect( m_ok, SIGNAL( clicked() ), | 710 | connect( m_ok, SIGNAL( clicked() ), |
710 | this, SLOT(slotOk() ) ); | 711 | this, SLOT(slotOk() ) ); |
711 | connect( m_cancel, SIGNAL( clicked() ), | 712 | connect( m_cancel, SIGNAL( clicked() ), |
712 | this, SLOT( slotCancel() ) ); | 713 | this, SLOT( slotCancel() ) ); |
713 | } | 714 | } |
714 | } | 715 | } |
715 | void OFileSelector::initializeChooser() | 716 | void OFileSelector::initializeChooser() |
716 | { | 717 | { |
717 | if( m_boxView == 0 ){ | 718 | if( m_boxView == 0 ){ |
718 | m_boxView = new QHBox( this ); | 719 | m_boxView = new QHBox( this ); |
719 | m_viewCheck = new QComboBox( m_boxView, "view check"); | 720 | m_viewCheck = new QComboBox( m_boxView, "view check"); |
720 | m_mimeCheck = new QComboBox( m_boxView, "mime check"); | 721 | m_mimeCheck = new QComboBox( m_boxView, "mime check"); |
721 | m_boxView->setSpacing( 8 ); | 722 | m_boxView->setSpacing( 8 ); |
722 | m_lay->addWidget(m_boxView, 0 ); | 723 | m_lay->addWidget(m_boxView, 0 ); |
723 | 724 | ||
724 | m_viewCheck->insertItem( tr("Documents") ); | 725 | m_viewCheck->insertItem( tr("Documents") ); |
725 | m_viewCheck->insertItem( tr("Files") ); | 726 | m_viewCheck->insertItem( tr("Files") ); |
726 | m_viewCheck->insertItem( tr("All Files") ); | 727 | m_viewCheck->insertItem( tr("All Files") ); |
727 | if(!m_autoMime ) | 728 | if(!m_autoMime ) |
728 | m_mimeCheck->insertItem(m_mimetypes.join(",") ); | 729 | m_mimeCheck->insertItem(m_mimetypes.join(",") ); |
729 | else{ | 730 | else{ |
730 | updateMimes(); | 731 | updateMimes(); |
731 | m_mimeCheck->insertStringList( m_mimetypes ); | 732 | m_mimeCheck->insertStringList( m_mimetypes ); |
732 | } | 733 | } |
733 | connect( m_viewCheck, SIGNAL( activated(const QString & ) ), | 734 | connect( m_viewCheck, SIGNAL( activated(const QString & ) ), |
734 | this, SLOT( slotViewCheck(const QString & ) ) ); | 735 | this, SLOT( slotViewCheck(const QString & ) ) ); |
735 | connect( m_mimeCheck, SIGNAL( activated(const QString & ) ), | 736 | connect( m_mimeCheck, SIGNAL( activated(const QString & ) ), |
736 | this, SLOT( slotMimeCheck( const QString & ) ) ); | 737 | this, SLOT( slotMimeCheck( const QString & ) ) ); |
737 | } | 738 | } |
738 | } | 739 | } |
739 | void OFileSelector::initializeListView() | 740 | void OFileSelector::initializeListView() |
740 | { | 741 | { |
741 | if( m_pseudo == 0 ){ | 742 | if( m_pseudo == 0 ){ |
742 | m_pseudo = new QWidget( m_stack, "Pseudo Widget"); | 743 | m_pseudo = new QWidget( m_stack, "Pseudo Widget"); |
743 | m_pseudoLayout = new QVBoxLayout( m_pseudo ); | 744 | m_pseudoLayout = new QVBoxLayout( m_pseudo ); |
744 | // toolbar | 745 | // toolbar |
745 | m_boxToolbar = new QHBox( m_pseudo ); | 746 | m_boxToolbar = new QHBox( m_pseudo ); |
746 | m_boxToolbar->setSpacing(0 ); // next to each other please | 747 | m_boxToolbar->setSpacing(0 ); // next to each other please |
747 | 748 | ||
748 | // toolbar members | 749 | // toolbar members |
749 | { | 750 | { |
750 | // location QComboBox | 751 | // location QComboBox |
751 | m_location = new QComboBox( m_boxToolbar ); | 752 | m_location = new QComboBox( m_boxToolbar ); |
752 | m_location->setEditable( TRUE ); | 753 | m_location->setEditable( TRUE ); |
753 | m_location->setDuplicatesEnabled( FALSE ); | 754 | m_location->setDuplicatesEnabled( FALSE ); |
754 | connect( m_location, SIGNAL(activated(const QString &) ), | 755 | connect( m_location, SIGNAL(activated(const QString &) ), |
755 | this, SLOT( slotLocationActivated(const QString &) ) ); | 756 | this, SLOT( slotLocationActivated(const QString &) ) ); |
756 | connect( m_location->lineEdit(), SIGNAL(returnPressed() ), | 757 | connect( m_location->lineEdit(), SIGNAL(returnPressed() ), |
757 | this, SLOT(locationComboChanged() ) ); | 758 | this, SLOT(locationComboChanged() ) ); |
758 | // UP Button | 759 | // UP Button |
759 | m_up = new QPushButton(Resource::loadIconSet("up"),"", | 760 | m_up = new QPushButton(Resource::loadIconSet("up"),"", |
760 | m_boxToolbar,"cdUpButton"); | 761 | m_boxToolbar,"cdUpButton"); |
761 | m_up->setFixedSize( QSize( 20, 20 ) ); | 762 | m_up->setFixedSize( QSize( 20, 20 ) ); |
762 | connect(m_up ,SIGNAL(clicked()),this,SLOT(cdUP() ) ); | 763 | connect(m_up ,SIGNAL(clicked()),this,SLOT(cdUP() ) ); |
763 | m_up->setFlat(TRUE); | 764 | m_up->setFlat(TRUE); |
764 | 765 | ||
765 | // Home Button | 766 | // Home Button |
766 | m_homeButton = new QPushButton(Resource::loadIconSet("home") , | 767 | m_homeButton = new QPushButton(Resource::loadIconSet("home") , |
767 | "", m_boxToolbar); | 768 | "", m_boxToolbar); |
768 | m_homeButton->setFixedSize( QSize( 20, 20 ) ); | 769 | m_homeButton->setFixedSize( QSize( 20, 20 ) ); |
769 | connect(m_homeButton,SIGNAL(clicked()),this,SLOT(slotHome() ) ); | 770 | connect(m_homeButton,SIGNAL(clicked()),this,SLOT(slotHome() ) ); |
770 | m_homeButton->setFlat(TRUE); | 771 | m_homeButton->setFlat(TRUE); |
771 | // Documents Button | 772 | // Documents Button |
772 | m_docButton = new QPushButton(Resource::loadIconSet("DocsIcon"),"", | 773 | m_docButton = new QPushButton(Resource::loadIconSet("DocsIcon"),"", |
773 | m_boxToolbar,"docsButton"); | 774 | m_boxToolbar,"docsButton"); |
774 | m_docButton->setFixedSize( QSize( 20, 20 ) ); | 775 | m_docButton->setFixedSize( QSize( 20, 20 ) ); |
775 | connect(m_homeButton,SIGNAL(clicked()),this,SLOT(slotDoc() ) ); | 776 | connect(m_homeButton,SIGNAL(clicked()),this,SLOT(slotDoc() ) ); |
776 | m_docButton->setFlat(TRUE); | 777 | m_docButton->setFlat(TRUE); |
777 | 778 | ||
778 | // Close button | 779 | // Close button |
779 | m_close = new QPushButton( Resource::loadIconSet( "close"), "", | 780 | m_close = new QPushButton( Resource::loadIconSet( "close"), "", |
780 | m_boxToolbar ); | 781 | m_boxToolbar ); |
781 | connect( m_close, SIGNAL(clicked() ), this, SIGNAL(closeMe() ) ); | 782 | connect( m_close, SIGNAL(clicked() ), this, SIGNAL(closeMe() ) ); |
782 | m_close->setFixedSize( 20, 20 ); | 783 | m_close->setFixedSize( 20, 20 ); |
783 | 784 | ||
784 | m_boxToolbar->setFixedHeight( 20 ); | 785 | m_boxToolbar->setFixedHeight( 20 ); |
785 | m_pseudoLayout->addWidget(m_boxToolbar ); | 786 | m_pseudoLayout->addWidget(m_boxToolbar ); |
786 | 787 | ||
787 | // let;s fill the Location ComboBox | 788 | // let;s fill the Location ComboBox |
788 | StorageInfo storage; | 789 | StorageInfo storage; |
789 | const QList<FileSystem> &fs = storage.fileSystems(); | 790 | const QList<FileSystem> &fs = storage.fileSystems(); |
790 | QListIterator<FileSystem> it ( fs ); | 791 | QListIterator<FileSystem> it ( fs ); |
791 | for( ; it.current(); ++it ){ | 792 | for( ; it.current(); ++it ){ |
792 | const QString disk = (*it)->name(); | 793 | const QString disk = (*it)->name(); |
793 | const QString path = (*it)->path(); | 794 | const QString path = (*it)->path(); |
794 | m_location->insertItem(path+ "<-"+disk ); | 795 | m_location->insertItem(path+ "<-"+disk ); |
795 | } | 796 | } |
796 | int count = m_location->count(); | 797 | int count = m_location->count(); |
797 | m_location->insertItem( m_currentDir ); | 798 | m_location->insertItem( m_currentDir ); |
798 | m_location->setCurrentItem( count ); | 799 | m_location->setCurrentItem( count ); |
799 | // due to the New and Close button we can not simply hide m_boxToolBar to not show it | 800 | // due to the New and Close button we can not simply hide m_boxToolBar to not show it |
800 | if( !m_shTool ){ | 801 | if( !m_shTool ){ |
801 | m_location->hide( ); | 802 | m_location->hide( ); |
802 | m_up->hide( ); | 803 | m_up->hide( ); |
803 | m_homeButton->hide( ); | 804 | m_homeButton->hide( ); |
804 | m_docButton->hide( ); | 805 | m_docButton->hide( ); |
805 | } | 806 | } |
806 | if(!m_shClose ) | 807 | if(!m_shClose ) |
807 | m_close->hide(); | 808 | m_close->hide(); |
808 | if(!m_shNew) | 809 | if(!m_shNew) |
809 | m_close->hide(); | 810 | m_close->hide(); |
810 | 811 | ||
811 | } // off toolbar | 812 | } // off toolbar |
812 | // the Main ListView | 813 | // the Main ListView |
813 | // make a QWidgetStack first so Views can share the Toolbar | 814 | // make a QWidgetStack first so Views can share the Toolbar |
814 | m_View = new QListView( m_pseudo, "Extended view"); | 815 | m_View = new QListView( m_pseudo, "Extended view"); |
815 | QPEApplication::setStylusOperation( m_View->viewport(), | 816 | QPEApplication::setStylusOperation( m_View->viewport(), |
816 | QPEApplication::RightOnHold); | 817 | QPEApplication::RightOnHold); |
817 | m_View->addColumn(" " ); | 818 | m_View->addColumn(" " ); |
818 | m_View->addColumn(tr("Name"), 135 ); | 819 | m_View->addColumn(tr("Name"), 135 ); |
819 | m_View->addColumn(tr("Size"), -1 ); | 820 | m_View->addColumn(tr("Size"), -1 ); |
820 | m_View->addColumn(tr("Date"), 60 ); | 821 | m_View->addColumn(tr("Date"), 60 ); |
821 | m_View->addColumn(tr("Mime Type"), -1 ); | 822 | m_View->addColumn(tr("Mime Type"), -1 ); |
822 | QHeader *header = m_View->header(); | 823 | QHeader *header = m_View->header(); |
823 | header->hide(); | 824 | header->hide(); |
824 | m_View->setSorting( 1 ); | 825 | m_View->setSorting( 1 ); |
825 | m_View->setAllColumnsShowFocus( TRUE ); | 826 | m_View->setAllColumnsShowFocus( TRUE ); |
826 | 827 | ||
827 | connect(m_View, SIGNAL(selectionChanged() ), | 828 | connect(m_View, SIGNAL(selectionChanged() ), |
828 | this, SLOT(slotSelectionChanged() ) ); | 829 | this, SLOT(slotSelectionChanged() ) ); |
829 | 830 | ||
830 | connect(m_View, SIGNAL(currentChanged(QListViewItem *) ), | 831 | connect(m_View, SIGNAL(currentChanged(QListViewItem *) ), |
831 | this, SLOT(slotCurrentChanged(QListViewItem * ) ) ); | 832 | this, SLOT(slotCurrentChanged(QListViewItem * ) ) ); |
832 | 833 | ||
833 | connect(m_View, SIGNAL(mouseButtonClicked(int, QListViewItem*, const QPoint &, int) ), | 834 | connect(m_View, SIGNAL(mouseButtonClicked(int, QListViewItem*, const QPoint &, int) ), |
834 | this, SLOT(slotClicked( int, QListViewItem *, const QPoint &, int) ) ); | 835 | this, SLOT(slotClicked( int, QListViewItem *, const QPoint &, int) ) ); |
835 | 836 | ||
836 | connect(m_View, SIGNAL(mouseButtonPressed(int, QListViewItem *, const QPoint &, int )), | 837 | connect(m_View, SIGNAL(mouseButtonPressed(int, QListViewItem *, const QPoint &, int )), |
837 | this, SLOT(slotRightButton(int, QListViewItem *, const QPoint &, int ) ) ); | 838 | this, SLOT(slotRightButton(int, QListViewItem *, const QPoint &, int ) ) ); |
838 | 839 | ||
839 | m_pseudoLayout->addWidget( m_View, 288 ); | 840 | m_pseudoLayout->addWidget( m_View, 288 ); |
840 | m_stack->addWidget( m_pseudo, EXTENDED ); | 841 | m_stack->addWidget( m_pseudo, EXTENDED ); |
841 | } | 842 | } |
842 | } | 843 | } |
843 | void OFileSelector::initializePerm() | 844 | void OFileSelector::initializePerm() |
844 | { | 845 | { |
845 | if( m_checkPerm == 0 ){ | 846 | if( m_checkPerm == 0 ){ |
846 | m_checkPerm = new QCheckBox(tr("Ser Permission"), this, "perm"); | 847 | m_checkPerm = new QCheckBox(tr("Ser Permission"), this, "perm"); |
847 | m_checkPerm->setChecked( false ); | 848 | m_checkPerm->setChecked( false ); |
848 | m_lay->addWidget( m_checkPerm ); | 849 | m_lay->addWidget( m_checkPerm ); |
849 | 850 | ||
850 | } | 851 | } |
851 | } | 852 | } |
852 | void OFileSelector::initPics() | 853 | void OFileSelector::initPics() |
853 | { | 854 | { |
854 | m_pixmaps = new QMap<QString,QPixmap>; | 855 | m_pixmaps = new QMap<QString,QPixmap>; |
855 | QPixmap pm = Resource::loadPixmap( "folder" ); | 856 | QPixmap pm = Resource::loadPixmap( "folder" ); |
856 | QPixmap lnk = Resource::loadPixmap( "opie/symlink" ); | 857 | QPixmap lnk = Resource::loadPixmap( "opie/symlink" ); |
857 | QPainter painter( &pm ); | 858 | QPainter painter( &pm ); |
858 | painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk ); | 859 | painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk ); |
859 | pm.setMask( pm.createHeuristicMask( FALSE ) ); | 860 | pm.setMask( pm.createHeuristicMask( FALSE ) ); |
860 | m_pixmaps->insert("dirsymlink", pm ); | 861 | m_pixmaps->insert("dirsymlink", pm ); |
861 | 862 | ||
862 | QPixmap pm2 = Resource::loadPixmap( "lockedfolder" ); | 863 | QPixmap pm2 = Resource::loadPixmap( "lockedfolder" ); |
863 | QPainter pen(&pm2 ); | 864 | QPainter pen(&pm2 ); |
864 | pen.drawPixmap(pm2.width()-lnk.width(), pm2.height()-lnk.height(), lnk ); | 865 | pen.drawPixmap(pm2.width()-lnk.width(), pm2.height()-lnk.height(), lnk ); |
865 | pm2.setMask( pm2.createHeuristicMask( FALSE ) ); | 866 | pm2.setMask( pm2.createHeuristicMask( FALSE ) ); |
866 | m_pixmaps->insert("symlinkedlocked", pm2 ); | 867 | m_pixmaps->insert("symlinkedlocked", pm2 ); |
867 | } | 868 | } |
868 | // if a mime complies with the m_mimeCheck->currentItem | 869 | // if a mime complies with the m_mimeCheck->currentItem |
869 | bool OFileSelector::compliesMime( const QString &path, const QString &mime ) | 870 | bool OFileSelector::compliesMime( const QString &path, const QString &mime ) |
870 | { | 871 | { |
871 | if( mime == "All" ) | 872 | if( mime == "All" ) |
872 | return true; | 873 | return true; |
873 | MimeType type( path ); | 874 | MimeType type( path ); |
874 | if( type.id() == mime ) | 875 | if( type.id() == mime ) |
875 | return true; | 876 | return true; |
876 | return false; | 877 | return false; |
877 | } | 878 | } |
878 | 879 | ||
879 | void OFileSelector::slotFileSelected( const QString &string ) | 880 | void OFileSelector::slotFileSelected( const QString &string ) |
880 | { | 881 | { |
881 | if( m_shLne ) | 882 | if( m_shLne ) |
882 | m_edit->setText( string ); | 883 | m_edit->setText( string ); |
883 | emit fileSelected( string ); | 884 | emit fileSelected( string ); |
884 | } | 885 | } |
885 | void OFileSelector::slotFileBridgeSelected( const DocLnk &lnk ) | 886 | void OFileSelector::slotFileBridgeSelected( const DocLnk &lnk ) |
886 | { | 887 | { |
887 | slotFileSelected( lnk.name() ); | 888 | slotFileSelected( lnk.name() ); |
888 | // emit fileSelected( lnk ); | 889 | // emit fileSelected( lnk ); |
889 | } | 890 | } |
890 | void OFileSelector::slotSelectionChanged() | 891 | void OFileSelector::slotSelectionChanged() |
891 | { | 892 | { |
892 | 893 | ||
893 | } | 894 | } |
894 | void OFileSelector::slotCurrentChanged(QListViewItem* item ) | 895 | void OFileSelector::slotCurrentChanged(QListViewItem* item ) |
895 | { | 896 | { |
896 | if( item == 0 ) | 897 | if( item == 0 ) |
897 | return; | 898 | return; |
898 | if( m_selector == EXTENDED || m_selector == EXTENDED_ALL ) { | 899 | if( m_selector == EXTENDED || m_selector == EXTENDED_ALL ) { |
899 | OFileSelectorItem *sel = (OFileSelectorItem*) item; // start to use the C++ casts ;) | 900 | OFileSelectorItem *sel = (OFileSelectorItem*) item; // start to use the C++ casts ;) |
900 | if(!sel->isDir() ){ | 901 | if(!sel->isDir() ){ |
901 | if( m_shLne ) | 902 | if( m_shLne ) |
902 | m_edit->setText( sel->text(1) ); | 903 | m_edit->setText( sel->text(1) ); |
903 | } | 904 | } |
904 | } | 905 | } |
905 | } | 906 | } |
906 | void OFileSelector::slotClicked( int button, QListViewItem *item, const QPoint &, int) | 907 | void OFileSelector::slotClicked( int button, QListViewItem *item, const QPoint &, int) |
907 | { | 908 | { |
908 | if ( item == 0 ) | 909 | if ( item == 0 ) |
909 | return; | 910 | return; |
910 | 911 | ||
911 | if( button != Qt::LeftButton ) | 912 | if( button != Qt::LeftButton ) |
912 | return; | 913 | return; |
913 | 914 | ||
914 | switch( m_selector ){ | 915 | switch( m_selector ){ |
915 | default: | 916 | default: |
916 | break; | 917 | break; |
917 | case EXTENDED: // fall through | 918 | case EXTENDED: // fall through |
918 | case EXTENDED_ALL:{ | 919 | case EXTENDED_ALL:{ |
919 | OFileSelectorItem *sel = (OFileSelectorItem*)item; | 920 | OFileSelectorItem *sel = (OFileSelectorItem*)item; |
920 | if(!sel->isLocked() ){ | 921 | if(!sel->isLocked() ){ |
921 | QStringList str = QStringList::split("->", sel->text(1) ); | 922 | QStringList str = QStringList::split("->", sel->text(1) ); |
922 | if( sel->isDir() ){ | 923 | if( sel->isDir() ){ |
923 | cd( sel->directory() + "/" + str[0].stripWhiteSpace() ); | 924 | cd( sel->directory() + "/" + str[0].stripWhiteSpace() ); |
924 | // if MODE Dir m_shLne set the Text | 925 | // if MODE Dir m_shLne set the Text |
925 | }else{ | 926 | }else{ |
926 | if( m_shLne ) | 927 | if( m_shLne ) |
927 | m_edit->setText( str[0].stripWhiteSpace() ); | 928 | m_edit->setText( str[0].stripWhiteSpace() ); |
928 | emit fileSelected( sel->directory() + "/" + str[0].stripWhiteSpace() ); | 929 | emit fileSelected( sel->directory() + "/" + str[0].stripWhiteSpace() ); |
929 | } | 930 | } |
930 | } | 931 | } |
931 | break; | 932 | break; |
932 | } | 933 | } |
933 | } | 934 | } |
934 | } | 935 | } |
935 | void OFileSelector::slotRightButton(int button, QListViewItem *item, const QPoint &, int ) | 936 | void OFileSelector::slotRightButton(int button, QListViewItem *item, const QPoint &, int ) |
936 | { | 937 | { |
937 | if( item == 0 ) | 938 | if( item == 0 ) |
938 | return; | 939 | return; |
939 | 940 | ||
940 | if( button != Qt::RightButton ) | 941 | if( button != Qt::RightButton ) |
941 | return; | 942 | return; |
942 | slotContextMenu( item ); | 943 | slotContextMenu( item ); |
943 | } | 944 | } |
944 | void OFileSelector::slotContextMenu( QListViewItem *item) | 945 | void OFileSelector::slotContextMenu( QListViewItem *item) |
945 | { | 946 | { |
946 | 947 | ||
947 | } | 948 | } |
948 | void OFileSelector::slotChangedDir() | 949 | void OFileSelector::slotChangedDir() |
949 | { | 950 | { |
950 | OFileSelectorItem *sel = (OFileSelectorItem*)m_View->currentItem(); | 951 | OFileSelectorItem *sel = (OFileSelectorItem*)m_View->currentItem(); |
951 | if(sel->isDir() ){ | 952 | if(sel->isDir() ){ |
952 | QStringList str = QStringList::split("->", sel->text(1) ); | 953 | QStringList str = QStringList::split("->", sel->text(1) ); |
953 | cd( sel->directory() + "/" + str[0].stripWhiteSpace() ); | 954 | cd( sel->directory() + "/" + str[0].stripWhiteSpace() ); |
954 | } | 955 | } |
955 | } | 956 | } |
956 | void OFileSelector::slotOpen() | 957 | void OFileSelector::slotOpen() |
957 | { | 958 | { |
958 | OFileSelectorItem *sel = (OFileSelectorItem*)m_View->currentItem(); | 959 | OFileSelectorItem *sel = (OFileSelectorItem*)m_View->currentItem(); |
959 | if(!sel->isDir() ){ | 960 | if(!sel->isDir() ){ |
960 | QStringList str = QStringList::split("->", sel->text(1) ); | 961 | QStringList str = QStringList::split("->", sel->text(1) ); |
961 | slotFileSelected( sel->directory() +"/" +str[0].stripWhiteSpace() ); | 962 | slotFileSelected( sel->directory() +"/" +str[0].stripWhiteSpace() ); |
962 | } | 963 | } |
963 | } | 964 | } |
964 | void OFileSelector::slotRescan() | 965 | void OFileSelector::slotRescan() |
965 | { | 966 | { |
966 | 967 | ||
967 | } | 968 | } |
968 | void OFileSelector::slotRename() | 969 | void OFileSelector::slotRename() |
969 | { | 970 | { |
970 | reparse(); | 971 | reparse(); |
971 | } | 972 | } |
972 | void OFileSelector::slotDelete() | 973 | void OFileSelector::slotDelete() |
973 | { | 974 | { |
974 | OFileSelectorItem *sel = (OFileSelectorItem*)m_View->currentItem(); | 975 | OFileSelectorItem *sel = (OFileSelectorItem*)m_View->currentItem(); |
975 | QStringList list = QStringList::split("->", sel->text(1) ); | 976 | QStringList list = QStringList::split("->", sel->text(1) ); |
976 | if( sel->isDir() ){ | 977 | if( sel->isDir() ){ |
977 | QString str = QString::fromLatin1("rm -rf ") + sel->directory() +"/" + list[0]; //better safe than sorry | 978 | QString str = QString::fromLatin1("rm -rf ") + sel->directory() +"/" + list[0]; //better safe than sorry |
978 | switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+list[0], | 979 | switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+list[0], |
979 | tr("Yes"),tr("No"),0,1,1) ) { | 980 | tr("Yes"),tr("No"),0,1,1) ) { |
980 | case 0: | 981 | case 0: |
981 | ::system(str.utf8().data() ); | 982 | ::system(str.utf8().data() ); |
982 | break; | 983 | break; |
983 | } | 984 | } |
984 | } else { | 985 | } else { |
985 | QFile::remove( list[0] ); | 986 | QFile::remove( list[0] ); |
986 | } | 987 | } |
987 | m_View->takeItem( sel ); | 988 | m_View->takeItem( sel ); |
988 | delete sel; | 989 | delete sel; |
989 | } | 990 | } |
990 | void OFileSelector::cdUP() | 991 | void OFileSelector::cdUP() |
991 | { | 992 | { |
992 | QDir dir( m_currentDir ); | 993 | QDir dir( m_currentDir ); |
993 | dir.cdUp(); | 994 | dir.cdUp(); |
994 | if(dir.exists() ){ | 995 | if(dir.exists() ){ |
995 | m_currentDir = dir.absPath(); | 996 | m_currentDir = dir.absPath(); |
996 | reparse(); | 997 | reparse(); |
997 | int count = m_location->count(); | 998 | int count = m_location->count(); |
998 | slotInsertLocationPath( m_currentDir, count); | 999 | slotInsertLocationPath( m_currentDir, count); |
999 | m_location->setCurrentItem( indexByString( m_location, m_currentDir)); | 1000 | m_location->setCurrentItem( indexByString( m_location, m_currentDir)); |
1000 | //this wont work in all instances | 1001 | //this wont work in all instances |
1001 | // FIXME | 1002 | // FIXME |
1002 | } | 1003 | } |
1003 | } | 1004 | } |
1004 | void OFileSelector::slotHome() | 1005 | void OFileSelector::slotHome() |
1005 | { | 1006 | { |
1006 | cd(QDir::homeDirPath() ); | 1007 | cd(QDir::homeDirPath() ); |
1007 | } | 1008 | } |
1008 | void OFileSelector::slotDoc() | 1009 | void OFileSelector::slotDoc() |
1009 | { | 1010 | { |
1010 | cd(QPEApplication::documentDir() ); | 1011 | cd(QPEApplication::documentDir() ); |
1011 | } | 1012 | } |
1012 | void OFileSelector::slotNavigate( ) | 1013 | void OFileSelector::slotNavigate( ) |
1013 | { | 1014 | { |
1014 | 1015 | ||
1015 | } | 1016 | } |
1016 | // fill the View with life | 1017 | // fill the View with life |
1017 | void OFileSelector::reparse() | 1018 | void OFileSelector::reparse() |
1018 | { | 1019 | { |
1019 | if( m_selector == NORMAL ) | 1020 | if( m_selector == NORMAL ) |
1020 | return; | 1021 | return; |
1021 | if( m_selector == EXTENDED || m_selector == EXTENDED_ALL ) | 1022 | if( m_selector == EXTENDED || m_selector == EXTENDED_ALL ) |
1022 | m_View->clear(); | 1023 | m_View->clear(); |
1023 | else // custom view | 1024 | else // custom view |
1024 | ; // currentView()->clear(); | 1025 | ; // currentView()->clear(); |
1025 | if( m_shChooser) | 1026 | if( m_shChooser) |
1026 | qWarning("reparse %s", m_mimeCheck->currentText().latin1() ); | 1027 | qWarning("reparse %s", m_mimeCheck->currentText().latin1() ); |
1027 | 1028 | ||
1028 | QString currentMimeType; | 1029 | QString currentMimeType; |
1029 | // let's update the mimetype | 1030 | // let's update the mimetype |
1030 | if( m_autoMime ){ | 1031 | if( m_autoMime ){ |
1031 | m_mimetypes.clear(); | 1032 | m_mimetypes.clear(); |
1032 | // ok we can change mimetype so we need to be able to give a selection | 1033 | // ok we can change mimetype so we need to be able to give a selection |
1033 | if( m_shChooser ) { | 1034 | if( m_shChooser ) { |
1034 | currentMimeType = m_mimeCheck->currentText(); | 1035 | currentMimeType = m_mimeCheck->currentText(); |
1035 | m_mimeCheck->clear(); | 1036 | m_mimeCheck->clear(); |
1036 | 1037 | ||
1037 | // let's find possible mimetypes | 1038 | // let's find possible mimetypes |
1038 | QDir dir( m_currentDir ); | 1039 | QDir dir( m_currentDir ); |
1039 | dir.setFilter( QDir::Files | QDir::Readable ); | 1040 | dir.setFilter( QDir::Files | QDir::Readable ); |
1040 | dir.setSorting( QDir::Size ); | 1041 | dir.setSorting( QDir::Size ); |
1041 | const QFileInfoList *list = dir.entryInfoList(); | 1042 | const QFileInfoList *list = dir.entryInfoList(); |
1042 | QFileInfoListIterator it( *list ); | 1043 | QFileInfoListIterator it( *list ); |
1043 | QFileInfo *fi; | 1044 | QFileInfo *fi; |
1044 | while( (fi=it.current() ) ) { | 1045 | while( (fi=it.current() ) ) { |
1045 | if( fi->extension() == QString::fromLatin1("desktop") ){ | 1046 | if( fi->extension() == QString::fromLatin1("desktop") ){ |
1046 | ++it; | 1047 | ++it; |
1047 | continue; | 1048 | continue; |
1048 | } | 1049 | } |
1049 | MimeType type( fi->absFilePath() ); | 1050 | MimeType type( fi->absFilePath() ); |
1050 | if( !m_mimetypes.contains( type.id() ) ){ | 1051 | if( !m_mimetypes.contains( type.id() ) ){ |
1051 | //qWarning("Type %s", type.id().latin1() ); | 1052 | //qWarning("Type %s", type.id().latin1() ); |
1052 | m_mimetypes.append( type.id() ); | 1053 | m_mimetypes.append( type.id() ); |
1053 | } | 1054 | } |
1054 | 1055 | ||
1055 | ++it; | 1056 | ++it; |
1056 | } | 1057 | } |
1057 | // add them to the chooser | 1058 | // add them to the chooser |
1058 | m_mimeCheck->insertItem( tr("All") ); | 1059 | m_mimeCheck->insertItem( tr("All") ); |
1059 | m_mimeCheck->insertStringList( m_mimetypes ); | 1060 | m_mimeCheck->insertStringList( m_mimetypes ); |
1060 | m_mimeCheck->setCurrentItem( indexByString( m_mimeCheck, currentMimeType ) ); | 1061 | m_mimeCheck->setCurrentItem( indexByString( m_mimeCheck, currentMimeType ) ); |
1061 | currentMimeType = m_mimeCheck->currentText(); | 1062 | currentMimeType = m_mimeCheck->currentText(); |
1062 | } | 1063 | } |
1063 | }else { // no autoMime | 1064 | }else { // no autoMime |
1064 | currentMimeType = m_mimetypes.join(";"); | 1065 | currentMimeType = m_mimetypes.join(";"); |
1065 | if( m_shChooser ){ | 1066 | if( m_shChooser ){ |
1066 | m_mimeCheck->clear(); | 1067 | m_mimeCheck->clear(); |
1067 | m_mimeCheck->insertItem(m_mimetypes.join(",") ); | 1068 | m_mimeCheck->insertItem(m_mimetypes.join(",") ); |
1068 | } | 1069 | } |
1069 | } | 1070 | } |
1070 | // now we got our mimetypes we can add the files | 1071 | // now we got our mimetypes we can add the files |
1071 | 1072 | ||
1072 | QDir dir( m_currentDir ); | 1073 | QDir dir( m_currentDir ); |
1073 | 1074 | ||
1074 | int sort; | 1075 | int sort; |
1075 | if ( m_case ) | 1076 | if ( m_case ) |
1076 | sort = (QDir::IgnoreCase | QDir::Name | QDir::DirsFirst | QDir::Reversed); | 1077 | sort = (QDir::IgnoreCase | QDir::Name | QDir::DirsFirst | QDir::Reversed); |
1077 | else | 1078 | else |
1078 | sort = (QDir::Name | QDir::DirsFirst | QDir::Reversed); | 1079 | sort = (QDir::Name | QDir::DirsFirst | QDir::Reversed); |
1079 | dir.setSorting( sort ); | 1080 | dir.setSorting( sort ); |
1080 | 1081 | ||
1081 | int filter; | 1082 | int filter; |
1082 | if( m_selector == EXTENDED_ALL /*|| m_selector ==CUSTOM_ALL */ ){ | 1083 | if( m_selector == EXTENDED_ALL /*|| m_selector ==CUSTOM_ALL */ ){ |
1083 | filter = QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All; | 1084 | filter = QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All; |
1084 | }else | 1085 | }else |
1085 | filter = QDir::Files | QDir::Dirs | QDir::All; | 1086 | filter = QDir::Files | QDir::Dirs | QDir::All; |
1086 | dir.setFilter( filter ); | 1087 | dir.setFilter( filter ); |
1087 | 1088 | ||
1088 | // now go through all files | 1089 | // now go through all files |
1089 | const QFileInfoList *list = dir.entryInfoList(); | 1090 | const QFileInfoList *list = dir.entryInfoList(); |
1090 | QFileInfoListIterator it( *list ); | 1091 | QFileInfoListIterator it( *list ); |
1091 | QFileInfo *fi; | 1092 | QFileInfo *fi; |
1092 | while( (fi=it.current() ) ){ | 1093 | while( (fi=it.current() ) ){ |
1093 | //qWarning("True and only" ); | 1094 | //qWarning("True and only" ); |
1094 | if( fi->fileName() == QString::fromLatin1("..") || fi->fileName() == QString::fromLatin1(".") ){ | 1095 | if( fi->fileName() == QString::fromLatin1("..") || fi->fileName() == QString::fromLatin1(".") ){ |
1095 | //qWarning(".. or ." ); | 1096 | //qWarning(".. or ." ); |
1096 | ++it; | 1097 | ++it; |
1097 | continue; | 1098 | continue; |
1098 | } | 1099 | } |
1099 | if( fi->isSymLink() ){ | 1100 | if( fi->isSymLink() ){ |
1100 | QString file = fi->dirPath( true ) + "/" + fi->readLink(); | 1101 | QString file = fi->dirPath( true ) + "/" + fi->readLink(); |
1101 | for( int i = 0; i<=4; i++) { // 5 tries to prevent dos | 1102 | for( int i = 0; i<=4; i++) { // 5 tries to prevent dos |
1102 | QFileInfo info( file ); | 1103 | QFileInfo info( file ); |
1103 | if( !info.exists() ){ | 1104 | if( !info.exists() ){ |
1104 | addSymlink( currentMimeType, fi, TRUE ); | 1105 | addSymlink( currentMimeType, fi, TRUE ); |
1105 | break; | 1106 | break; |
1106 | }else if( info.isDir() ){ | 1107 | }else if( info.isDir() ){ |
1107 | addDir( currentMimeType, fi, TRUE ); | 1108 | addDir( currentMimeType, fi, TRUE ); |
1108 | break; | 1109 | break; |
1109 | }else if( info.isFile() ){ | 1110 | }else if( info.isFile() ){ |
1110 | addFile( currentMimeType, fi, TRUE ); | 1111 | addFile( currentMimeType, fi, TRUE ); |
1111 | break; | 1112 | break; |
1112 | }else if( info.isSymLink() ){ | 1113 | }else if( info.isSymLink() ){ |
1113 | file = info.dirPath(true ) + "/" + info.readLink() ; | 1114 | file = info.dirPath(true ) + "/" + info.readLink() ; |
1114 | break; | 1115 | break; |
1115 | }else if( i == 4){ | 1116 | }else if( i == 4){ |
1116 | addSymlink( currentMimeType, fi ); | 1117 | addSymlink( currentMimeType, fi ); |
1117 | } | 1118 | } |
1118 | } // off for loop | 1119 | } // off for loop |
1119 | }else if( fi->isDir() ){ | 1120 | }else if( fi->isDir() ){ |
1120 | addDir( currentMimeType, fi ); | 1121 | addDir( currentMimeType, fi ); |
1121 | }else if( fi->isFile() ){ | 1122 | }else if( fi->isFile() ){ |
1122 | addFile( currentMimeType, fi ); | 1123 | addFile( currentMimeType, fi ); |
1123 | } | 1124 | } |
1124 | //qWarning( "%s", fi->fileName().latin1() ); | 1125 | //qWarning( "%s", fi->fileName().latin1() ); |
1125 | ++it; | 1126 | ++it; |
1126 | } // of while loop | 1127 | } // of while loop |
1127 | m_View->sort(); | 1128 | m_View->sort(); |
1128 | if( m_shTool ){ | 1129 | if( m_shTool ){ |
1129 | m_location->insertItem( m_currentDir ); | 1130 | m_location->insertItem( m_currentDir ); |
1130 | 1131 | ||
1131 | } | 1132 | } |
1132 | // reenable painting and updates | 1133 | // reenable painting and updates |
1133 | } | 1134 | } |