Keep track of CWD between image open file dialogs

This commit is contained in:
Jim Evins
2017-01-01 23:39:59 -05:00
parent 4cc5882ec3
commit bd41164816
2 changed files with 19 additions and 2 deletions
+17 -2
View File
@@ -43,7 +43,7 @@
/// Constructor /// Constructor
/// ///
ObjectEditor::ObjectEditor( QWidget *parent ) ObjectEditor::ObjectEditor( QWidget *parent )
: mModel(0), mObject(0), mBlocked(false) : mModel(0), mObject(0), mImageCwd("."), mBlocked(false)
{ {
setupUi( this ); setupUi( this );
@@ -490,6 +490,17 @@ void ObjectEditor::onFillControlsChanged()
void ObjectEditor::onImageFileButtonClicked() 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 = QString filters =
tr("Image files (*.png *.jpg *.jpeg *.gif *.bmp *.pbm *.pgm *.ppm *.xbm *.xpm *.svg)") + ";;" + tr("Image files (*.png *.jpg *.jpeg *.gif *.bmp *.pbm *.pgm *.ppm *.xbm *.xpm *.svg)") + ";;" +
tr("All files (*)") + ";;" + tr("All files (*)") + ";;" +
@@ -507,12 +518,16 @@ void ObjectEditor::onImageFileButtonClicked()
QString filename = QString filename =
QFileDialog::getOpenFileName( this->window(), QFileDialog::getOpenFileName( this->window(),
tr("gLabels - Select image file"), tr("gLabels - Select image file"),
".", filters ); cwd, filters );
if ( !filename.isEmpty() ) if ( !filename.isEmpty() )
{ {
mUndoRedoModel->checkpoint( tr("Set image") ); mUndoRedoModel->checkpoint( tr("Set image") );
mObject->setFilenameNode( TextNode( false, filename ) ); mObject->setFilenameNode( TextNode( false, filename ) );
// Save CWD for next open
QFileInfo fileInfo( filename );
mImageCwd = fileInfo.absolutePath();
} }
} }
+2
View File
@@ -106,6 +106,8 @@ private:
QButtonGroup* textHAlignGroup; QButtonGroup* textHAlignGroup;
QButtonGroup* textVAlignGroup; QButtonGroup* textVAlignGroup;
QString mImageCwd;
bool mBlocked; bool mBlocked;
}; };