void App::slotFileOpen() { QString path; /* Create a file open dialog */ QFileDialog dialog(this); dialog.setWindowTitle(tr("Open a fixture definition")); dialog.setAcceptMode(QFileDialog::AcceptOpen); dialog.setNameFilter(KFixtureFilter); #ifdef Q_WS_X11 path = QString("%1/%2").arg(getenv("HOME")).arg(USERFIXTUREDIR); QList <QUrl> sidebar; /* Append the system and user fixture dirs to the sidebar. This is done on Linux only, because WIN32 & MAC ports save fixtures in a user-writable directory. */ sidebar.append(QUrl::fromLocalFile(FIXTUREDIR)); /* Ensure that there is a directory for user fixtures and append that to the sidebar. */ QDir dir(path); if (dir.exists() == false) dir.mkpath("."); sidebar.append(QUrl::fromLocalFile(path)); dialog.setSidebarUrls(sidebar); #elif __APPLE__ /* Start from OSX bundle's own fixture definition directory */ path = QString("%1/../%2").arg(QApplication::applicationDirPath()) .arg(FIXTUREDIR); dialog.setDirectory(path); #else /* Start from installation's fixture definition sub-directory */ dialog.setDirectory(QString(FIXTUREDIR)); #endif /* Execute the dialog */ if (dialog.exec() != QDialog::Accepted) return; /* Get a file name */ path = dialog.selectedFiles().first(); if (path.isEmpty() == false) loadFixtureDefinition(path); }
void App::slotFileOpen() { QSettings settings; /* Create a file open dialog */ QFileDialog dialog(this); dialog.setWindowTitle(tr("Open a fixture definition")); dialog.setFileMode(QFileDialog::ExistingFiles); dialog.setAcceptMode(QFileDialog::AcceptOpen); QStringList filters; filters << KAllFilter; filters << KQXFFilter; filters << KD4Filter; dialog.setNameFilters(filters); QVariant var = settings.value(SETTINGS_OPENDIALOGSTATE); if (var.isValid() == true) { dialog.restoreState(var.toByteArray()); } dialog.setDirectory(m_workingDirectory); /* Execute the dialog */ if (dialog.exec() != QDialog::Accepted) return; /* Get a file name */ QStringListIterator it(dialog.selectedFiles()); while (it.hasNext() == true) loadFixtureDefinition(it.next()); settings.setValue(SETTINGS_OPENDIALOGSTATE, dialog.saveState()); m_workingDirectory = dialog.directory(); settings.setValue(SETTINGS_WORKINGPATH, m_workingDirectory.absolutePath()); }