summaryrefslogtreecommitdiff
authorzecke <zecke>2005-02-07 22:41:59 (UTC)
committer zecke <zecke>2005-02-07 22:41:59 (UTC)
commitf112fe72adcfb8d3c6745c6ff878cbfbbdfbfa24 (patch) (side-by-side diff)
tree95f03410ad60ed5d04486821e9bc76cf1e3664ec
parent2e4fd59ce900490ccbbb6c0f7b2fcd4811ac8a07 (diff)
downloadopie-f112fe72adcfb8d3c6745c6ff878cbfbbdfbfa24.zip
opie-f112fe72adcfb8d3c6745c6ff878cbfbbdfbfa24.tar.gz
opie-f112fe72adcfb8d3c6745c6ff878cbfbbdfbfa24.tar.bz2
Fix for #1482, do not start a path with "//". We do that by having
a method to assemble paths to avoid adding a second "/"
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--libopie2/opieui/fileselector/ofileselector.cpp26
1 files changed, 18 insertions, 8 deletions
diff --git a/libopie2/opieui/fileselector/ofileselector.cpp b/libopie2/opieui/fileselector/ofileselector.cpp
index 718f743..74aca96 100644
--- a/libopie2/opieui/fileselector/ofileselector.cpp
+++ b/libopie2/opieui/fileselector/ofileselector.cpp
@@ -61,8 +61,18 @@ using namespace Opie::Ui::Internal;
namespace Opie {
namespace Ui {
namespace Internal {
+/*
+ * Create a path by adding a '/'/QDir::seperator in between
+ * base and ending, but only if base is not empty
+ */
+static inline QString createNewPath(const QString& base, const QString &ending) {
+ return base == QString::fromLatin1("/") ?
+ base + ending : base + "/" + ending;
+}
+
+
OFileViewInterface::OFileViewInterface( OFileSelector* _selector )
: m_selector( _selector )
{
selector()->registerView( this );
@@ -469,9 +479,9 @@ void OFileViewFileListView::reread( bool all )
*
*/
if( fi->isSymLink() )
{
- QString file = fi->dirPath( true ) + "/" + fi->readLink();
+ QString file = createNewPath(fi->dirPath( true ),fi->readLink());
for( int i = 0; i<=4; i++)
{ // 5 tries to prevent dos
QFileInfo info( file );
if( !info.exists() )
@@ -490,9 +500,9 @@ void OFileViewFileListView::reread( bool all )
break;
}
else if( info.isSymLink() )
{
- file = info.dirPath(true ) + "/" + info.readLink() ;
+ file = createNewPath(info.dirPath(true ),info.readLink());
break;
}
else if( i == 4)
{ // couldn't resolve symlink add it as symlink
@@ -562,9 +572,9 @@ void OFileViewFileListView::slotCurrentChanged( QListViewItem* item)
if ( selector()->mode() == OFileSelector::FileSelector )
{
odebug << "slot Current Changed" << oendl;
QStringList str = QStringList::split("->", sel->text(1) );
- QString path = sel->directory() + "/" + str[0].stripWhiteSpace();
+ QString path = createNewPath(sel->directory(),str[0].stripWhiteSpace());
emit selector()->fileSelected( path );
DocLnk lnk( path );
emit selector()->fileSelected( lnk );
}
@@ -582,17 +592,17 @@ void OFileViewFileListView::slotClicked(int button , QListViewItem* item, const
{
QStringList str = QStringList::split("->", sel->text(1) );
if (sel->isDir() )
{
- m_currentDir = sel->directory() + "/" + str[0].stripWhiteSpace();
+ m_currentDir = createNewPath(sel->directory(),str[0].stripWhiteSpace());
emit selector()->dirSelected( m_currentDir );
reread( m_all );
}
else
{ // file
odebug << "slot Clicked" << oendl;
selector()->m_lneEdit->setText( str[0].stripWhiteSpace() );
- QString path = sel->directory() + "/" + str[0].stripWhiteSpace();
+ QString path = createNewPath(sel->directory(),str[0].stripWhiteSpace());
emit selector()->fileSelected( path );
DocLnk lnk( path );
emit selector()->fileSelected( lnk );
}
@@ -616,9 +626,9 @@ void OFileViewFileListView::addFile( QFileInfo* info, bool symlink )
}
dir = info->dirPath( true );
locked = false;
if ( symlink )
- name = info->fileName() + " -> " + info->dirPath() + "/" + info->readLink();
+ name = info->fileName() + " -> " + createNewPath(info->dirPath(),info->readLink());
else
{
name = info->fileName();
if ( ( (selector()->mode() == OFileSelector::Open)&& !info->isReadable() ) ||
@@ -647,9 +657,9 @@ void OFileViewFileListView::addDir( QFileInfo* info, bool symlink )
}
else
pix = symlink ? Resource::loadPixmap( "opie/symlink") : Resource::loadPixmap("folder");
- name = symlink ? info->fileName() + " -> " + info->dirPath(true) + "/" + info->readLink() :
+ name = symlink ? info->fileName() + " -> " + createNewPath(info->dirPath(true),info->readLink()) :
info->fileName();
(void)new OFileSelectorItem( m_view, pix, name,
info->lastModified().toString(),
@@ -779,9 +789,9 @@ QString OFileViewFileSystem::selectedName()const
return QString::null;
QString cFN=currentFileName();
if (cFN.startsWith("/")) return cFN;
- return m_view->currentDir() + "/" + cFN;
+ return createNewPath(m_view->currentDir(),cFN);
}
QString OFileViewFileSystem::selectedPath()const
{