[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [krusader] krusader: Panel: Added columns for changed and access time;
From: Alexander Bikadorov <null () kde ! org>
Date: 2017-05-31 19:23:13
Message-ID: E1dG9D7-00015r-0S () code ! kde ! org
[Download RAW message or body]
Git commit 68a1889b56a7d0c4f856447bac79ed141b343391 by Alexander Bikadorov.
Committed on 30/05/2017 at 16:26.
Pushed by abikadorov into branch 'master'.
Panel: Added columns for changed and access time;
+ Added to tooltip
+ New global config version parameter
FIXED: [ 173655 ] Added changed and access time in detailed view
BUG: 173655
M +2 -0 krusader/Panel/krinterbriefview.cpp
M +9 -0 krusader/Panel/krinterdetailedview.cpp
M +11 -3 krusader/Panel/krsort.cpp
M +1 -0 krusader/Panel/krsort.h
M +3 -1 krusader/Panel/krviewproperties.h
M +11 -3 krusader/Panel/listmodel.cpp
M +26 -28 krusader/UserAction/expander.cpp
M +2 -0 krusader/krglobal.cpp
M +4 -0 krusader/krglobal.h
M +14 -26 krusader/krusader.cpp
https://commits.kde.org/krusader/68a1889b56a7d0c4f856447bac79ed141b343391
diff --git a/krusader/Panel/krinterbriefview.cpp \
b/krusader/Panel/krinterbriefview.cpp index 57d342d0..9b387060 100644
--- a/krusader/Panel/krinterbriefview.cpp
+++ b/krusader/Panel/krinterbriefview.cpp
@@ -132,6 +132,8 @@ void KrInterBriefView::setup()
_header->hideSection(KrViewProperties::KrPermissions);
_header->hideSection(KrViewProperties::Owner);
_header->hideSection(KrViewProperties::Group);
+ _header->hideSection(KrViewProperties::Changed);
+ _header->hideSection(KrViewProperties::Accessed);
_header->setStretchLastSection(true);
_header->setSectionResizeMode(QHeaderView::Fixed);
_header->setSectionsClickable(true);
diff --git a/krusader/Panel/krinterdetailedview.cpp \
b/krusader/Panel/krinterdetailedview.cpp index 63326e06..8c9090ff 100644
--- a/krusader/Panel/krinterdetailedview.cpp
+++ b/krusader/Panel/krinterdetailedview.cpp
@@ -112,6 +112,8 @@ void KrInterDetailedView::doRestoreSettings(KConfigGroup grp)
hideColumn(KrViewProperties::Permissions);
hideColumn(KrViewProperties::Owner);
hideColumn(KrViewProperties::Group);
+ hideColumn(KrViewProperties::Changed);
+ hideColumn(KrViewProperties::Accessed);
header()->resizeSection(KrViewProperties::Ext, \
QFontMetrics(_viewFont).width("tar.bz2 "));
header()->resizeSection(KrViewProperties::KrPermissions, \
QFontMetrics(_viewFont).width("rwx "));
header()->resizeSection(KrViewProperties::Size, \
QFontMetrics(_viewFont).width("9") * 10); @@ -122,6 +124,13 @@ void \
KrInterDetailedView::doRestoreSettings(KConfigGroup grp)
header()->resizeSection(KrViewProperties::Modified, \
QFontMetrics(_viewFont).width(desc)); } else {
header()->restoreState(savedState);
+
+ // do not show new columns by default; restoreState() shows columns not \
saved + if (KrGlobal::sCurrentConfigVersion < KrGlobal::sConfigVersion) {
+ hideColumn(KrViewProperties::Changed);
+ hideColumn(KrViewProperties::Accessed);
+ }
+
_model->setExtensionEnabled(!isColumnHidden(KrViewProperties::Ext));
}
diff --git a/krusader/Panel/krsort.cpp b/krusader/Panel/krsort.cpp
index 3a754b55..ca0c7fbe 100644
--- a/krusader/Panel/krsort.cpp
+++ b/krusader/Panel/krsort.cpp
@@ -280,9 +280,11 @@ bool itemLessThan(SortProps *sp, SortProps *sp2)
return compareTexts(sp->name(), sp2->name(), sp->properties(), \
sp->isAscending(), true); return file1->getSize() < file2->getSize();
case KrViewProperties::Modified:
- if (file1->getTime_t() == file2->getTime_t())
- return compareTexts(sp->name(), sp2->name(), sp->properties(), \
sp->isAscending(), true);
- return file1->getTime_t() < file2->getTime_t();
+ return compareTime(file1->getTime_t(), file2->getTime_t(), sp, sp2);
+ case KrViewProperties::Changed:
+ return compareTime(file1->getChangedTime(), file2->getChangedTime(), sp, \
sp2); + case KrViewProperties::Accessed:
+ return compareTime(file1->getAccessTime(), file2->getAccessTime(), sp, \
sp2); case KrViewProperties::Type:
case KrViewProperties::Permissions:
case KrViewProperties::KrPermissions:
@@ -295,6 +297,12 @@ bool itemLessThan(SortProps *sp, SortProps *sp2)
return sp->name() < sp2->name();
}
+bool compareTime(time_t time1, time_t time2, SortProps *sp, SortProps *sp2)
+{
+ return time1 != time2 ? time1 < time2 :
+ compareTexts(sp->name(), sp2->name(), sp->properties(), \
sp->isAscending(), true); +}
+
bool itemGreaterThan(SortProps *sp, SortProps *sp2)
{
return !itemLessThan(sp, sp2);
diff --git a/krusader/Panel/krsort.h b/krusader/Panel/krsort.h
index 21d79d2c..c06f05f9 100644
--- a/krusader/Panel/krsort.h
+++ b/krusader/Panel/krsort.h
@@ -92,6 +92,7 @@ private:
bool compareTexts(QString aS1, QString aS2, const KrViewProperties * \
_viewProperties, bool asc, bool isName); bool itemLessThan(SortProps *sp, SortProps \
*sp2); bool itemGreaterThan(SortProps *sp, SortProps *sp2);
+bool compareTime(time_t time1, time_t time2, SortProps *sp, SortProps *sp2);
typedef bool(*LessThanFunc)(SortProps*, SortProps*);
diff --git a/krusader/Panel/krviewproperties.h b/krusader/Panel/krviewproperties.h
index 7c6cc8c8..2dd6ce4d 100644
--- a/krusader/Panel/krviewproperties.h
+++ b/krusader/Panel/krviewproperties.h
@@ -61,7 +61,9 @@ public:
KrPermissions = 0x6,
Owner = 0x7,
Group = 0x8,
- MAX_COLUMNS = 0x09
+ Changed = 0x9,
+ Accessed = 0xa,
+ MAX_COLUMNS = 0x0b
};
enum SortOptions {
Descending = 0x200,
diff --git a/krusader/Panel/listmodel.cpp b/krusader/Panel/listmodel.cpp
index 21ad8328..9c705c0d 100644
--- a/krusader/Panel/listmodel.cpp
+++ b/krusader/Panel/listmodel.cpp
@@ -150,9 +150,13 @@ QVariant ListModel::data(const QModelIndex& index, int role) \
const return mimeType.isEmpty() ? QVariant() : mimeType;
}
case KrViewProperties::Modified: {
- if (fileitem == _dummyFileItem)
- return QVariant();
- return dateText(fileitem->getTime_t());
+ return fileitem == _dummyFileItem ? QVariant() : \
dateText(fileitem->getTime_t()); + }
+ case KrViewProperties::Changed: {
+ return fileitem == _dummyFileItem ? QVariant() : \
dateText(fileitem->getChangedTime()); + }
+ case KrViewProperties::Accessed: {
+ return fileitem == _dummyFileItem ? QVariant() : \
dateText(fileitem->getAccessTime()); }
case KrViewProperties::Permissions: {
if (fileitem == _dummyFileItem)
@@ -406,6 +410,8 @@ QVariant ListModel::headerData(int section, Qt::Orientation \
orientation, int rol case KrViewProperties::Size: return i18nc("File property", \
"Size"); case KrViewProperties::Type: return i18nc("File property", "Type");
case KrViewProperties::Modified: return i18nc("File property", "Modified");
+ case KrViewProperties::Changed: return i18nc("File property", "Changed");
+ case KrViewProperties::Accessed: return i18nc("File property", "Accessed");
case KrViewProperties::Permissions: return i18nc("File property", "Perms");
case KrViewProperties::KrPermissions: return i18nc("File property", "rwx");
case KrViewProperties::Owner: return i18nc("File property", "Owner");
@@ -516,6 +522,8 @@ QString ListModel::toolTipText(FileItem *fileItem) const
}
text += i18nc("File property", "Type: %1", KrView::mimeTypeText(fileItem));
text += "<br>" + i18nc("File property", "Modified: %1", \
dateText(fileItem->getTime_t())); + text += "<br>" + i18nc("File property", \
"Changed: %1", dateText(fileItem->getChangedTime())); + text += "<br>" + \
i18nc("File property", "Last Access: %1", dateText(fileItem->getAccessTime())); text \
+= "<br>" + i18nc("File property", "Permissions: %1", \
KrView::permissionsText(properties(), fileItem));
text += "<br>" + i18nc("File property", "Owner: %1", fileItem->getOwner());
diff --git a/krusader/UserAction/expander.cpp b/krusader/UserAction/expander.cpp
index 84a85eaa..e40de596 100644
--- a/krusader/UserAction/expander.cpp
+++ b/krusader/UserAction/expander.cpp
@@ -802,34 +802,32 @@ TagString exp_ColSort::expFunc(const KrPanel* panel, const \
QStringList& paramete
if (parameter[0].toLower() == "name") {
column = KrViewProperties::Name;
- } else
- if (parameter[0].toLower() == "ext") {
- column = KrViewProperties::Ext;
- } else
- if (parameter[0].toLower() == "type") {
- column = KrViewProperties::Type;
- } else
- if (parameter[0].toLower() == "size") {
- column = KrViewProperties::Size;
- } else
- if (parameter[0].toLower() == "modified") {
- column = KrViewProperties::Modified;
- } else
- if (parameter[0].toLower() == "perms") {
- column = KrViewProperties::Permissions;
- } else
- if (parameter[0].toLower() == "rwx") {
- column = KrViewProperties::KrPermissions;
- } else
- if (parameter[0].toLower() == "owner") {
- column = KrViewProperties::Owner;
- } else
- if (parameter[0].toLower() == "group") {
- column = KrViewProperties::Group;
- } else {
- setError(exp, Error(Error::exp_S_WARNING, \
Error::exp_C_ARGUMENT, i18n("Expander: unknown column specified for %_ColSort(%1)%", \
parameter[0])));
- return QString();
- }
+ } else if (parameter[0].toLower() == "ext") {
+ column = KrViewProperties::Ext;
+ } else if (parameter[0].toLower() == "type") {
+ column = KrViewProperties::Type;
+ } else if (parameter[0].toLower() == "size") {
+ column = KrViewProperties::Size;
+ } else if (parameter[0].toLower() == "modified") {
+ column = KrViewProperties::Modified;
+ } else if (parameter[0].toLower() == "changed") {
+ column = KrViewProperties::Changed;
+ } else if (parameter[0].toLower() == "accessed") {
+ column = KrViewProperties::Accessed;
+ } else if (parameter[0].toLower() == "perms") {
+ column = KrViewProperties::Permissions;
+ } else if (parameter[0].toLower() == "rwx") {
+ column = KrViewProperties::KrPermissions;
+ } else if (parameter[0].toLower() == "owner") {
+ column = KrViewProperties::Owner;
+ } else if (parameter[0].toLower() == "group") {
+ column = KrViewProperties::Group;
+ } else {
+ setError(exp, Error(Error::exp_S_WARNING, Error::exp_C_ARGUMENT,
+ i18n("Expander: unknown column specified for \
%_ColSort(%1)%", + parameter[0])));
+ return QString();
+ }
bool descending = panel->view->properties()->sortOptions & \
KrViewProperties::Descending;
diff --git a/krusader/krglobal.cpp b/krusader/krglobal.cpp
index 60e29ced..89b38c11 100644
--- a/krusader/krglobal.cpp
+++ b/krusader/krglobal.cpp
@@ -51,6 +51,8 @@ JobMan *KrGlobal::jobMan = 0;
// ListPanel *KrGlobal::activePanel = 0;
QKeySequence KrGlobal::copyShortcut;
+const int KrGlobal::sConfigVersion;
+int KrGlobal::sCurrentConfigVersion;
KrPanel *KrGlobal::activePanel()
{
diff --git a/krusader/krglobal.h b/krusader/krglobal.h
index d7ab9eb8..b15cf0cc 100644
--- a/krusader/krglobal.h
+++ b/krusader/krglobal.h
@@ -74,6 +74,10 @@ public:
// static void enableAction(const char *name, bool enable);
// static QAction *getAction(const char *name);
+
+ /** Version of saved configuration. Use this to detect configuration updates. */
+ static const int sConfigVersion = 1;
+ static int sCurrentConfigVersion;
};
#define krConfig KrGlobal::config
diff --git a/krusader/krusader.cpp b/krusader/krusader.cpp
index f28f2ac5..3e572ab4 100644
--- a/krusader/krusader.cpp
+++ b/krusader/krusader.cpp
@@ -128,7 +128,7 @@ Krusader::Krusader(const QCommandLineParser &parser) : \
KParts::MainWindow(0,
plzWait = new KRPleaseWaitHandler(this);
- bool runKonfig = versionControl();
+ const bool runKonfig = versionControl();
QString message;
switch (krConfig->accessMode()) {
@@ -329,42 +329,27 @@ void Krusader::setTray(bool forceCreation)
bool Krusader::versionControl()
{
-#define FIRST_RUN "First Time"
- bool retval = false;
// create config file
krConfig = KSharedConfig::openConfig().data();
KConfigGroup nogroup(krConfig, QString());
-
- bool firstRun = nogroup.readEntry(FIRST_RUN, true);
-
-#if 0
- QString oldVerText = nogroup.readEntry("Version", "10.0");
- oldVerText.truncate(oldVerText.lastIndexOf(".")); // remove the third dot
- float oldVer = oldVerText.toFloat();
- // older icompatible version
- if (oldVer <= 0.9) {
- KMessageBox::information(krApp, i18n("A configuration of 1.51 or older was \
detected. Krusader has to reset your configuration to default values.\nNote: your \
bookmarks and keybindings will remain intact.\nKrusader will now run \
Konfigurator."));
- /*if ( !QDir::home().remove( ".kde/share/config/krusaderrc" ) ) {
- KMessageBox::error( krApp, i18n( "Unable to remove your krusaderrc file. \
Please remove it manually and rerun Krusader." ) );
- exit( 1 );
- }*/
- retval = true;
- krConfig->reparseConfiguration();
- }
-#endif
+ const bool firstRun = nogroup.readEntry("First Time", true);
+ KrGlobal::sCurrentConfigVersion = nogroup.readEntry("Config Version", -1);
// first installation of krusader
if (firstRun) {
- KMessageBox::information(krApp, i18n("<qt><b>Welcome to Krusader.</b><p>As \
this is your first run, your machine will now be checked for external applications. \
Then the Konfigurator will be launched where you can customize Krusader to your \
needs.</p></qt>"));
- retval = true;
+ KMessageBox::information(
+ krApp, i18n("<qt><b>Welcome to Krusader.</b><p>As this is your first \
run, your machine " + "will now be checked for external \
applications. Then the Konfigurator will " + "be launched \
where you can customize Krusader to your needs.</p></qt>")); }
nogroup.writeEntry("Version", VERSION);
- nogroup.writeEntry(FIRST_RUN, false);
+ nogroup.writeEntry("First Time", false);
krConfig->sync();
- QDir().mkpath(QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) \
+ QStringLiteral("/krusader/")); + \
QDir().mkpath(QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + \
+ QStringLiteral("/krusader/"));
- return retval;
+ return firstRun;
}
void Krusader::statusBarUpdate(const QString& mess)
@@ -425,6 +410,9 @@ void Krusader::saveSettings() {
MAIN_VIEW->setTerminalEmulator(false, true);
}
+ KConfigGroup noGroup(krConfig, QString());
+ noGroup.writeEntry("Config Version", KrGlobal::sConfigVersion);
+
// save toolbar settings
KConfigGroup cfg(krConfig, "Main Toolbar");
toolBar()->saveSettings(cfg);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic