[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/KDE/3.5/kdelibs/kio/kio
From: David Faure <faure () kde ! org>
Date: 2005-08-09 2:10:28
Message-ID: 1123553428.117901.30535.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 444176 by dfaure:
Commit patch by Tobi Vollebregt <tobivollebregt gmail.com> to add
support for UDS_HIDDEN, i.e. a kioslave can decide which files should be hidden
by default.
Till: I think the new UDS type will conflict with your ACL's UDS type,
sorry about that, first one wins :)
M +4 -1 global.h
M +1 -1 kdirlister.cpp
M +1 -1 kfilefilter.cpp
M +17 -0 kfileitem.cpp
M +7 -3 kfileitem.h
--- branches/KDE/3.5/kdelibs/kio/kio/global.h #444175:444176
@@ -325,8 +325,11 @@
/// A local file path if the ioslave display files sitting
/// on the local filesystem (but in another hierarchy, e.g. media:/)
UDS_LOCAL_PATH = 72 | UDS_STRING,
+ /// Treat the file as a hidden file or as a normal file,
+ /// regardless of (the absence of) a leading dot in the filename.
+ UDS_HIDDEN = 80 | UDS_LONG,
- // available: 80, 88, 92, 100, 108 etc.
+ // available: 88, 92, 100, 108 etc.
/// Access permissions (part of the mode returned by stat)
UDS_ACCESS = 128 | UDS_LONG,
--- branches/KDE/3.5/kdelibs/kio/kio/kdirlister.cpp #444175:444176
@@ -2113,7 +2113,7 @@
if ( item->text() == dotdot )
return false;
- if ( !d->isShowingDotFiles && item->text()[0] == '.' )
+ if ( !d->isShowingDotFiles && item->isHidden() )
return false;
if ( item->isDir() || d->lstFilters.isEmpty() )
--- branches/KDE/3.5/kdelibs/kio/kio/kfilefilter.cpp #444175:444176
@@ -84,7 +84,7 @@
const QString& name = item->name();
- if ( m_filterDotFiles && name.at(0) == '.' )
+ if ( m_filterDotFiles && item->isHidden() )
return false;
if ( m_filterSpecials && (name == dot || name == dotdot) )
--- branches/KDE/3.5/kdelibs/kio/kio/kfileitem.cpp #444175:444176
@@ -62,6 +62,7 @@
m_bLink( false ),
m_bIsLocalURL( _url.isLocalFile() ),
m_bMimeTypeKnown( false ),
+ m_hidden( Auto ),
d(0)
{
readUDSEntry( _urlIsDirectory );
@@ -80,6 +81,7 @@
m_bLink( false ),
m_bIsLocalURL( _url.isLocalFile() ),
m_bMimeTypeKnown( false ),
+ m_hidden( Auto ),
d(0)
{
init( _determineMimeTypeOnDemand );
@@ -96,6 +98,7 @@
m_bLink( false ),
m_bIsLocalURL( url.isLocalFile() ),
m_bMimeTypeKnown( !mimeType.isEmpty() ),
+ m_hidden( Auto ),
d(0)
{
if (m_bMimeTypeKnown)
@@ -238,6 +241,13 @@
d = new KFileItemPrivate();
d->iconName = (*it).m_str;
break;
+
+ case KIO::UDS_HIDDEN:
+ if ( (*it).m_long )
+ m_hidden = Hidden;
+ else
+ m_hidden = Shown;
+ break;
}
}
@@ -255,6 +265,7 @@
m_user = QString::null;
m_group = QString::null;
m_metaInfo = KFileMetaInfo();
+ m_hidden = Auto;
// Basically, we can't trust any information we got while listing.
// Everything could have changed...
@@ -597,6 +608,9 @@
bool KFileItem::isHidden() const
{
+ if ( m_hidden != Auto )
+ return m_hidden == Hidden;
+
if ( !m_url.isEmpty() )
return m_url.fileName()[0] == '.';
else // should never happen
@@ -779,6 +793,7 @@
&& m_user == item.m_user
&& m_group == item.m_group
&& m_bLink == item.m_bLink
+ && m_hidden == item.m_hidden
&& size() == item.size()
&& time(KIO::UDS_MODIFICATION_TIME) == item.time(KIO::UDS_MODIFICATION_TIME)
&& mimetype() == item.mimetype()
@@ -802,6 +817,7 @@
m_pMimeType = item.m_pMimeType;
m_strLowerCaseName = item.m_strLowerCaseName;
m_bMimeTypeKnown = item.m_bMimeTypeKnown;
+ m_hidden = item.m_hidden;
m_guessedMimeType = item.m_guessedMimeType;
m_access = item.m_access;
m_metaInfo = item.m_metaInfo;
@@ -841,6 +857,7 @@
m_bLink = false;
m_bIsLocalURL = _url.isLocalFile();
m_bMimeTypeKnown = false;
+ m_hidden = Auto;
m_guessedMimeType = QString::null;
m_metaInfo = KFileMetaInfo();
--- branches/KDE/3.5/kdelibs/kio/kio/kfileitem.h #444175:444176
@@ -458,20 +458,20 @@
* Somewhat like an assignment operator, but more explicit.
* Note: extra-data set with setExtraData() is not copied, so be careful
* what you do!
- *
+ *
* @param item the item to copy
*/
void assign( const KFileItem & item );
/**
* Reinitialize KFileItem with a new UDSEntry.
- *
+ *
* Note: extra-data set with setExtraData() is not changed or deleted, so
* be careful what you do!
*
* KDirListerCache uses it to save new/delete calls by updating existing
* items that are otherwise not needed anymore.
- *
+ *
* @param entry the UDSEntry to assign to this KFileItem
* @param url the file url
* @param determineMimeTypeOnDemand specifies if the mimetype of the given
@@ -576,6 +576,10 @@
bool m_bMimeTypeKnown:1;
+ enum { Auto = 0, Hidden = 1, Shown = 2 };
+ // One of Auto, Hidden, Shown. Auto: check leading dot.
+ unsigned char m_hidden:2;
+
// For special case like link to dirs over FTP
QString m_guessedMimeType;
mutable QString m_access;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic