]> git.lyx.org Git - features.git/commitdiff
Another patch from Vincent. This one fixing the very annoying bug 5138.
authorRichard Heck <rgheck@comcast.net>
Fri, 8 Aug 2008 15:41:32 +0000 (15:41 +0000)
committerRichard Heck <rgheck@comcast.net>
Fri, 8 Aug 2008 15:41:32 +0000 (15:41 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26097 a592a061-630c-0410-9148-cb99ea01b6c8

src/frontends/qt4/FileDialog.cpp

index 91b5a71b464c12f9049bfb10824239f300dcdccb..0df24ebbd0937aea2b642f4e48d1aed3a36d68a0 100644 (file)
@@ -96,7 +96,10 @@ FileDialog::Result FileDialog::save(QString const & path,
                QFileDialog::getSaveFileName(qApp->focusWidget(),
             title_, startsWith, filters.join(";;"),
                         0, QFileDialog::DontConfirmOverwrite);
-       result.second = toqstr(os::internal_path(fromqstr(name)));
+       if (name.isNull())
+               result.first = FileDialog::Later;
+       else
+               result.second = toqstr(os::internal_path(fromqstr(name)));
 #else
        LyXFileDialog dlg(title_, path, filters, private_->b1, private_->b2);
 #if QT_VERSION != 0x040203
@@ -113,6 +116,8 @@ FileDialog::Result FileDialog::save(QString const & path,
        LYXERR(Debug::GUI, "result " << res);
        if (res == QDialog::Accepted)
                result.second = internalPath(dlg.selectedFiles()[0]);
+       else
+               result.first = FileDialog::Later;
        dlg.hide();
 #endif
        return result;
@@ -132,7 +137,10 @@ FileDialog::Result FileDialog::open(QString const & path,
        QString const startsWith = makeAbsPath(suggested, path);
        QString const file = QFileDialog::getOpenFileName(qApp->focusWidget(),
                title_, startsWith, filters.join(";;"));
-       result.second = internalPath(file);
+       if (file.isNull())
+               result.first = FileDialog::Later;
+       else
+               result.second = internalPath(file);
 #else
        LyXFileDialog dlg(title_, path, filters, private_->b1, private_->b2);
 
@@ -144,6 +152,8 @@ FileDialog::Result FileDialog::open(QString const & path,
        LYXERR(Debug::GUI, "result " << res);
        if (res == QDialog::Accepted)
                result.second = internalPath(dlg.selectedFiles()[0]);
+       else
+               result.first = FileDialog::Later;
        dlg.hide();
 #endif
        return result;
@@ -161,9 +171,12 @@ FileDialog::Result FileDialog::opendir(QString const & path,
 #ifdef USE_NATIVE_FILEDIALOG
        QString const startsWith = toqstr(makeAbsPath(fromqstr(suggested),
                fromqstr(path)).absFilename());
-       result.second = toqstr(os::internal_path(fromqstr(
-               QFileDialog::getExistingDirectory(qApp->focusWidget(),
-               title_, startsWith))));
+       QString const dir = QFileDialog::getExistingDirectory(qApp->focusWidget(),
+               title_, startsWith);
+       if (dir.isNull())
+               result.first = FileDialog::Later;
+       else
+               result.second = toqstr(os::internal_path(fromqstr(dir)));
 #else
        LyXFileDialog dlg(title_, path, QStringList(qt_("Directories")),
                private_->b1, private_->b2);
@@ -178,6 +191,8 @@ FileDialog::Result FileDialog::opendir(QString const & path,
        LYXERR(Debug::GUI, "result " << res);
        if (res == QDialog::Accepted)
                result.second = internalPath(dlg.selectedFiles()[0]);
+       else
+               result.first = FileDialog::Later;
        dlg.hide();
 #endif
        return result;