[gelöst] QFileDialog verliert selektierten Dateinamen

Alles rund um die Programmierung mit Qt
Antworten
Anton
Beiträge: 9
Registriert: 27. Juli 2006 13:11
Wohnort: Asperg

[gelöst] QFileDialog verliert selektierten Dateinamen

Beitrag von Anton »

Ich benutze QFileDialog für das Öffnen, Speichern, Importieren und Exportieren von Dateien (nicht die statischen Funktionen wie "getSaveFileName" oder "getOpenFileName").

Der Dialog "Save as" erhält den aktuellen Dateinamen per selectFile(currentFile) als Default. Das klappt auch, solange ich das Verzeichnis gar nicht oder nur nach oben wechsle. Sobald ich ein Unterverzeichnis selektiere, leert sich das Eingabefeld "File name:" und der Dateiname muss von Hand eingetippt werden.

Kennt jemand eine Lösung für diese Eigenart von QFileDialog? Oder habe ich bei der Aufbereitung des Dialogs etwas falsch gemach?

Code: Alles auswählen

bool MdiChild::saveAs()
{
	QFileDialog	dialog(this, tr("Save As"));
	QStringList	filters, files;
	QString		fileName;
	QSettings	settings;

	filters << tr("binary equipment files (*.eqm)");
	filters << tr("alfa numeric XML files (*.xqm)");
	filters << tr("All files (*)");
	dialog.setFilters(filters);
	dialog.setFileMode(QFileDialog::AnyFile);
	dialog.setDefaultSuffix("eqm");
	dialog.setDirectory(theMainWin->recentDir("Files/recentSaveAs"));
	dialog.selectFile(pageTitle());
	dialog.setAcceptMode(QFileDialog::AcceptSave);
	dialog.setConfirmOverwrite(true);
	if (!dialog.exec())
        return false;

	files = dialog.selectedFiles();
	if (files.isEmpty())
        return false;

	fileName = files[0]; 
    if (fileName.isEmpty())
        return false;

    QFile		file(fileName);
	QFileInfo	fileInfo(file);
	theMainWin->addToResentFiles(fileName);
	if (fileInfo.suffix().toLower() == "eqm") {
		if (saveFile(fileName)) {
			setCurrentFile(fileName);
			emit pageTitleModified(this);
			theMainWin->setWindowTitle(pageTitle());
			settings.setValue("Files/recentSaveAs", fileName);
			return true;
		} else {
			return false;
		}
	} else {
		return exportFile(fileName);
	}
}
Edit:
Das ist bei Trolltech schon bekannt und seit mitte Mai gefixt s. auch: http://trolltech.com/developer/task-tra ... &id=162944
Ist aber in der aktuellen Version wohl noch nicht angkommen.

Anton
Qt Desktop Edition - Plattform: Windows - Version: 4.3.0
Antworten