Let the application remember in which directory lies the last open file.

That directory is used to load new files.
This commit is contained in:
Laurent Rineau 2008-07-18 13:49:02 +00:00
parent 9e64a530f6
commit acf4ea73d5
1 changed files with 14 additions and 7 deletions

View File

@ -151,15 +151,19 @@ void MainWindow::updateViewerBBox()
void MainWindow::open(QString filename) void MainWindow::open(QString filename)
{ {
int index = scene->open(filename); QFileInfo fileinfo(filename);
if(index >= 0) { if(fileinfo.isFile() && fileinfo.isReadable()) {
setCurrentFile(filename); int index = scene->open(filename);
selectPolyhedron(index); if(index >= 0) {
QSettings settings;
settings.setValue("OFF open directory",
fileinfo.absoluteDir().absolutePath());
setCurrentFile(filename);
selectPolyhedron(index);
}
} }
} }
void MainWindow::selectPolyhedron(int i) void MainWindow::selectPolyhedron(int i)
{ {
treeView->selectionModel()->select(scene->createSelection(i), treeView->selectionModel()->select(scene->createSelection(i),
@ -286,10 +290,13 @@ void MainWindow::closeEvent(QCloseEvent *event)
void MainWindow::on_actionLoadPolyhedron_triggered() void MainWindow::on_actionLoadPolyhedron_triggered()
{ {
QSettings settings;
QString directory = settings.value("OFF open directory",
QDir::current().dirName()).toString();
QStringList filenames = QStringList filenames =
QFileDialog::getOpenFileNames(this, QFileDialog::getOpenFileNames(this,
tr("Load polyhedron..."), tr("Load polyhedron..."),
QString(), directory,
tr("OFF files (*.off)\n" tr("OFF files (*.off)\n"
"All files (*)")); "All files (*)"));
if(!filenames.isEmpty()) { if(!filenames.isEmpty()) {