summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/ofileselector.cc135
-rw-r--r--libopie/ofileselector.h4
2 files changed, 69 insertions, 70 deletions
diff --git a/libopie/ofileselector.cc b/libopie/ofileselector.cc
index d1f1e1f..ce66f51 100644
--- a/libopie/ofileselector.cc
+++ b/libopie/ofileselector.cc
@@ -87,5 +87,6 @@ OFileSelector::OFileSelector(QWidget *wid, int mode, int selector, const QString
m_currentDir = dirName;
m_name = fileName;
- m_mimetypes = mimetypes;
+ requestedMimeTypesList = m_mimetypes = mimetypes;
+
// if( mimetypes.isEmpty() )
// m_autoMime = true;
@@ -187,11 +188,9 @@ void OFileSelector::delItems()
void OFileSelector::init()
{
-
+// qDebug("init");
m_stack = new QWidgetStack(this, "wstack" );
- if( m_selector == NORMAL ){
QString currMime;
if( m_mimeCheck != 0 )
currMime = m_mimeCheck->currentText();
-
updateMimes();
m_select = new FileSelector( currMime == "All" ? QString::null : currMime , m_stack, "fileselector", FALSE, FALSE );
@@ -201,12 +200,10 @@ void OFileSelector::init()
connect(m_select, SIGNAL(fileSelected( const DocLnk &) ), this, SLOT(slotFileBridgeSelected(const DocLnk &) ) );
m_pseudoLayout = 0l;
- }else {
+ if( m_selector != NORMAL ) {
initializeListView();
}
-
if(m_shLne ){
initializeName();
}
-
if(m_shPerm ){
m_checkPerm = new QCheckBox(tr("Set Permission"), this, "Permission" );
@@ -214,11 +211,11 @@ void OFileSelector::init()
m_lay->addWidget(m_checkPerm );
}
-
if( m_shChooser )
initializeChooser();
-
if(m_shYesNo )
initializeYes();
-
+
+ m_mimeCheck->setCurrentItem(indexByString( m_mimeCheck, requestedMimeTypesList.first()) );
+ reparse();
}
@@ -417,10 +414,8 @@ bool OFileSelector::compliesMime(const QString &path, const QString &mime )
void OFileSelector::reparse()
{
+ qDebug("reparse");
if(m_View== 0 || m_selector == NORMAL)
return;
-
m_View->clear();
-
-
QString currMime =m_mimeCheck->currentText();
// update the mimetype now
@@ -471,5 +466,5 @@ void OFileSelector::reparse()
filter = QDir::Files | QDir::Dirs | QDir::All;
dir.setFilter( filter );
-
+ qDebug("infoList");
const QFileInfoList *list = dir.entryInfoList();
QFileInfoListIterator it( *list );
@@ -480,29 +475,29 @@ void OFileSelector::reparse()
continue;
}
- qWarning("Test: %s", fi->fileName().latin1() );
+// qWarning("Test: %s", fi->fileName().latin1() );
if(fi->isSymLink() ){
- qWarning("Symlink %s", fi->fileName().latin1() );
+// qWarning("Symlink %s", fi->fileName().latin1() );
QString file = fi->dirPath(true)+"/"+ fi->readLink();
- qWarning("File ->%s", file.latin1() );
+// qWarning("File ->%s", file.latin1() );
for(int i=0; i<=4; i++ ){ // prepend from dos
QFileInfo info( file );
if( !info.exists() ){
- qWarning("does not exist" );
+// qWarning("does not exist" );
addSymlink(currMime, fi, TRUE );
break;
}else if( info.isDir() ){
- qWarning("isDir" );
+// qWarning("isDir" );
addDir(currMime, fi, TRUE );
break;
}else if( info.isFile() ){
- qWarning("isFile" );
+// qWarning("isFile" );
addFile(currMime, fi, TRUE );
break;
}else if( info.isSymLink() ){
file = info.dirPath(true)+ "/"+ info.readLink();
- qWarning("isSymlink again %s", file.latin1() );
+// qWarning("isSymlink again %s", file.latin1() );
}else if( i == 4 ){ // just insert it and have the symlink symbol
addSymlink(currMime, fi );
- qWarning("level too deep" );
+// qWarning("level too deep" );
}
}
@@ -515,4 +510,5 @@ void OFileSelector::reparse()
}
m_View->sort();
+// m_View->ensureItemVisible();
}
@@ -587,5 +583,5 @@ void OFileSelector::initializeChooser()
// else{ // check
updateMimes();
- m_mimeCheck->insertStringList( m_mimetypes );
+ m_mimeCheck->insertStringList( m_mimetypes );
// }
@@ -647,5 +643,5 @@ void OFileSelector::slotViewCheck(const QString &view ){
connect(m_select, SIGNAL(fileSelected( const DocLnk &) ), this, SLOT(slotFileBridgeSelected(const DocLnk &) ) );
- }else if(view == QString::fromLatin1("Files") ){
+ } else if(view == QString::fromLatin1("Files") ){
// remove from the stack
delete m_select;
@@ -654,12 +650,8 @@ void OFileSelector::slotViewCheck(const QString &view ){
m_View = 0;
-
-
m_selector = EXTENDED;
- // create the ListView or IconView
initializeListView();
-
reparse();
- }else if(view == QString::fromLatin1("All Files") ) {
+ } else if(view == QString::fromLatin1("All Files") ) {
// remove from the stack
delete m_select;
@@ -671,5 +663,5 @@ void OFileSelector::slotViewCheck(const QString &view ){
initializeListView();
reparse();
- };
+ }
}
@@ -680,5 +672,5 @@ void OFileSelector::updateMimes() // lets check which mode is active
m_mimetypes.clear();
m_mimetypes.append("All" );
- if( m_selector == NORMAL ){
+// if( m_selector == NORMAL ){
DocLnkSet set;
Global::findDocuments(&set, QString::null );
@@ -688,20 +680,24 @@ void OFileSelector::updateMimes() // lets check which mode is active
m_mimetypes.append( (*dit)->type() );
}
- }else{
+// }else{
// should be allreday updatet
- ;
- }
+ // ;
+ // }
}
void OFileSelector::initializeListView()
-{
+{
+ // in the instance that a developer selected the view to be Files or Entended,
+ // in the initial initialization, you are deleting objects here
+ // that aren't even existing yet.
+
// just to make sure but clean it up better FIXME
- delete m_View;
- m_View = 0;
- delete m_boxToolbar;
- delete m_homeButton;
- delete m_docButton;
- delete m_location;
- delete m_up;
+ // if( m_View) delete m_View;
+// m_View = 0;
+// if(m_boxToolbar) delete m_boxToolbar;
+// if(m_homeButton) delete m_homeButton;
+// if(m_docButton) delete m_docButton;
+// if( m_location) delete m_location;
+// if(m_up) delete m_up;
//delete m_pseudo;
//if(m_pseudoLayout!=0 ) // why did you overload malloc
@@ -714,5 +710,5 @@ void OFileSelector::initializeListView()
m_pseudo = 0;
m_pseudoLayout = 0;
- // time for the toolbar
+ qDebug(" time for the toolbar ");
m_pseudo = new QWidget(m_stack, "Pseudo Widget");
m_pseudoLayout = new QVBoxLayout(m_pseudo );
@@ -721,5 +717,7 @@ void OFileSelector::initializeListView()
m_boxToolbar->setAutoAdd( true );
m_location = new QComboBox(m_pseudo );
+ m_location ->setEditable(TRUE);
connect( m_location, SIGNAL(activated(const QString &) ), this, SLOT( locationComboActivated(const QString & ) ) );
+ connect( m_location->lineEdit(),SIGNAL(returnPressed()), this,SLOT( locationComboChanged()));
m_up = new QPushButton(Resource::loadIconSet("up"),"", m_pseudo,"cdUpButton");
@@ -743,5 +741,5 @@ void OFileSelector::initializeListView()
m_boxToolbar->addWidget(m_docButton );
m_pseudoLayout->addLayout(m_boxToolbar );
- // lets fill the combobox
+ qDebug("lets fill the combobox");
StorageInfo storage;
const QList<FileSystem> &fs = storage.fileSystems();
@@ -756,4 +754,5 @@ void OFileSelector::initializeListView()
m_location->setCurrentItem( count );
};
+
m_View = new QListView(m_pseudo, "Extended view" );
m_stack->addWidget( m_pseudo, EXTENDED );
@@ -784,4 +783,5 @@ void OFileSelector::initializeListView()
};
+
/* If a item is locked depends on the mode
if we're in OPEN !isReadable is locked
@@ -793,7 +793,7 @@ void OFileSelector::initializeListView()
void OFileSelector::addFile(const QString &mime, QFileInfo *info, bool symlink ){
- qWarning("Add Files" );
+// qWarning("Add Files" );
if( !m_files ){
- qWarning("not mfiles" );
+// qWarning("not mfiles" );
return;
}
@@ -902,5 +902,5 @@ void OFileSelector::slotSelectionChanged() // get the current items
void OFileSelector::slotCurrentChanged(QListViewItem *item )
{
- qWarning("current changed" );
+// qWarning("current changed" );
if( item == 0 )
return;
@@ -909,8 +909,8 @@ void OFileSelector::slotCurrentChanged(QListViewItem *item )
OFileSelectorItem *sel = (OFileSelectorItem*)item;
if(!sel->isDir() ){
- qWarning("is not dir" );
+// qWarning("is not dir" );
if(m_shLne ){
m_edit->setText(sel->text(1) );
- qWarning("setTexy" );
+// qWarning("setTexy" );
}
}
@@ -929,7 +929,7 @@ void OFileSelector::slotClicked( int button, QListViewItem *item, const QPoint &
return;
- qWarning("clicked" );
+// qWarning("clicked" );
if(m_selector == EXTENDED || m_selector == EXTENDED_ALL ){
- qWarning("inside" );
+// qWarning("inside" );
OFileSelectorItem *sel = (OFileSelectorItem*)item;
if(!sel->isLocked() ){ // not locked either changedir or open
@@ -938,5 +938,5 @@ void OFileSelector::slotClicked( int button, QListViewItem *item, const QPoint &
cd( sel->directory() + "/" + str[0] );
} else {
- qWarning("file" );
+// qWarning("file" );
if(m_shLne )
m_edit->setText(str[0] );
@@ -957,5 +957,5 @@ void OFileSelector::slotRightButton(int button, QListViewItem *item, const QPoin
if( button != Qt::RightButton )
return;
- qWarning("right button" );
+// qWarning("right button" );
slotContextMenu(item);
}
@@ -963,5 +963,5 @@ void OFileSelector::slotRightButton(int button, QListViewItem *item, const QPoin
void OFileSelector::slotContextMenu(QListViewItem *item)
{
- qWarning("context menu" );
+// qWarning("context menu" );
if( item ==0 || !m_showPopup )
return;
@@ -1015,5 +1015,5 @@ void OFileSelector::slotContextMenu(QListViewItem *item)
bool OFileSelector::cd(const QString &str )
{
- qWarning(" dir %s", str.latin1() );
+// qWarning(" dir %s", str.latin1() );
QDir dir( str);
if(dir.exists() ){
@@ -1032,8 +1032,11 @@ bool OFileSelector::cd(const QString &str )
void OFileSelector::insertLocationPath(const QString &currentPath, int count) {
QStringList pathList;
+ bool underDog = FALSE;
for(int i=0;i<count;i++) {
pathList << m_location->text(i);
+ if( m_location->text(i) == currentPath)
+ underDog = TRUE;
}
- if( pathList.grep( currentPath,TRUE).isEmpty() ) {
+ if( !underDog) {
m_location->clear();
if( currentPath.left(2)=="//")
@@ -1076,5 +1079,5 @@ void OFileSelector::slotRename()
void OFileSelector::slotDelete()
{
- qWarning("delete slot" );
+// qWarning("delete slot" );
OFileSelectorItem *sel = (OFileSelectorItem*)m_View->currentItem();
QStringList list = QStringList::split("->", sel->text(1) );
@@ -1102,6 +1105,6 @@ void OFileSelector::cdUP()
reparse();
int count = m_location->count();
- insertLocationPath( m_currentDir,count );
- m_location->setCurrentItem( indexFromString(m_currentDir ));
+ insertLocationPath( m_currentDir, count);
+ m_location->setCurrentItem( indexByString( m_location, m_currentDir));
//this wont work in all instances
// FIXME
@@ -1109,13 +1112,4 @@ void OFileSelector::cdUP()
}
-int OFileSelector::indexFromString(const QString &str) {
-
- for(int i=0;i< m_location->count();i++) {
- if(str == m_location->text(i))
- return i;
- }
- return 0;
-}
-
void OFileSelector::slotHome()
{
@@ -1137,2 +1131,7 @@ void OFileSelector::locationComboActivated(const QString & file ) {
reparse();
}
+
+void OFileSelector::locationComboChanged() {
+ cd( m_location->lineEdit()->text());
+ reparse();
+}
diff --git a/libopie/ofileselector.h b/libopie/ofileselector.h
index 81a9e63..babe09f 100644
--- a/libopie/ofileselector.h
+++ b/libopie/ofileselector.h
@@ -193,5 +193,5 @@ class OFileSelector : public QWidget {
void locationComboActivated(const QString & );
void insertLocationPath(const QString &, int);
- int indexFromString(const QString &);
+ void locationComboChanged();
protected:
void init();
@@ -212,5 +212,5 @@ class OFileSelector : public QWidget {
QString m_currentDir;
QString m_name;
- QStringList m_mimetypes;
+ QStringList m_mimetypes, requestedMimeTypesList;
FileSelector *m_select;