diff --git a/src/editor/NewWoiceDialog.cpp b/src/editor/NewWoiceDialog.cpp index f757ea92..5b1a6ebd 100644 --- a/src/editor/NewWoiceDialog.cpp +++ b/src/editor/NewWoiceDialog.cpp @@ -234,7 +234,10 @@ NewWoiceDialog::NewWoiceDialog(bool multi, const PxtoneClient *client, QString("%1").arg(EVENTDEFAULT_KEY / PITCH_PER_KEY)); ui->previewKeyLine->setValidator(new QIntValidator(0, 150, this)); - m_browse_woice_dialog->setDirectory(QString()); + // If we don't unset the directory, then it'll stay as the cwd. But we want to + // use cwd if this is a first open, hence the if. + if (Settings::BrowseWoiceState::isSet()) + m_browse_woice_dialog->setDirectory(QString()); if (!m_browse_woice_dialog->restoreState(Settings::BrowseWoiceState::get())) qDebug() << "Could not restore browse woice dialog state"; m_browse_woice_dialog->setFileMode(multi ? QFileDialog::ExistingFiles @@ -252,7 +255,8 @@ NewWoiceDialog::NewWoiceDialog(bool multi, const PxtoneClient *client, connect(m_browse_woice_dialog, &QFileDialog::currentChanged, this, &NewWoiceDialog::previewWoice); - m_browse_search_folder_dialog->setDirectory(QString()); + if (Settings::SearchWoiceState::isSet()) + m_browse_search_folder_dialog->setDirectory(QString()); if (!m_browse_search_folder_dialog->restoreState( Settings::SearchWoiceState::get())) qDebug() << "Could not restore woice search dialog state"; diff --git a/src/editor/Settings.cpp b/src/editor/Settings.cpp index aa351c98..bc04d4df 100644 --- a/src/editor/Settings.cpp +++ b/src/editor/Settings.cpp @@ -182,12 +182,14 @@ void set(const QList &value) { namespace SearchWoiceState { const char *KEY = "search_woice_state"; +bool isSet() { return QSettings().contains(KEY); } QByteArray get() { return QSettings().value(KEY, QVariant()).toByteArray(); } void set(const QByteArray &value) { return QSettings().setValue(KEY, value); } } // namespace SearchWoiceState namespace BrowseWoiceState { const char *KEY = "browse_woice_state"; +bool isSet() { return QSettings().contains(KEY); } QByteArray get() { return QSettings().value(KEY, QVariant()).toByteArray(); } void set(const QByteArray &value) { return QSettings().setValue(KEY, value); } } // namespace BrowseWoiceState diff --git a/src/editor/Settings.h b/src/editor/Settings.h index 04107c5b..ffb17ee9 100644 --- a/src/editor/Settings.h +++ b/src/editor/Settings.h @@ -116,11 +116,13 @@ void set(const QList &); } // namespace CopyKinds namespace SearchWoiceState { +bool isSet(); QByteArray get(); void set(const QByteArray &); } // namespace SearchWoiceState namespace BrowseWoiceState { +bool isSet(); QByteArray get(); void set(const QByteArray &); } // namespace BrowseWoiceState