diff --git a/src/plugins/coreplugin/mainwindow.cpp b/src/plugins/coreplugin/mainwindow.cpp index 2aa251b4da43b020d27d5156bec9094a899b19c6..aea62962134d29867554cffb3f50fa0234052e55 100644 --- a/src/plugins/coreplugin/mainwindow.cpp +++ b/src/plugins/coreplugin/mainwindow.cpp @@ -1138,13 +1138,12 @@ void MainWindow::aboutToShowRecentFiles() ActionContainer *aci = m_actionManager->actionContainer(Constants::M_FILE_RECENTFILES); aci->menu()->clear(); - m_recentFilesActions.clear(); bool hasRecentFiles = false; - foreach (QString s, m_fileManager->recentFiles()) { + foreach (const QString &fileName, m_fileManager->recentFiles()) { hasRecentFiles = true; - QAction *action = aci->menu()->addAction(s); - m_recentFilesActions.insert(action, s); + QAction *action = aci->menu()->addAction(fileName); + action->setData(fileName); connect(action, SIGNAL(triggered()), this, SLOT(openRecentFile())); } aci->menu()->setEnabled(hasRecentFiles); @@ -1152,9 +1151,12 @@ void MainWindow::aboutToShowRecentFiles() void MainWindow::openRecentFile() { - QAction *a = qobject_cast<QAction*>(sender()); - if (m_recentFilesActions.contains(a)) { - editorManager()->openEditor(m_recentFilesActions.value(a)); + QAction *action = qobject_cast<QAction*>(sender()); + if (!action) + return; + QString fileName = action->data().toString(); + if (!fileName.isEmpty()) { + editorManager()->openEditor(fileName); editorManager()->ensureEditorManagerVisible(); } } diff --git a/src/plugins/coreplugin/mainwindow.h b/src/plugins/coreplugin/mainwindow.h index 9c3744efc2b6f48a38d7252fe1f69915c4c5f267..0c1e413715225bd4814524e9fcf700b9b56a9c35 100644 --- a/src/plugins/coreplugin/mainwindow.h +++ b/src/plugins/coreplugin/mainwindow.h @@ -191,8 +191,6 @@ private: GeneralSettings *m_generalSettings; ShortcutSettings *m_shortcutSettings; - QMap<QAction*, QString> m_recentFilesActions; - // actions QShortcut *m_focusToEditor; QAction *m_newAction;