MussaWindow::MussaWindow(Mussa *analysis_, QWidget *parent) :
QMainWindow(parent),
analysis(analysis_),
+ default_dir(QDir::home().absolutePath().toStdString(), fs::native),
motif_editor(0),
setup_analysis_dialog(this),
browser(this),
std::auto_ptr<QFileDialog> dialog(new QFileDialog(this));
dialog->setAcceptMode(QFileDialog::AcceptSave);
dialog->setFileMode(QFileDialog::AnyFile);
- dialog->setDirectory(QDir::home());
+ dialog->setDirectory(QDir(default_dir.native_directory_string().c_str()));
QStringList fileNames;
if (not dialog->exec()) {
return;
}
analysis->save(save_path);
+ default_dir = (save_path / "..").normalize();
}
bool MussaWindow::isClearingAnalysisSafe()
{
QString caption("Load a motif list");
QString filter("Motif list(*.txt *.mtl)");
+ QDir default_qdir(default_dir.native_directory_string().c_str());
QString path = QFileDialog::getOpenFileName(this,
- caption,
- QDir::currentPath(),
- filter);
+ caption,
+ default_qdir.absolutePath(),
+ filter);
// user hit cancel?
if (path.isNull())
return;
try {
fs::path converted_path(path.toStdString(), fs::native);
analysis->load_motifs(converted_path);
+ default_dir = converted_path.branch_path();
} catch (runtime_error e) {
QString msg("Unable to load ");
msg += path;
{
QString caption("Load a mussa parameter file");
QString filter("Mussa Parameters (*.mupa)");
- QString mupa_path = QFileDialog::getOpenFileName(this,
- caption,
- QDir::currentPath(),
- filter);
+ QDir default_qdir(QDir(default_dir.native_directory_string().c_str()));
+
+ QString mupa_path = QFileDialog::getOpenFileName(
+ this,
+ caption,
+ default_qdir.absolutePath(),
+ filter
+ );
// user hit cancel?
if (mupa_path.isNull())
return;
m->analyze();
setAnalysis(m);
setWindowTitle(converted_path.native_file_string().c_str());
+ // grab the path ignoring the mupa file portion
+ default_dir = converted_path.branch_path();
} catch (mussa_load_error e) {
QString msg("Unable to load ");
msg += mupa_path;
void MussaWindow::loadSavedAnalysis()
{
+ QDir default_qdir(QDir(default_dir.native_directory_string().c_str()));
QString caption("Load a previously run analysis");
- QString muway_dir = QFileDialog::getExistingDirectory(this,
- caption,
- QDir::currentPath());
+ QString muway_dir = QFileDialog::getExistingDirectory(
+ this,
+ caption,
+ default_qdir.absolutePath()
+ );
// user hit cancel?
if (muway_dir.isNull())
return;
// only switch mussas if we loaded without error
setAnalysis(m);
setWindowTitle(converted_path.native_file_string().c_str());
+ default_dir = converted_path.branch_path();
} catch (mussa_load_error e) {
QString msg("Unable to load ");
msg += muway_dir;