summaryrefslogtreecommitdiff
authorzecke <zecke>2004-11-14 17:40:57 (UTC)
committer zecke <zecke>2004-11-14 17:40:57 (UTC)
commit61dc3dd61685a1bfc6aba33ad81f8348bb992a11 (patch) (unidiff)
tree74994977ad38557c91a2f16975a9d8798c3365ec
parent9507723db1df320547a0cb660b9b923d41438fdf (diff)
downloadopie-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
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opieui/fileselector/ofileselector.cpp15
-rw-r--r--libopie2/opieui/fileselector/ofileselector_p.h4
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
205int ODocumentFileView::fileCount()const 205int 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
213DocLnk ODocumentFileView::selectedDocument()const 213DocLnk 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
221QWidget* ODocumentFileView::widget( QWidget* parent ) 221QWidget* 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
242OFileSelectorItem::OFileSelectorItem( QListView* view, const QPixmap& pixmap, 242OFileSelectorItem::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
257OFileSelectorItem::~OFileSelectorItem() 254OFileSelectorItem::~OFileSelectorItem()
258{ 255{
259} 256}
260 257
261bool OFileSelectorItem::isLocked()const 258bool OFileSelectorItem::isLocked()const
262{ 259{
263 return m_locked; 260 return m_locked;
264} 261}
265 262
266QString OFileSelectorItem::directory()const 263QString OFileSelectorItem::directory()const
267{ 264{
268 return m_dir; 265 return m_dir;
269} 266}
270 267
271bool OFileSelectorItem::isDir()const 268bool OFileSelectorItem::isDir()const
272{ 269{
273 return m_isDir; 270 return m_isDir;
274} 271}
275 272
276QString OFileSelectorItem::path()const 273QString OFileSelectorItem::path()const
277{ 274{
278 return text( 1 ); 275 return text( 1 );
279} 276}
280 277
281QString OFileSelectorItem::key( int id, bool )const 278QString 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
303OFileViewFileListView::OFileViewFileListView( QWidget* parent, const QString& startDir, OFileSelector* sel) 306OFileViewFileListView::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
96private: 96private:
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*/
103class ODocumentFileView : public OFileViewInterface 103class ODocumentFileView : public OFileViewInterface
104{ 104{
105public: 105public:
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
119private: 119private:
120 mutable FileSelector* m_selector; 120 mutable FileSelector* m_selector;
121 121
122}; 122};
123 123
124 124
125class OFileSelectorItem : public QListViewItem 125class OFileSelectorItem : public QListViewItem
126{ 126{
127public: 127public:
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
139private: 139private:
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
145class OFileViewFileListView : public QWidget 145class OFileViewFileListView : public QWidget
146{ 146{
147 Q_OBJECT 147 Q_OBJECT
148public: 148public:
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;
156protected: 156protected:
157 bool eventFilter (QObject *o, QEvent *e); 157 bool eventFilter (QObject *o, QEvent *e);
158private slots: 158private 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
168protected: 168protected:
169 OFileSelector* selector(); 169 OFileSelector* selector();
170 170
171private: 171private:
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
186private: 186private:
187 QListView* m_view; 187 QListView* m_view;
188}; 188};
189 189
190} 190}