Core: Use FileName for DocumentModel::Entry::fileName

Change-Id: I81d0aea2354a9d0461646590f06bb38bd4366f29
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
This commit is contained in:
Orgad Shaneh
2015-02-15 15:57:21 +02:00
committed by Orgad Shaneh
parent 92b545807f
commit f5fcb3dd92
9 changed files with 36 additions and 37 deletions

View File

@@ -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;
}

View File

@@ -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<IDocument *> 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;
}

View File

@@ -34,6 +34,8 @@
#include "../core_global.h"
#include "../id.h"
#include <utils/fileutils.h>
#include <QAbstractItemModel>
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;
};

View File

@@ -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,8 +1601,7 @@ void EditorManagerPrivate::copyLocationFromContextMenu()
const QAction *action = qobject_cast<const QAction *>(sender());
if (!d->m_contextMenuEntry || !action)
return;
const QString text =
FileName::fromString(d->m_contextMenuEntry->fileName()).toUserOutput()
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<QString> 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

View File

@@ -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);

View File

@@ -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)

View File

@@ -73,7 +73,7 @@ QList<LocatorFilterEntry> OpenDocumentsFilter::matchesFor(QFutureInterface<Locat
foreach (const DocumentModel::Entry &editorEntry, editors()) {
if (future.isCanceled())
break;
QString fileName = editorEntry.fileName();
QString fileName = editorEntry.fileName().toString();
if (fileName.isEmpty())
continue;
QString displayName = editorEntry.displayName();

View File

@@ -168,7 +168,7 @@ void CppIncludesFilter::prepareSearch(const QString &entry)
}
foreach (DocumentModel::Entry *entry, DocumentModel::entries()) {
if (entry)
seedPaths.insert(entry->fileName());
seedPaths.insert(entry->fileName().toString());
}
CPlusPlus::Snapshot snapshot = CppModelManager::instance()->snapshot();
setFileIterator(new CppIncludesIterator(snapshot, seedPaths));

View File

@@ -71,7 +71,7 @@ Utils::FileIterator *FindInOpenFiles::files(const QStringList &nameFilters,
QList<QTextCodec *> 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);