summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--library/fileselector.cpp37
1 files changed, 25 insertions, 12 deletions
diff --git a/library/fileselector.cpp b/library/fileselector.cpp
index 365f383..013f43a 100644
--- a/library/fileselector.cpp
+++ b/library/fileselector.cpp
@@ -14,13 +14,19 @@
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
+
+// WARNING: Do *NOT* define this yourself. The SL5xxx from SHARP does NOT
+// have this class.
+#define QTOPIA_INTERNAL_FSLP
+
#include "fileselector.h"
+#include "fileselector_p.h"
#include "global.h"
#include "resource.h"
#include "config.h"
#include "applnk.h"
#include "storage.h"
#include "qpemenubar.h"
@@ -53,19 +59,21 @@ FileSelectorItem::~FileSelectorItem()
}
class FileSelectorViewPrivate
{
public:
CategoryMenu *cm;
+ bool m_noItems:1;
};
FileSelectorView::FileSelectorView( const QString &f, QWidget *parent, const char *name )
: QListView( parent, name ), filter( f ), count( 0 )
{
d = new FileSelectorViewPrivate();
d->cm = 0;
+ d->m_noItems = false;
setAllColumnsShowFocus( TRUE );
addColumn( tr( "Name" ) );
header()->hide();
fileManager = new FileManager;
reread();
@@ -77,20 +85,29 @@ FileSelectorView::FileSelectorView( const QString &f, QWidget *parent, const cha
FileSelectorView::~FileSelectorView()
{
}
void FileSelectorView::reread()
{
- FileSelectorItem *item = (FileSelectorItem *)selectedItem();
QString oldFile;
+ FileSelectorItem *item;
+ if( !d->m_noItems ) { // there are items
+ item = (FileSelectorItem *)selectedItem();
if ( item )
oldFile = item->file().file();
+ }
clear();
DocLnkSet files;
Global::findDocuments(&files, filter);
count = files.children().count();
+ if(count == 0 ){ // No Documents
+ d->m_noItems = true;
+ QListViewItem *it = new QListViewItem(this, tr("There are no files in this directory." ), "empty" );
+ it->setSelectable(FALSE );
+ return;
+ }
QListIterator<DocLnk> dit( files.children() );
for ( ; dit.current(); ++dit ) {
if (d->cm)
if (!d->cm->isSelected((**dit).categories()))
continue;
item = new FileSelectorItem( this, **dit );
@@ -234,21 +251,27 @@ void FileSelector::createNew()
}
void FileSelector::fileClicked( int button, QListViewItem *i, const QPoint &, int )
{
if ( !i )
return;
+ if(i->text(1) == QString::fromLatin1("empty" ) )
+ return;
+
if ( button == Qt::LeftButton ) {
fileClicked( i );
}
}
void FileSelector::filePressed( int button, QListViewItem *i, const QPoint &, int )
{
if ( !i )
return;
+ if(i->text(1) == QString::fromLatin1("empty" ) )
+ return;
+
if ( button == Qt::RightButton ) {
DocLnk l = ((FileSelectorItem *)i)->file();
LnkProperties prop( &l );
prop.showMaximized();
prop.exec();
d->cm->reload();
@@ -318,23 +341,13 @@ void FileSelector::setCloseVisible( bool b )
buttonClose->show();
else
buttonClose->hide();
}
/*!
- Sets whether a categories menu is visible, according to \a b.
-*/
-void FileSelector::setCategoriesVisible( bool b )
-{
- if ( b )
- d->mb->show();
- else
- d->mb->hide();
-}
-
-/*!
Rereads the list of files.
*/
void FileSelector::reread()
{
view->reread();
}
+