forked from qt-creator/qt-creator
fakevim: fix crash in ex command mapping
Task-number: QTCREATORBUG-4084
This commit is contained in:
@@ -307,7 +307,7 @@ public slots:
|
|||||||
void defaultAction();
|
void defaultAction();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QList<QTreeWidgetItem *> m_citems;
|
//QList<QTreeWidgetItem *> m_citems;
|
||||||
FakeVimPluginPrivate *m_q;
|
FakeVimPluginPrivate *m_q;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -337,7 +337,7 @@ void FakeVimExCommandsPage::initialize()
|
|||||||
|
|
||||||
QTreeWidgetItem *item = new QTreeWidgetItem;
|
QTreeWidgetItem *item = new QTreeWidgetItem;
|
||||||
item->setData(0, CommandRole, int(c->id()));
|
item->setData(0, CommandRole, int(c->id()));
|
||||||
m_citems.append(item);
|
//m_citems.append(item);
|
||||||
|
|
||||||
const QString name = uidm->stringForUniqueIdentifier(c->id());
|
const QString name = uidm->stringForUniqueIdentifier(c->id());
|
||||||
const int pos = name.indexOf(QLatin1Char('.'));
|
const int pos = name.indexOf(QLatin1Char('.'));
|
||||||
@@ -431,7 +431,12 @@ void FakeVimExCommandsPage::removeTargetIdentifier()
|
|||||||
void FakeVimExCommandsPage::defaultAction()
|
void FakeVimExCommandsPage::defaultAction()
|
||||||
{
|
{
|
||||||
UniqueIDManager *uidm = UniqueIDManager::instance();
|
UniqueIDManager *uidm = UniqueIDManager::instance();
|
||||||
foreach (QTreeWidgetItem *item, m_citems) {
|
int n = commandList()->topLevelItemCount();
|
||||||
|
for (int i = 0; i != n; ++i) {
|
||||||
|
QTreeWidgetItem *section = commandList()->topLevelItem(i);
|
||||||
|
int m = section->childCount();
|
||||||
|
for (int j = 0; j != m; ++j) {
|
||||||
|
QTreeWidgetItem *item = section->child(j);
|
||||||
const int id = item->data(0, CommandRole).toInt();
|
const int id = item->data(0, CommandRole).toInt();
|
||||||
const QString name = uidm->stringForUniqueIdentifier(id);
|
const QString name = uidm->stringForUniqueIdentifier(id);
|
||||||
QString regex;
|
QString regex;
|
||||||
@@ -442,6 +447,7 @@ void FakeVimExCommandsPage::defaultAction()
|
|||||||
if (item == commandList()->currentItem())
|
if (item == commandList()->currentItem())
|
||||||
commandChanged(item);
|
commandChanged(item);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user