From bd41164816bf0adfe8cfda17535ab6c513f234a7 Mon Sep 17 00:00:00 2001 From: Jim Evins Date: Sun, 1 Jan 2017 23:39:59 -0500 Subject: [PATCH] Keep track of CWD between image open file dialogs --- glabels/ObjectEditor.cpp | 19 +++++++++++++++++-- glabels/ObjectEditor.h | 2 ++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/glabels/ObjectEditor.cpp b/glabels/ObjectEditor.cpp index 239f4dc..99b3dca 100644 --- a/glabels/ObjectEditor.cpp +++ b/glabels/ObjectEditor.cpp @@ -43,7 +43,7 @@ /// Constructor /// ObjectEditor::ObjectEditor( QWidget *parent ) - : mModel(0), mObject(0), mBlocked(false) + : mModel(0), mObject(0), mImageCwd("."), mBlocked(false) { setupUi( this ); @@ -490,6 +490,17 @@ void ObjectEditor::onFillControlsChanged() void ObjectEditor::onImageFileButtonClicked() { + // Either use saved CWD from a previous open or the current file, if it exists + QString cwd = mImageCwd; + if ( !mObject->filenameNode().isField() ) + { + QFileInfo fileInfo( mObject->filenameNode().data() ); + if ( fileInfo.isFile() ) + { + cwd = fileInfo.filePath(); + } + } + QString filters = tr("Image files (*.png *.jpg *.jpeg *.gif *.bmp *.pbm *.pgm *.ppm *.xbm *.xpm *.svg)") + ";;" + tr("All files (*)") + ";;" + @@ -507,12 +518,16 @@ void ObjectEditor::onImageFileButtonClicked() QString filename = QFileDialog::getOpenFileName( this->window(), tr("gLabels - Select image file"), - ".", filters ); + cwd, filters ); if ( !filename.isEmpty() ) { mUndoRedoModel->checkpoint( tr("Set image") ); mObject->setFilenameNode( TextNode( false, filename ) ); + + // Save CWD for next open + QFileInfo fileInfo( filename ); + mImageCwd = fileInfo.absolutePath(); } } diff --git a/glabels/ObjectEditor.h b/glabels/ObjectEditor.h index f6c7f58..16fef3f 100644 --- a/glabels/ObjectEditor.h +++ b/glabels/ObjectEditor.h @@ -106,6 +106,8 @@ private: QButtonGroup* textHAlignGroup; QButtonGroup* textVAlignGroup; + QString mImageCwd; + bool mBlocked; };