diff --git a/src/History.cpp b/src/History.cpp --- a/src/History.cpp +++ b/src/History.cpp @@ -22,6 +22,7 @@ #include "History.h" #include "konsoledebug.h" +#include "KonsoleSettings.h" // System #include @@ -70,15 +71,21 @@ // Determine the temp directory once // This class is called 3 times for each "unlimited" scrollback. // This has the down-side that users must restart to - // load changes (currently only 2 choices). + // load changes. if (!historyFileLocation.exists()) { KConfigGroup configGroup(KSharedConfig::openConfig(), "FileLocation"); if (configGroup.readEntry("scrollbackUseCacheLocation", false)) { *historyFileLocation() = QStandardPaths::writableLocation(QStandardPaths::CacheLocation); + } else if (configGroup.readEntry("scrollbackUseSpecifiedLocation", false)) { + const QUrl specifiedUrl = KonsoleSettings::scrollbackUseSpecifiedLocationDirectory(); + *historyFileLocation() = specifiedUrl.path(); } else { *historyFileLocation() = QDir::tempPath(); } - QDir().mkpath(*historyFileLocation()); + if (!QDir().mkpath(*historyFileLocation())) { + qCWarning(KonsoleDebug)<<"Unable to create scrollback folder "<<*historyFileLocation()<<" using "<setText(QDir::tempPath()); useUsersHomeLocationText->setText(QStandardPaths::writableLocation(QStandardPaths::CacheLocation)); + kcfg_scrollbackUseSpecifiedLocationDirectory->setMode(KFile::Directory); } diff --git a/src/settings/FileLocationSettings.ui b/src/settings/FileLocationSettings.ui --- a/src/settings/FileLocationSettings.ui +++ b/src/settings/FileLocationSettings.ui @@ -114,6 +114,52 @@ + + + + 0 + 0 + + + + Use specified loca&tion + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 50 + 20 + + + + + + + + + 2 + 0 + + + + text/css + + + + + + diff --git a/src/settings/konsole.kcfg b/src/settings/konsole.kcfg --- a/src/settings/konsole.kcfg +++ b/src/settings/konsole.kcfg @@ -124,5 +124,13 @@ false + + + false + + + + +