Show editor display names in "Open With" dialog instead of their Id's.

Change-Id: I5cf7b5b53ce05b422aec87f7cf347670133a81a9
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
This commit is contained in:
Konstantin Tokarev
2012-05-06 12:26:39 +04:00
committed by Eike Ziller
parent eba7b13c00
commit 8bad963dee
3 changed files with 9 additions and 7 deletions

View File

@@ -70,11 +70,9 @@ void OpenWithDialog::setEditors(const QStringList &editors)
editorListWidget->addItem(e); editorListWidget->addItem(e);
} }
QString OpenWithDialog::editor() const int OpenWithDialog::editor() const
{ {
if (const QListWidgetItem *item = editorListWidget->currentItem()) return editorListWidget->currentRow();
return item->text();
return QString();
} }
void OpenWithDialog::setCurrentEditor(int index) void OpenWithDialog::setCurrentEditor(int index)

View File

@@ -52,7 +52,7 @@ public:
OpenWithDialog(const QString &fileName, QWidget *parent); OpenWithDialog(const QString &fileName, QWidget *parent);
void setEditors(const QStringList &); void setEditors(const QStringList &);
QString editor() const; int editor() const;
void setCurrentEditor(int index); void setCurrentEditor(int index);

View File

@@ -1222,12 +1222,14 @@ Core::Id EditorManager::getOpenWithEditorId(const QString &fileName,
if (!mt) if (!mt)
return Id(); return Id();
QStringList allEditorIds; QStringList allEditorIds;
QStringList allEditorDisplayNames;
QList<Id> externalEditorIds; QList<Id> externalEditorIds;
// Built-in // Built-in
const EditorFactoryList editors = editorFactories(mt, false); const EditorFactoryList editors = editorFactories(mt, false);
const int size = editors.size(); const int size = editors.size();
for (int i = 0; i < size; i++) { for (int i = 0; i < size; i++) {
allEditorIds.push_back(editors.at(i)->id().toString()); allEditorIds.push_back(editors.at(i)->id().toString());
allEditorDisplayNames.push_back(editors.at(i)->displayName());
} }
// External editors // External editors
const ExternalEditorList exEditors = externalEditors(mt, false); const ExternalEditorList exEditors = externalEditors(mt, false);
@@ -1235,16 +1237,18 @@ Core::Id EditorManager::getOpenWithEditorId(const QString &fileName,
for (int i = 0; i < esize; i++) { for (int i = 0; i < esize; i++) {
externalEditorIds.push_back(exEditors.at(i)->id()); externalEditorIds.push_back(exEditors.at(i)->id());
allEditorIds.push_back(exEditors.at(i)->id().toString()); allEditorIds.push_back(exEditors.at(i)->id().toString());
allEditorDisplayNames.push_back(exEditors.at(i)->displayName());
} }
if (allEditorIds.empty()) if (allEditorIds.empty())
return Id(); return Id();
QTC_ASSERT(allEditorIds.size() == allEditorDisplayNames.size(), return Id());
// Run dialog. // Run dialog.
OpenWithDialog dialog(fileName, ICore::mainWindow()); OpenWithDialog dialog(fileName, ICore::mainWindow());
dialog.setEditors(allEditorIds); dialog.setEditors(allEditorDisplayNames);
dialog.setCurrentEditor(0); dialog.setCurrentEditor(0);
if (dialog.exec() != QDialog::Accepted) if (dialog.exec() != QDialog::Accepted)
return Id(); return Id();
const Id selectedId = Id(dialog.editor()); const Id selectedId = Id(allEditorIds.at(dialog.editor()));
if (isExternalEditor) if (isExternalEditor)
*isExternalEditor = externalEditorIds.contains(selectedId); *isExternalEditor = externalEditorIds.contains(selectedId);
return selectedId; return selectedId;