[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [krusader] krusader/FileSystem: FileSystem: Added changed and access time to FileItem (not used yet)
From:       Alexander Bikadorov <null () kde ! org>
Date:       2017-05-31 19:23:12
Message-ID: E1dG9D6-00015r-UZ () code ! kde ! org
[Download RAW message or body]

Git commit 30bf21fa71229f580ac7fe0a5f74f20ac039d3e1 by Alexander Bikadorov.
Committed on 30/05/2017 at 16:22.
Pushed by abikadorov into branch 'master'.

FileSystem: Added changed and access time to FileItem (not used yet)

M  +11   -4    krusader/FileSystem/fileitem.cpp
M  +9    -1    krusader/FileSystem/fileitem.h
M  +6    -2    krusader/FileSystem/filesystem.cpp

https://commits.kde.org/krusader/30bf21fa71229f580ac7fe0a5f74f20ac039d3e1

diff --git a/krusader/FileSystem/fileitem.cpp b/krusader/FileSystem/fileitem.cpp
index 3a55ff87..b253a870 100644
--- a/krusader/FileSystem/fileitem.cpp
+++ b/krusader/FileSystem/fileitem.cpp
@@ -55,12 +55,14 @@ public:
 static QCache<const QUrl, FileSize> s_fileSizeCache(1000);
 
 FileItem::FileItem(const QString &name, const QUrl &url, bool isDir,
-             KIO::filesize_t size, mode_t mode, time_t mtime,
+             KIO::filesize_t size, mode_t mode,
+             time_t mtime, time_t ctime, time_t atime,
              uid_t uid, gid_t gid, const QString &owner, const QString &group,
              bool isLink, const QString &linkDest, bool isBrokenLink,
              const QString &acl, const QString &defaultAcl)
     : m_name(name), m_url(url), m_isDir(isDir),
-      m_size(size), m_mode(mode), m_mtime(mtime),
+      m_size(size), m_mode(mode),
+      m_mtime(mtime), m_ctime(ctime), m_atime(atime),
       m_uid(uid), m_gid(gid), m_owner(owner), m_group(group),
       m_isLink(isLink), m_linkDest(linkDest), m_isBrokenLink(isBrokenLink),
       m_acl(acl), m_defaulfAcl(defaultAcl), m_AclLoaded(false),
@@ -82,6 +84,7 @@ FileItem::FileItem(const QString &name, const QUrl &url, bool \
isDir,  FileItem *FileItem::createDummy()
 {
     FileItem *file = new FileItem("..", QUrl(), true,
+                            0, 0,
                             0, 0, 0);
     file->setIcon("go-up");
     return file;
@@ -90,14 +93,16 @@ FileItem *FileItem::createDummy()
 FileItem *FileItem::createVirtualDir(const QString &name, const QUrl &url)
 {
     return new FileItem(name, url, true,
-                     0, 0700, time(0),
+                     0, 0700,
+                     time(0), time(0), time(0),
                      getuid(), getgid());
 }
 
 FileItem *FileItem::createCopy(const FileItem &file, const QString &newName)
 {
     return new FileItem(newName, file.getUrl(), file.isDir(),
-                     file.getSize(), file.getMode(), file.getTime_t(),
+                     file.getSize(), file.getMode(),
+                     file.getTime_t(), file.getChangedTime(), file.getAccessTime(),
                      file.m_uid, file.m_gid, file.getOwner(), file.getGroup(),
                      file.isSymLink(), file.getSymDest(), file.isBrokenLink());
 }
@@ -200,6 +205,8 @@ const KIO::UDSEntry FileItem::getEntry()
     entry.insert(KIO::UDSEntry::UDS_NAME, getName());
     entry.insert(KIO::UDSEntry::UDS_SIZE, getSize());
     entry.insert(KIO::UDSEntry::UDS_MODIFICATION_TIME, getTime_t());
+    entry.insert(KIO::UDSEntry::UDS_CREATION_TIME, getChangedTime());
+    entry.insert(KIO::UDSEntry::UDS_ACCESS_TIME, getAccessTime());
     entry.insert(KIO::UDSEntry::UDS_USER, getOwner());
     entry.insert(KIO::UDSEntry::UDS_GROUP, getGroup());
     entry.insert(KIO::UDSEntry::UDS_MIME_TYPE, getMime());
diff --git a/krusader/FileSystem/fileitem.h b/krusader/FileSystem/fileitem.h
index fc50963b..7c4b7b91 100644
--- a/krusader/FileSystem/fileitem.h
+++ b/krusader/FileSystem/fileitem.h
@@ -64,6 +64,8 @@ public:
      * @param size size of file
      * @param mode mode of file (file type and permissions)
      * @param mtime file modification time
+     * @param ctime file changed time
+     * @param atime file access time
      * @param uid Unix user id of file owner. Use -1 here and provide an owner name \
                for non-local files.
      * @param gid Unix group id of file group. Use -1 here and provide a group name \
                for non-local files.
      * @param owner user name of file owner. Can be empty for local files
@@ -75,7 +77,8 @@ public:
      * @param defaultAcl default ACL string of file (only for directories). Can be \
                empty and is loaded on demand.
      */
     FileItem(const QString &name, const QUrl &url, bool isDir,
-          KIO::filesize_t size, mode_t mode, time_t mtime,
+          KIO::filesize_t size, mode_t mode,
+          time_t mtime, time_t ctime, time_t atime,
           uid_t uid = -1, gid_t gid = -1,
           const QString &owner = QString(), const QString &group = QString(),
           bool isLink = false, const QString &linkDest = QString(), bool \
isBrokenLink = false, @@ -101,6 +104,8 @@ public:
     inline const QString &getSymDest() const { return m_linkDest; }
     inline mode_t getMode() const { return m_mode; }
     inline time_t getTime_t() const { return m_mtime; }
+    inline time_t getChangedTime() const { return m_ctime; }
+    inline time_t getAccessTime() const { return m_atime; }
     inline const QUrl &getUrl() const { return m_url; }
     inline const QString &getOwner() const { return m_owner; }
     inline const QString &getGroup() const { return m_group; }
@@ -135,7 +140,10 @@ private:
 
     KIO::filesize_t m_size;     //< file size
     mode_t m_mode;              //< file mode (file type and permissions)
+
     time_t m_mtime;             //< file modification time
+    time_t m_ctime;             //< file changed time
+    time_t m_atime;             //< file access time
 
     uid_t m_uid;                //< file owner id
     gid_t m_gid;                //< file group id
diff --git a/krusader/FileSystem/filesystem.cpp b/krusader/FileSystem/filesystem.cpp
index e164ed7b..2e9cce1e 100644
--- a/krusader/FileSystem/filesystem.cpp
+++ b/krusader/FileSystem/filesystem.cpp
@@ -235,7 +235,8 @@ FileItem *FileSystem::createLocalFileItem(const QString &name, \
const QString &di  }
 
     return new FileItem(virt ? path : name, QUrl::fromLocalFile(path), isDir,
-                     size, stat_p.st_mode, stat_p.st_mtime,
+                     size, stat_p.st_mode,
+                     stat_p.st_mtime, stat_p.st_ctime, stat_p.st_atime,
                      stat_p.st_uid, stat_p.st_gid, QString(), QString(),
                      isLink, linkDestination, brokenLink);
 }
@@ -256,6 +257,8 @@ FileItem *FileSystem::createFileItemFromKIO(const KIO::UDSEntry \
&entry, const QU  
     // get file statistics...
     const time_t mtime = kfi.time(KFileItem::ModificationTime).toTime_t();
+    const time_t ctime = kfi.time(KFileItem::CreationTime).toTime_t(); // \
"Creation"? its "Changed" +    const time_t atime = \
kfi.time(KFileItem::AccessTime).toTime_t();  const mode_t mode = kfi.mode() | \
                kfi.permissions();
     // NOTE: we could get the mimetype (and file icon) from the kfileitem here but \
                this is very
     // slow. Instead, the file item class has it's own (faster) way to determine the \
file type. @@ -263,7 +266,8 @@ FileItem *FileSystem::createFileItemFromKIO(const \
                KIO::UDSEntry &entry, const QU
     // NOTE: "broken link" flag is always false, checking link destination existence \
is  // considered to be too expensive
     return new FileItem(fname, url, kfi.isDir(),
-                     kfi.size(), mode, mtime,
+                     kfi.size(), mode,
+                     mtime, ctime, atime,
                      (uid_t) -1, (gid_t) -1, kfi.user(), kfi.group(),
                      kfi.isLink(), kfi.linkDest(), false,
                      kfi.ACL().asString(), kfi.defaultACL().asString());


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic