forked from qt-creator/qt-creator
Editor: Check if file exists before extracting line no.
Correct also checking for flag value. Task-Number: QTCREATORBUG-8272 Change-Id: I5f919d9c79639a04c05900dc8be950855478a3fe Reviewed-by: David Schulz <david.schulz@digia.com>
This commit is contained in:
@@ -1272,9 +1272,13 @@ IEditor *EditorManager::openEditor(Core::Internal::EditorView *view, const QStri
|
|||||||
qDebug() << Q_FUNC_INFO << fileName << editorId.name();
|
qDebug() << Q_FUNC_INFO << fileName << editorId.name();
|
||||||
|
|
||||||
QString fn = fileName;
|
QString fn = fileName;
|
||||||
|
QFileInfo fi(fn);
|
||||||
int lineNumber = -1;
|
int lineNumber = -1;
|
||||||
if (flags && EditorManager::CanContainLineNumber)
|
if ((flags & EditorManager::CanContainLineNumber) && !fi.exists()) {
|
||||||
lineNumber = extractLineNumber(&fn);
|
lineNumber = extractLineNumber(&fn);
|
||||||
|
if (lineNumber != -1)
|
||||||
|
fi.setFile(fn);
|
||||||
|
}
|
||||||
|
|
||||||
if (fn.isEmpty())
|
if (fn.isEmpty())
|
||||||
return 0;
|
return 0;
|
||||||
@@ -1285,13 +1289,12 @@ IEditor *EditorManager::openEditor(Core::Internal::EditorView *view, const QStri
|
|||||||
const QList<IEditor *> editors = editorsForFileName(fn);
|
const QList<IEditor *> editors = editorsForFileName(fn);
|
||||||
if (!editors.isEmpty()) {
|
if (!editors.isEmpty()) {
|
||||||
IEditor *editor = editors.first();
|
IEditor *editor = editors.first();
|
||||||
if (flags && EditorManager::CanContainLineNumber)
|
if (flags & EditorManager::CanContainLineNumber)
|
||||||
editor->gotoLine(lineNumber, -1);
|
editor->gotoLine(lineNumber, -1);
|
||||||
return activateEditor(view, editor, flags);
|
return activateEditor(view, editor, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString realFn = autoSaveName(fn);
|
QString realFn = autoSaveName(fn);
|
||||||
QFileInfo fi(fn);
|
|
||||||
QFileInfo rfi(realFn);
|
QFileInfo rfi(realFn);
|
||||||
if (!fi.exists() || !rfi.exists() || fi.lastModified() >= rfi.lastModified()) {
|
if (!fi.exists() || !rfi.exists() || fi.lastModified() >= rfi.lastModified()) {
|
||||||
QFile::remove(realFn);
|
QFile::remove(realFn);
|
||||||
@@ -1325,7 +1328,7 @@ IEditor *EditorManager::openEditor(Core::Internal::EditorView *view, const QStri
|
|||||||
if (editor == result)
|
if (editor == result)
|
||||||
restoreEditorState(editor);
|
restoreEditorState(editor);
|
||||||
|
|
||||||
if (flags && EditorManager::CanContainLineNumber)
|
if (flags & EditorManager::CanContainLineNumber)
|
||||||
editor->gotoLine(lineNumber, -1);
|
editor->gotoLine(lineNumber, -1);
|
||||||
|
|
||||||
QApplication::restoreOverrideCursor();
|
QApplication::restoreOverrideCursor();
|
||||||
|
|||||||
Reference in New Issue
Block a user