author | zecke <zecke> | 2004-11-14 17:40:57 (UTC) |
---|---|---|
committer | zecke <zecke> | 2004-11-14 17:40:57 (UTC) |
commit | 61dc3dd61685a1bfc6aba33ad81f8348bb992a11 (patch) (unidiff) | |
tree | 74994977ad38557c91a2f16975a9d8798c3365ec | |
parent | 9507723db1df320547a0cb660b9b923d41438fdf (diff) | |
download | opie-61dc3dd61685a1bfc6aba33ad81f8348bb992a11.zip opie-61dc3dd61685a1bfc6aba33ad81f8348bb992a11.tar.gz opie-61dc3dd61685a1bfc6aba33ad81f8348bb992a11.tar.bz2 |
-Fix bug in OFileSelector ListView spotted by hrw
to sort the 'size' column according their 'Number'-Halbordnung
and not by string comparsion
-rw-r--r-- | libopie2/opieui/fileselector/ofileselector.cpp | 15 | ||||
-rw-r--r-- | libopie2/opieui/fileselector/ofileselector_p.h | 4 |
2 files changed, 11 insertions, 8 deletions
diff --git a/libopie2/opieui/fileselector/ofileselector.cpp b/libopie2/opieui/fileselector/ofileselector.cpp index 01a51a2..718f743 100644 --- a/libopie2/opieui/fileselector/ofileselector.cpp +++ b/libopie2/opieui/fileselector/ofileselector.cpp | |||
@@ -198,149 +198,152 @@ void ODocumentFileView::reread() | |||
198 | 198 | ||
199 | m_selector->setNewVisible( showNew() ); | 199 | m_selector->setNewVisible( showNew() ); |
200 | m_selector->setCloseVisible( showClose() ); | 200 | m_selector->setCloseVisible( showClose() ); |
201 | m_selector->filter = currentMimeType().join(";"); | 201 | m_selector->filter = currentMimeType().join(";"); |
202 | m_selector->reread(); | 202 | m_selector->reread(); |
203 | } | 203 | } |
204 | 204 | ||
205 | int ODocumentFileView::fileCount()const | 205 | int ODocumentFileView::fileCount()const |
206 | { | 206 | { |
207 | if (!m_selector) | 207 | if (!m_selector) |
208 | return -1; | 208 | return -1; |
209 | 209 | ||
210 | return m_selector->fileCount(); | 210 | return m_selector->fileCount(); |
211 | } | 211 | } |
212 | 212 | ||
213 | DocLnk ODocumentFileView::selectedDocument()const | 213 | DocLnk ODocumentFileView::selectedDocument()const |
214 | { | 214 | { |
215 | if (!m_selector) | 215 | if (!m_selector) |
216 | return DocLnk(); | 216 | return DocLnk(); |
217 | 217 | ||
218 | return m_selector->selectedDocument(); | 218 | return m_selector->selectedDocument(); |
219 | } | 219 | } |
220 | 220 | ||
221 | QWidget* ODocumentFileView::widget( QWidget* parent ) | 221 | QWidget* ODocumentFileView::widget( QWidget* parent ) |
222 | { | 222 | { |
223 | if (!m_selector ) | 223 | if (!m_selector ) |
224 | { | 224 | { |
225 | m_selector = new FileSelector(currentMimeType().join(";"), parent, "fileselector", showNew(), showClose() ); | 225 | m_selector = new FileSelector(currentMimeType().join(";"), parent, "fileselector", showNew(), showClose() ); |
226 | QObject::connect(m_selector, SIGNAL(fileSelected(const DocLnk&) ), | 226 | QObject::connect(m_selector, SIGNAL(fileSelected(const DocLnk&) ), |
227 | selector(), SLOT(slotDocLnkBridge(const DocLnk&) ) ); | 227 | selector(), SLOT(slotDocLnkBridge(const DocLnk&) ) ); |
228 | QObject::connect(m_selector, SIGNAL(closeMe() ), | 228 | QObject::connect(m_selector, SIGNAL(closeMe() ), |
229 | selector(), SIGNAL(closeMe() ) ); | 229 | selector(), SIGNAL(closeMe() ) ); |
230 | QObject::connect(m_selector, SIGNAL(newSelected(const DocLnk&) ), | 230 | QObject::connect(m_selector, SIGNAL(newSelected(const DocLnk&) ), |
231 | selector(), SIGNAL(newSelected(const DocLnk&) ) ); | 231 | selector(), SIGNAL(newSelected(const DocLnk&) ) ); |
232 | } | 232 | } |
233 | 233 | ||
234 | return m_selector; | 234 | return m_selector; |
235 | } | 235 | } |
236 | 236 | ||
237 | /* | 237 | /* |
238 | * This is the file system view used | 238 | * This is the file system view used |
239 | * we use a QListView + QListViewItems for it | 239 | * we use a QListView + QListViewItems for it |
240 | */ | 240 | */ |
241 | 241 | ||
242 | OFileSelectorItem::OFileSelectorItem( QListView* view, const QPixmap& pixmap, | 242 | OFileSelectorItem::OFileSelectorItem( QListView* view, const QPixmap& pixmap, |
243 | const QString& path, const QString& date, | 243 | const QString& path, const QString& date, |
244 | const QString& size, const QString& dir, | 244 | const QString& size, const QString& dir, |
245 | bool isLocked, bool isDir ) | 245 | bool isLocked, bool isDir ) |
246 | : QListViewItem( view ) | 246 | : QListViewItem( view ), m_dir(dir), m_isDir(isDir), m_locked(isLocked) |
247 | { | 247 | { |
248 | setPixmap(0, pixmap ); | 248 | setPixmap(0, pixmap ); |
249 | setText(1, path ); | 249 | setText(1, path ); |
250 | setText(2, size ); | 250 | setText(2, size ); |
251 | setText(3, date ); | 251 | setText(3, date ); |
252 | m_isDir = isDir; | ||
253 | m_dir = dir; | ||
254 | m_locked = isLocked; | ||
255 | } | 252 | } |
256 | 253 | ||
257 | OFileSelectorItem::~OFileSelectorItem() | 254 | OFileSelectorItem::~OFileSelectorItem() |
258 | { | 255 | { |
259 | } | 256 | } |
260 | 257 | ||
261 | bool OFileSelectorItem::isLocked()const | 258 | bool OFileSelectorItem::isLocked()const |
262 | { | 259 | { |
263 | return m_locked; | 260 | return m_locked; |
264 | } | 261 | } |
265 | 262 | ||
266 | QString OFileSelectorItem::directory()const | 263 | QString OFileSelectorItem::directory()const |
267 | { | 264 | { |
268 | return m_dir; | 265 | return m_dir; |
269 | } | 266 | } |
270 | 267 | ||
271 | bool OFileSelectorItem::isDir()const | 268 | bool OFileSelectorItem::isDir()const |
272 | { | 269 | { |
273 | return m_isDir; | 270 | return m_isDir; |
274 | } | 271 | } |
275 | 272 | ||
276 | QString OFileSelectorItem::path()const | 273 | QString OFileSelectorItem::path()const |
277 | { | 274 | { |
278 | return text( 1 ); | 275 | return text( 1 ); |
279 | } | 276 | } |
280 | 277 | ||
281 | QString OFileSelectorItem::key( int id, bool )const | 278 | QString OFileSelectorItem::key( int id, bool )const |
282 | { | 279 | { |
283 | QString ke; | 280 | QString ke; |
281 | |||
282 | /* | ||
283 | * id = 0 ||id == 1 : Sort By Name but Directories at Top | ||
284 | * id = 2 : Sort By Size: Prepend '0' to the key | ||
285 | */ | ||
284 | if( id == 0 || id == 1 ) | 286 | if( id == 0 || id == 1 ) |
285 | { // name | 287 | { // name |
286 | if( m_isDir ) | 288 | if( m_isDir ) |
287 | { | 289 | { |
288 | ke.append("0" ); | 290 | ke.append("0" ); |
289 | ke.append( text(1) ); | 291 | ke.append( text(1) ); |
290 | } | 292 | } |
291 | else | 293 | else |
292 | { | 294 | { |
293 | ke.append("1" ); | 295 | ke.append("1" ); |
294 | ke.append( text(1) ); | 296 | ke.append( text(1) ); |
295 | } | 297 | } |
296 | return ke; | 298 | return ke; |
297 | } | 299 | }else if(id == 2) { |
298 | else | 300 | return text(2).rightJustify(20, '0'); |
301 | }else | ||
299 | return text( id ); | 302 | return text( id ); |
300 | 303 | ||
301 | } | 304 | } |
302 | 305 | ||
303 | OFileViewFileListView::OFileViewFileListView( QWidget* parent, const QString& startDir, OFileSelector* sel) | 306 | OFileViewFileListView::OFileViewFileListView( QWidget* parent, const QString& startDir, OFileSelector* sel) |
304 | :QWidget( parent ), m_sel( sel ) | 307 | :QWidget( parent ), m_sel( sel ) |
305 | { | 308 | { |
306 | m_all = false; | 309 | m_all = false; |
307 | QVBoxLayout* lay = new QVBoxLayout( this ); | 310 | QVBoxLayout* lay = new QVBoxLayout( this ); |
308 | m_currentDir = startDir; | 311 | m_currentDir = startDir; |
309 | 312 | ||
310 | /* | 313 | /* |
311 | * now we add a special bar | 314 | * now we add a special bar |
312 | * One Button For Up | 315 | * One Button For Up |
313 | * Home | 316 | * Home |
314 | * Doc | 317 | * Doc |
315 | * And a dropdown menu with FileSystems | 318 | * And a dropdown menu with FileSystems |
316 | * FUTURE: one to change dir with lineedit | 319 | * FUTURE: one to change dir with lineedit |
317 | * Bookmarks | 320 | * Bookmarks |
318 | * Create Dir | 321 | * Create Dir |
319 | */ | 322 | */ |
320 | QHBox* box = new QHBox(this ); | 323 | QHBox* box = new QHBox(this ); |
321 | box->setBackgroundMode( PaletteButton ); | 324 | box->setBackgroundMode( PaletteButton ); |
322 | box->setSpacing( 0 ); | 325 | box->setSpacing( 0 ); |
323 | 326 | ||
324 | QToolButton *btn = new QToolButton( box ); | 327 | QToolButton *btn = new QToolButton( box ); |
325 | btn->setIconSet( Resource::loadIconSet("up") ); | 328 | btn->setIconSet( Resource::loadIconSet("up") ); |
326 | connect(btn, SIGNAL(clicked() ), | 329 | connect(btn, SIGNAL(clicked() ), |
327 | this, SLOT( cdUP() ) ); | 330 | this, SLOT( cdUP() ) ); |
328 | 331 | ||
329 | btn = new QToolButton( box ); | 332 | btn = new QToolButton( box ); |
330 | btn->setIconSet( Resource::loadIconSet("home") ); | 333 | btn->setIconSet( Resource::loadIconSet("home") ); |
331 | connect(btn, SIGNAL(clicked() ), | 334 | connect(btn, SIGNAL(clicked() ), |
332 | this, SLOT( cdHome() ) ); | 335 | this, SLOT( cdHome() ) ); |
333 | 336 | ||
334 | btn = new QToolButton( box ); | 337 | btn = new QToolButton( box ); |
335 | btn->setIconSet( Resource::loadIconSet("DocsIcon") ); | 338 | btn->setIconSet( Resource::loadIconSet("DocsIcon") ); |
336 | connect(btn, SIGNAL(clicked() ), | 339 | connect(btn, SIGNAL(clicked() ), |
337 | this, SLOT(cdDoc() ) ); | 340 | this, SLOT(cdDoc() ) ); |
338 | 341 | ||
339 | m_btnNew = new QToolButton( box ); | 342 | m_btnNew = new QToolButton( box ); |
340 | m_btnNew->setIconSet( Resource::loadIconSet("new") ); | 343 | m_btnNew->setIconSet( Resource::loadIconSet("new") ); |
341 | connect(m_btnNew, SIGNAL(clicked() ), | 344 | connect(m_btnNew, SIGNAL(clicked() ), |
342 | this, SLOT(slotNew() ) ); | 345 | this, SLOT(slotNew() ) ); |
343 | 346 | ||
344 | 347 | ||
345 | m_btnClose = new QToolButton( box ); | 348 | m_btnClose = new QToolButton( box ); |
346 | m_btnClose->setIconSet( Resource::loadIconSet("close") ); | 349 | m_btnClose->setIconSet( Resource::loadIconSet("close") ); |
diff --git a/libopie2/opieui/fileselector/ofileselector_p.h b/libopie2/opieui/fileselector/ofileselector_p.h index 790d2bd..15db916 100644 --- a/libopie2/opieui/fileselector/ofileselector_p.h +++ b/libopie2/opieui/fileselector/ofileselector_p.h | |||
@@ -92,99 +92,99 @@ protected: | |||
92 | void fileSelected( const DocLnk& ); | 92 | void fileSelected( const DocLnk& ); |
93 | void setCurrentFileName( const QString& ); | 93 | void setCurrentFileName( const QString& ); |
94 | QString currentFileName()const; | 94 | QString currentFileName()const; |
95 | 95 | ||
96 | private: | 96 | private: |
97 | QString m_name; | 97 | QString m_name; |
98 | OFileSelector* m_selector; | 98 | OFileSelector* m_selector; |
99 | }; | 99 | }; |
100 | 100 | ||
101 | 101 | ||
102 | /* THE Document View hosting a FileSelector*/ | 102 | /* THE Document View hosting a FileSelector*/ |
103 | class ODocumentFileView : public OFileViewInterface | 103 | class ODocumentFileView : public OFileViewInterface |
104 | { | 104 | { |
105 | public: | 105 | public: |
106 | ODocumentFileView( OFileSelector* selector ); | 106 | ODocumentFileView( OFileSelector* selector ); |
107 | ~ODocumentFileView(); | 107 | ~ODocumentFileView(); |
108 | 108 | ||
109 | QString selectedName() const; | 109 | QString selectedName() const; |
110 | QString selectedPath() const; | 110 | QString selectedPath() const; |
111 | 111 | ||
112 | QString directory() const; | 112 | QString directory() const; |
113 | void reread(); | 113 | void reread(); |
114 | int fileCount()const; | 114 | int fileCount()const; |
115 | DocLnk selectedDocument()const; | 115 | DocLnk selectedDocument()const; |
116 | 116 | ||
117 | QWidget* widget( QWidget* parent ); | 117 | QWidget* widget( QWidget* parent ); |
118 | 118 | ||
119 | private: | 119 | private: |
120 | mutable FileSelector* m_selector; | 120 | mutable FileSelector* m_selector; |
121 | 121 | ||
122 | }; | 122 | }; |
123 | 123 | ||
124 | 124 | ||
125 | class OFileSelectorItem : public QListViewItem | 125 | class OFileSelectorItem : public QListViewItem |
126 | { | 126 | { |
127 | public: | 127 | public: |
128 | OFileSelectorItem( QListView* view, const QPixmap& pixmap, | 128 | OFileSelectorItem( QListView* view, const QPixmap& pixmap, |
129 | const QString& path, const QString& date, | 129 | const QString& path, const QString& date, |
130 | const QString& size, const QString& mDir, | 130 | const QString& size, const QString& mDir, |
131 | bool isLocked = false, bool isDir = false ); | 131 | bool isLocked = false, bool isDir = false ); |
132 | ~OFileSelectorItem(); | 132 | ~OFileSelectorItem(); |
133 | bool isLocked()const; | 133 | bool isLocked()const; |
134 | bool isDir()const; | 134 | bool isDir()const; |
135 | QString directory()const; | 135 | QString directory()const; |
136 | QString path()const; | 136 | QString path()const; |
137 | QString key(int id, bool )const; | 137 | QString key(int id, bool )const; |
138 | 138 | ||
139 | private: | 139 | private: |
140 | bool m_locked : 1; | ||
141 | bool m_isDir : 1; | ||
142 | QString m_dir; | 140 | QString m_dir; |
141 | bool m_isDir : 1; | ||
142 | bool m_locked : 1; | ||
143 | }; | 143 | }; |
144 | 144 | ||
145 | class OFileViewFileListView : public QWidget | 145 | class OFileViewFileListView : public QWidget |
146 | { | 146 | { |
147 | Q_OBJECT | 147 | Q_OBJECT |
148 | public: | 148 | public: |
149 | OFileViewFileListView( QWidget* parent, const QString& dir, OFileSelector* selector ); | 149 | OFileViewFileListView( QWidget* parent, const QString& dir, OFileSelector* selector ); |
150 | ~OFileViewFileListView(); | 150 | ~OFileViewFileListView(); |
151 | 151 | ||
152 | OFileSelectorItem* currentItem()const; | 152 | OFileSelectorItem* currentItem()const; |
153 | void reread( bool all = false ); | 153 | void reread( bool all = false ); |
154 | int fileCount()const; | 154 | int fileCount()const; |
155 | QString currentDir()const; | 155 | QString currentDir()const; |
156 | protected: | 156 | protected: |
157 | bool eventFilter (QObject *o, QEvent *e); | 157 | bool eventFilter (QObject *o, QEvent *e); |
158 | private slots: | 158 | private slots: |
159 | void slotNew(); // will emit newSelected | 159 | void slotNew(); // will emit newSelected |
160 | void cdUP(); | 160 | void cdUP(); |
161 | void cdHome(); | 161 | void cdHome(); |
162 | void cdDoc(); | 162 | void cdDoc(); |
163 | void changeDir( const QString& ); | 163 | void changeDir( const QString& ); |
164 | void slotCurrentChanged( QListViewItem* ); | 164 | void slotCurrentChanged( QListViewItem* ); |
165 | void slotClicked(int, QListViewItem*, const QPoint&, int ); | 165 | void slotClicked(int, QListViewItem*, const QPoint&, int ); |
166 | void slotFSActivated(int); | 166 | void slotFSActivated(int); |
167 | 167 | ||
168 | protected: | 168 | protected: |
169 | OFileSelector* selector(); | 169 | OFileSelector* selector(); |
170 | 170 | ||
171 | private: | 171 | private: |
172 | QMap<QString, QString> m_dev; | 172 | QMap<QString, QString> m_dev; |
173 | bool m_all : 1; | 173 | bool m_all : 1; |
174 | OFileSelector* m_sel; | 174 | OFileSelector* m_sel; |
175 | QPopupMenu* m_fsPop; | 175 | QPopupMenu* m_fsPop; |
176 | bool compliesMime( const QString& ); | 176 | bool compliesMime( const QString& ); |
177 | QStringList m_mimes; // used in compy mime | 177 | QStringList m_mimes; // used in compy mime |
178 | QString m_currentDir; | 178 | QString m_currentDir; |
179 | QToolButton *m_btnNew, *m_btnClose; | 179 | QToolButton *m_btnNew, *m_btnClose; |
180 | void connectSlots(); | 180 | void connectSlots(); |
181 | void addFile( QFileInfo* info, bool symlink = FALSE ); | 181 | void addFile( QFileInfo* info, bool symlink = FALSE ); |
182 | void addDir ( QFileInfo* info, bool symlink = FALSE ); | 182 | void addDir ( QFileInfo* info, bool symlink = FALSE ); |
183 | void addSymlink( QFileInfo* info, bool = FALSE ); | 183 | void addSymlink( QFileInfo* info, bool = FALSE ); |
184 | 184 | ||
185 | 185 | ||
186 | private: | 186 | private: |
187 | QListView* m_view; | 187 | QListView* m_view; |
188 | }; | 188 | }; |
189 | 189 | ||
190 | } | 190 | } |