From acf4ea73d5756c1f48ea9fa8fea0f8dba41cf231 Mon Sep 17 00:00:00 2001 From: Laurent Rineau Date: Fri, 18 Jul 2008 13:49:02 +0000 Subject: [PATCH] Let the application remember in which directory lies the last open file. That directory is used to load new files. --- Polyhedron/demo/Polyhedron/MainWindow.cpp | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/Polyhedron/demo/Polyhedron/MainWindow.cpp b/Polyhedron/demo/Polyhedron/MainWindow.cpp index 8caf0ea7895..6eea2006108 100644 --- a/Polyhedron/demo/Polyhedron/MainWindow.cpp +++ b/Polyhedron/demo/Polyhedron/MainWindow.cpp @@ -151,15 +151,19 @@ void MainWindow::updateViewerBBox() void MainWindow::open(QString filename) { - int index = scene->open(filename); - if(index >= 0) { - setCurrentFile(filename); - selectPolyhedron(index); + QFileInfo fileinfo(filename); + if(fileinfo.isFile() && fileinfo.isReadable()) { + int index = scene->open(filename); + if(index >= 0) { + QSettings settings; + settings.setValue("OFF open directory", + fileinfo.absoluteDir().absolutePath()); + setCurrentFile(filename); + selectPolyhedron(index); + } } } - - void MainWindow::selectPolyhedron(int i) { treeView->selectionModel()->select(scene->createSelection(i), @@ -286,10 +290,13 @@ void MainWindow::closeEvent(QCloseEvent *event) void MainWindow::on_actionLoadPolyhedron_triggered() { + QSettings settings; + QString directory = settings.value("OFF open directory", + QDir::current().dirName()).toString(); QStringList filenames = QFileDialog::getOpenFileNames(this, tr("Load polyhedron..."), - QString(), + directory, tr("OFF files (*.off)\n" "All files (*)")); if(!filenames.isEmpty()) {