diff --git a/src/plugins/clearcase/clearcaseplugin.cpp b/src/plugins/clearcase/clearcaseplugin.cpp index 524c430837a..cb9445bbce3 100644 --- a/src/plugins/clearcase/clearcaseplugin.cpp +++ b/src/plugins/clearcase/clearcaseplugin.cpp @@ -1657,7 +1657,7 @@ bool ClearCasePlugin::vcsOpen(const QString &workingDir, const QString &fileName } foreach (DocumentModel::Entry *e, DocumentModel::entries()) { - if (e->fileName() == absPath) { + if (e->fileName().toString() == absPath) { e->document->checkPermissions(); break; } diff --git a/src/plugins/coreplugin/editormanager/documentmodel.cpp b/src/plugins/coreplugin/editormanager/documentmodel.cpp index 625f7aba84d..e4c51f5838e 100644 --- a/src/plugins/coreplugin/editormanager/documentmodel.cpp +++ b/src/plugins/coreplugin/editormanager/documentmodel.cpp @@ -66,7 +66,7 @@ public: void addEntry(DocumentModel::Entry *entry); void removeDocument(int idx); - int indexOfFilePath(const QString &filePath) const; + int indexOfFilePath(const Utils::FileName &filePath) const; int indexOfDocument(IDocument *document) const; private slots: @@ -128,9 +128,9 @@ QAbstractItemModel *DocumentModel::model() return d; } -QString DocumentModel::Entry::fileName() const +Utils::FileName DocumentModel::Entry::fileName() const { - return document ? document->filePath().toString() : m_fileName; + return document ? document->filePath() : m_fileName; } QString DocumentModel::Entry::displayName() const @@ -177,7 +177,7 @@ void DocumentModel::addEditor(IEditor *editor, bool *isNewDocument) void DocumentModel::addRestoredDocument(const QString &fileName, const QString &displayName, Id id) { Entry *entry = new Entry; - entry->m_fileName = fileName; + entry->m_fileName = Utils::FileName::fromString(fileName); entry->m_displayName = displayName; entry->m_id = id; d->addEntry(entry); @@ -190,10 +190,8 @@ DocumentModel::Entry *DocumentModel::firstRestoredEntry() void DocumentModelPrivate::addEntry(DocumentModel::Entry *entry) { - QString fileName = entry->fileName(); - // replace a non-loaded entry (aka 'restored') if possible - int previousIndex = indexOfFilePath(fileName); + int previousIndex = indexOfFilePath(entry->fileName()); if (previousIndex >= 0) { if (entry->document && m_entries.at(previousIndex)->document == 0) { DocumentModel::Entry *previousEntry = m_entries.at(previousIndex); @@ -220,13 +218,14 @@ void DocumentModelPrivate::addEntry(DocumentModel::Entry *entry) endInsertRows(); } -int DocumentModelPrivate::indexOfFilePath(const QString &filePath) const +int DocumentModelPrivate::indexOfFilePath(const Utils::FileName &filePath) const { if (filePath.isEmpty()) return -1; - const QString fixedPath = DocumentManager::fixFileName(filePath, DocumentManager::ResolveLinks); + const QString fixedPath = DocumentManager::fixFileName(filePath.toString(), + DocumentManager::ResolveLinks); return Utils::indexOf(m_entries, [&fixedPath](DocumentModel::Entry *entry) { - return DocumentManager::fixFileName(entry->fileName(), + return DocumentManager::fixFileName(entry->fileName().toString(), DocumentManager::ResolveLinks) == fixedPath; }); } @@ -256,7 +255,7 @@ void DocumentModel::removeEditor(IEditor *editor, bool *lastOneForDocument) void DocumentModel::removeDocument(const QString &fileName) { - int index = d->indexOfFilePath(fileName); + int index = d->indexOfFilePath(Utils::FileName::fromString(fileName)); QTC_ASSERT(!d->m_entries.at(index)->document, return); // we wouldn't know what to do with the associated editors d->removeDocument(index); } @@ -330,7 +329,7 @@ QList DocumentModel::openedDocuments() IDocument *DocumentModel::documentForFilePath(const QString &filePath) { - const int index = d->indexOfFilePath(filePath); + const int index = d->indexOfFilePath(Utils::FileName::fromString(filePath)); if (index < 0) return 0; return d->m_entries.at(index)->document; @@ -403,13 +402,13 @@ QVariant DocumentModelPrivate::data(const QModelIndex &index, int role) const if (e->document) showLock = e->document->filePath().isEmpty() ? false : e->document->isFileReadOnly(); else - showLock = !QFileInfo(e->m_fileName).isWritable(); + showLock = !e->m_fileName.toFileInfo().isWritable(); return showLock ? m_lockedIcon : QIcon(); } case Qt::ToolTipRole: return e->fileName().isEmpty() ? e->displayName() - : QDir::toNativeSeparators(e->fileName()); + : e->fileName().toUserOutput(); default: return QVariant(); } @@ -431,7 +430,7 @@ QMimeData *DocumentModelPrivate::mimeData(const QModelIndexList &indexes) const const DocumentModel::Entry *e = DocumentModel::entryAtRow(index.row()); if (!e || e->fileName().isEmpty()) continue; - data->addFile(e->fileName()); + data->addFile(e->fileName().toString()); } return data; } diff --git a/src/plugins/coreplugin/editormanager/documentmodel.h b/src/plugins/coreplugin/editormanager/documentmodel.h index 94c87c79028..8b5f286a66c 100644 --- a/src/plugins/coreplugin/editormanager/documentmodel.h +++ b/src/plugins/coreplugin/editormanager/documentmodel.h @@ -34,6 +34,8 @@ #include "../core_global.h" #include "../id.h" +#include + #include QT_FORWARD_DECLARE_CLASS(QIcon) @@ -57,10 +59,10 @@ public: struct CORE_EXPORT Entry { Entry(); IDocument *document; - QString fileName() const; + Utils::FileName fileName() const; QString displayName() const; Id id() const; - QString m_fileName; + Utils::FileName m_fileName; QString m_displayName; Id m_id; }; diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp index b31b2a71102..ea4ab162569 100644 --- a/src/plugins/coreplugin/editormanager/editormanager.cpp +++ b/src/plugins/coreplugin/editormanager/editormanager.cpp @@ -1049,7 +1049,7 @@ void EditorManagerPrivate::activateEditorForEntry(EditorView *view, DocumentMode return; } - if (!openEditor(view, entry->fileName(), entry->id(), flags)) + if (!openEditor(view, entry->fileName().toString(), entry->id(), flags)) DocumentModel::removeEntry(entry); } @@ -1593,8 +1593,7 @@ void EditorManagerPrivate::copyFilePathFromContextMenu() { if (!d->m_contextMenuEntry) return; - QApplication::clipboard()->setText(FileName::fromString( - d->m_contextMenuEntry->fileName()).toUserOutput()); + QApplication::clipboard()->setText(d->m_contextMenuEntry->fileName().toUserOutput()); } void EditorManagerPrivate::copyLocationFromContextMenu() @@ -1602,9 +1601,8 @@ void EditorManagerPrivate::copyLocationFromContextMenu() const QAction *action = qobject_cast(sender()); if (!d->m_contextMenuEntry || !action) return; - const QString text = - FileName::fromString(d->m_contextMenuEntry->fileName()).toUserOutput() - + QLatin1Char(':') + action->data().toString(); + const QString text = d->m_contextMenuEntry->fileName().toUserOutput() + + QLatin1Char(':') + action->data().toString(); QApplication::clipboard()->setText(text); } @@ -1612,7 +1610,7 @@ void EditorManagerPrivate::copyFileNameFromContextMenu() { if (!d->m_contextMenuEntry) return; - QApplication::clipboard()->setText(FileName::fromString(d->m_contextMenuEntry->fileName()).fileName()); + QApplication::clipboard()->setText(d->m_contextMenuEntry->fileName().fileName()); } void EditorManagerPrivate::saveDocumentFromContextMenu() @@ -1766,21 +1764,21 @@ void EditorManagerPrivate::showInGraphicalShell() { if (!d->m_contextMenuEntry || d->m_contextMenuEntry->fileName().isEmpty()) return; - FileUtils::showInGraphicalShell(ICore::mainWindow(), d->m_contextMenuEntry->fileName()); + FileUtils::showInGraphicalShell(ICore::mainWindow(), d->m_contextMenuEntry->fileName().toString()); } void EditorManagerPrivate::openTerminal() { if (!d->m_contextMenuEntry || d->m_contextMenuEntry->fileName().isEmpty()) return; - FileUtils::openTerminal(QFileInfo(d->m_contextMenuEntry->fileName()).path()); + FileUtils::openTerminal(d->m_contextMenuEntry->fileName().parentDir().toString()); } void EditorManagerPrivate::findInDirectory() { if (!d->m_contextMenuEntry || d->m_contextMenuEntry->fileName().isEmpty()) return; - emit m_instance->findOnFileSystemRequest(QFileInfo(d->m_contextMenuEntry->fileName()).path()); + emit m_instance->findOnFileSystemRequest(d->m_contextMenuEntry->fileName().parentDir().toString()); } void EditorManagerPrivate::split(Qt::Orientation orientation) @@ -1927,7 +1925,7 @@ void EditorManager::addSaveAndCloseEditorActions(QMenu *contextMenu, DocumentMod d->m_contextMenuEntry = entry; d->m_contextMenuEditor = editor; - const QString filePath = entry ? entry->fileName() : QString(); + const FileName filePath = entry ? entry->fileName() : FileName(); const bool copyActionsEnabled = !filePath.isEmpty(); d->m_copyFilePathContextAction->setEnabled(copyActionsEnabled); d->m_copyLocationContextAction->setEnabled(copyActionsEnabled); @@ -1993,7 +1991,7 @@ void EditorManager::addNativeDirAndOpenWithActions(QMenu *contextMenu, DocumentM DocumentManager::instance(), SLOT(executeOpenWithMenuAction(QAction*))); openWith->setEnabled(enabled); if (enabled) - DocumentManager::populateOpenWithMenu(openWith, entry->fileName()); + DocumentManager::populateOpenWithMenu(openWith, entry->fileName().toString()); } void EditorManager::saveDocument() @@ -2339,7 +2337,7 @@ IEditor *EditorManager::openEditorWithContents(Id editorId, int i = 1; QSet docnames; foreach (DocumentModel::Entry *entry, DocumentModel::entries()) { - QString name = entry->fileName(); + QString name = entry->fileName().toString(); if (name.isEmpty()) name = entry->displayName(); else @@ -2485,7 +2483,7 @@ QByteArray EditorManager::saveState() foreach (DocumentModel::Entry *entry, entries) { if (!entry->document || !entry->document->isTemporary()) - stream << entry->fileName() << entry->displayName() << entry->id(); + stream << entry->fileName().toString() << entry->displayName() << entry->id(); } stream << d->m_editorAreas.first()->saveState(); // TODO diff --git a/src/plugins/coreplugin/editormanager/openeditorswindow.cpp b/src/plugins/coreplugin/editormanager/openeditorswindow.cpp index eab67b2a7a7..29962c596f2 100644 --- a/src/plugins/coreplugin/editormanager/openeditorswindow.cpp +++ b/src/plugins/coreplugin/editormanager/openeditorswindow.cpp @@ -254,7 +254,7 @@ void OpenEditorsWindow::addRestoredItems() QString title = entry->displayName(); item->setIcon(0, m_emptyIcon); item->setText(0, title); - item->setToolTip(0, entry->fileName()); + item->setToolTip(0, entry->fileName().toString()); item->setData(0, Qt::UserRole+2, QVariant::fromValue(entry->id())); item->setTextAlignment(0, Qt::AlignLeft); diff --git a/src/plugins/coreplugin/editortoolbar.cpp b/src/plugins/coreplugin/editortoolbar.cpp index 1c8a0105f2f..0806a254631 100644 --- a/src/plugins/coreplugin/editortoolbar.cpp +++ b/src/plugins/coreplugin/editortoolbar.cpp @@ -455,7 +455,7 @@ bool EditorToolBar::eventFilter(QObject *obj, QEvent *event) return Utils::StyledBar::eventFilter(obj, event); auto drag = new QDrag(this); auto data = new Utils::FileDropMimeData; - data->addFile(entry->fileName()); + data->addFile(entry->fileName().toString()); drag->setMimeData(data); Qt::DropAction action = drag->exec(Qt::MoveAction | Qt::CopyAction, Qt::MoveAction); if (action == Qt::MoveAction) diff --git a/src/plugins/coreplugin/locator/opendocumentsfilter.cpp b/src/plugins/coreplugin/locator/opendocumentsfilter.cpp index 433f8cc3a56..8be5d2b6662 100644 --- a/src/plugins/coreplugin/locator/opendocumentsfilter.cpp +++ b/src/plugins/coreplugin/locator/opendocumentsfilter.cpp @@ -73,7 +73,7 @@ QList OpenDocumentsFilter::matchesFor(QFutureInterfacefileName()); + seedPaths.insert(entry->fileName().toString()); } CPlusPlus::Snapshot snapshot = CppModelManager::instance()->snapshot(); setFileIterator(new CppIncludesIterator(snapshot, seedPaths)); diff --git a/src/plugins/texteditor/findinopenfiles.cpp b/src/plugins/texteditor/findinopenfiles.cpp index 457861ccaf5..200dd192346 100644 --- a/src/plugins/texteditor/findinopenfiles.cpp +++ b/src/plugins/texteditor/findinopenfiles.cpp @@ -71,7 +71,7 @@ Utils::FileIterator *FindInOpenFiles::files(const QStringList &nameFilters, QList codecs; foreach (Core::DocumentModel::Entry *entry, Core::DocumentModel::entries()) { - QString fileName = entry->fileName(); + QString fileName = entry->fileName().toString(); if (!fileName.isEmpty()) { fileNames.append(fileName); QTextCodec *codec = openEditorEncodings.value(fileName);