示例#1
0
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);
}
示例#2
0
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());
}