[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-kimageshop
Subject: [krita/kazakov/async-saving] plugins/dockers/imagedocker: FEATURE: save lastly visited directory in
From: Dmitry Kazakov <null () kde ! org>
Date: 2017-07-26 12:54:51
Message-ID: E1daLpz-0005id-9S () code ! kde ! org
[Download RAW message or body]
Git commit 128393f1a9f7dfe2394540378e3ba47055a4a562 by Dmitry Kazakov.
Committed on 26/07/2017 at 12:54.
Pushed by dkazakov into branch 'kazakov/async-saving'.
FEATURE: save lastly visited directory in the Reference Images docker
Now the docker saves/restores the lastly visited reference folder
over Krita restart.
** A question to painters **
Do you also need to restore the open reference images?
Please take into account that at the moment the list of reference
images is not per-painting, it is global, that is shared between all
open images in Krita.
CC:kimageshop@kde.org
M +31 -2 plugins/dockers/imagedocker/imagedocker_dock.cpp
M +4 -0 plugins/dockers/imagedocker/imagedocker_dock.h
https://commits.kde.org/krita/128393f1a9f7dfe2394540378e3ba47055a4a562
diff --git a/plugins/dockers/imagedocker/imagedocker_dock.cpp \
b/plugins/dockers/imagedocker/imagedocker_dock.cpp index eebaceebf98..fd846ff51a8 \
100644
--- a/plugins/dockers/imagedocker/imagedocker_dock.cpp
+++ b/plugins/dockers/imagedocker/imagedocker_dock.cpp
@@ -15,6 +15,10 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
+#include <kconfig.h>
+#include <kconfiggroup.h>
+#include <ksharedconfig.h>
+
#include "imagedocker_dock.h"
#include "image_strip_scene.h"
#include "image_view.h"
@@ -224,8 +228,7 @@ ImageDockerDock::ImageDockerDock():
connect(m_ui->cmbPath, SIGNAL(activated(const QString&)), \
SLOT(slotChangeRoot(const QString&)));
- m_model->setRootPath(QDesktopServices::storageLocation(QDesktopServices::PicturesLocation));
- m_ui->treeView->setRootIndex(m_proxyModel->mapFromSource(m_model->index(QDesktopServices::storageLocation(QDesktopServices::PicturesLocation))));
+ loadConfigState();
connect(m_ui->treeView , SIGNAL(doubleClicked(const QModelIndex&)) \
, SLOT(slotItemDoubleClicked(const QModelIndex&)));
connect(m_ui->bnBack , SIGNAL(clicked(bool)) \
, SLOT(slotBackButtonClicked())); @@ -249,6 +252,8 @@ \
ImageDockerDock::ImageDockerDock():
ImageDockerDock::~ImageDockerDock()
{
+ saveConfigState();
+
delete m_proxyModel;
delete m_model;
delete m_imageStripScene;
@@ -374,6 +379,30 @@ void ImageDockerDock::setZoom(const ImageInfo& info)
m_popupUi->zoomSlider->blockSignals(false);
}
+void ImageDockerDock::saveConfigState()
+{
+ const QString lastUsedDirectory = \
m_model->filePath(m_proxyModel->mapToSource(m_ui->treeView->rootIndex())); +
+ KConfigGroup cfg = KSharedConfig::openConfig()->group("referenceImageDocker");
+ cfg.writeEntry("lastUsedDirectory", lastUsedDirectory);
+}
+
+void ImageDockerDock::loadConfigState()
+{
+ const QString defaultLocation = \
QDesktopServices::storageLocation(QDesktopServices::PicturesLocation); +
+ KConfigGroup cfg = KSharedConfig::openConfig()->group("referenceImageDocker");
+ QString lastUsedDirectory = cfg.readEntry("lastUsedDirectory", defaultLocation);
+
+ if (!QFileInfo(lastUsedDirectory).exists()) {
+ lastUsedDirectory = defaultLocation;
+ }
+
+ m_model->setRootPath(lastUsedDirectory);
+ m_ui->treeView->setRootIndex(m_proxyModel->mapFromSource(m_model->index(lastUsedDirectory)));
+ updatePath(lastUsedDirectory);
+}
+
// ------------ slots ------------------------------------------------- //
diff --git a/plugins/dockers/imagedocker/imagedocker_dock.h \
b/plugins/dockers/imagedocker/imagedocker_dock.h index c5df038db21..c02f7cfd09a \
100644
--- a/plugins/dockers/imagedocker/imagedocker_dock.h
+++ b/plugins/dockers/imagedocker/imagedocker_dock.h
@@ -93,6 +93,10 @@ private:
bool isImageLoaded() const { return m_currImageID != -1; }
void setZoom(const ImageInfo& info);
+ void saveConfigState();
+ void loadConfigState();
+
+
private:
QFileSystemModel* m_model;
QButtonGroup* m_zoomButtons;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic