Consistently use InitListEvent() to initialize wxListEvents
This notably fixes missing item index and data for the CHECKED events, and simplifies the code in the other places.
This commit is contained in:
@@ -268,15 +268,12 @@ public:
|
|||||||
m_rows[row].m_checked =
|
m_rows[row].m_checked =
|
||||||
static_cast<Qt::CheckState>(value.toUInt()) == Qt::Checked;
|
static_cast<Qt::CheckState>(value.toUInt()) == Qt::Checked;
|
||||||
|
|
||||||
wxListItem listItem;
|
wxListEvent event;
|
||||||
listItem.SetId(row);
|
InitListEvent(event,
|
||||||
|
m_listCtrl,
|
||||||
const wxEventType eventType = m_rows[row].m_checked ?
|
m_rows[row].m_checked ? wxEVT_LIST_ITEM_CHECKED
|
||||||
wxEVT_LIST_ITEM_CHECKED : wxEVT_LIST_ITEM_UNCHECKED;
|
: wxEVT_LIST_ITEM_UNCHECKED,
|
||||||
|
index);
|
||||||
wxListEvent event(eventType, m_listCtrl->GetId());
|
|
||||||
event.SetEventObject(m_listCtrl);
|
|
||||||
event.SetItem(listItem);
|
|
||||||
m_listCtrl->HandleWindowEvent(event);
|
m_listCtrl->HandleWindowEvent(event);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -939,15 +936,13 @@ public:
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
const wxString editedText = m_itemDelegate.GetEditControl()->GetLineText(0);
|
const wxString editedText = m_itemDelegate.GetEditControl()->GetLineText(0);
|
||||||
wxListItem listItem;
|
|
||||||
listItem.SetId(current_index.row());
|
|
||||||
listItem.SetColumn(current_index.column());
|
|
||||||
listItem.SetText(editedText);
|
|
||||||
|
|
||||||
wxListEvent event(wxEVT_LIST_END_LABEL_EDIT, GetHandler()->GetId());
|
wxListEvent event;
|
||||||
event.SetEventObject(GetHandler());
|
InitListEvent(event,
|
||||||
event.SetItem(listItem);
|
GetHandler(),
|
||||||
event.SetIndex(listItem.GetId());
|
wxEVT_LIST_END_LABEL_EDIT,
|
||||||
|
current_index);
|
||||||
|
event.m_item.SetText(editedText);
|
||||||
|
|
||||||
if (hint == QAbstractItemDelegate::RevertModelCache)
|
if (hint == QAbstractItemDelegate::RevertModelCache)
|
||||||
{
|
{
|
||||||
@@ -1630,12 +1625,9 @@ bool wxListCtrl::DeleteItem(long item)
|
|||||||
|
|
||||||
m_model->removeRow(item, QModelIndex());
|
m_model->removeRow(item, QModelIndex());
|
||||||
|
|
||||||
wxListItem listItem;
|
wxListEvent event;
|
||||||
listItem.SetId(item);
|
InitListEvent(event, this, wxEVT_LIST_DELETE_ITEM);
|
||||||
|
event.m_item.SetId(item);
|
||||||
wxListEvent event(wxEVT_LIST_DELETE_ITEM, GetId());
|
|
||||||
event.SetEventObject(this);
|
|
||||||
event.SetItem(listItem);
|
|
||||||
|
|
||||||
HandleWindowEvent(event);
|
HandleWindowEvent(event);
|
||||||
|
|
||||||
@@ -1649,8 +1641,9 @@ bool wxListCtrl::DeleteAllItems()
|
|||||||
|
|
||||||
m_model->removeRows(0, GetItemCount(), QModelIndex());
|
m_model->removeRows(0, GetItemCount(), QModelIndex());
|
||||||
|
|
||||||
wxListEvent event(wxEVT_LIST_DELETE_ALL_ITEMS, GetId());
|
wxListEvent event;
|
||||||
event.SetEventObject(this);
|
InitListEvent(event, this, wxEVT_LIST_DELETE_ALL_ITEMS);
|
||||||
|
|
||||||
HandleWindowEvent(event);
|
HandleWindowEvent(event);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -1687,15 +1680,8 @@ wxTextCtrl* wxListCtrl::EditLabel(long item,
|
|||||||
const QModelIndex index = m_model->index(item, 0);
|
const QModelIndex index = m_model->index(item, 0);
|
||||||
m_qtTreeWidget->openPersistentEditor(index);
|
m_qtTreeWidget->openPersistentEditor(index);
|
||||||
|
|
||||||
wxListItem listItem;
|
wxListEvent event;
|
||||||
listItem.SetId(index.row());
|
InitListEvent(event, this, wxEVT_LIST_BEGIN_LABEL_EDIT, index);
|
||||||
listItem.SetColumn(index.column());
|
|
||||||
|
|
||||||
GetItem(listItem);
|
|
||||||
|
|
||||||
wxListEvent event(wxEVT_LIST_BEGIN_LABEL_EDIT, GetId());
|
|
||||||
event.SetEventObject(this);
|
|
||||||
event.SetItem(listItem);
|
|
||||||
|
|
||||||
// close the editor again if event is vetoed
|
// close the editor again if event is vetoed
|
||||||
if (HandleWindowEvent(event) && !event.IsAllowed())
|
if (HandleWindowEvent(event) && !event.IsAllowed())
|
||||||
@@ -1768,12 +1754,9 @@ long wxListCtrl::InsertItem(const wxListItem& info)
|
|||||||
{
|
{
|
||||||
const long index = m_model->InsertItem(info);
|
const long index = m_model->InsertItem(info);
|
||||||
|
|
||||||
wxListItem tmp = info;
|
wxListEvent event;
|
||||||
tmp.SetId(index);
|
InitListEvent(event, this, wxEVT_LIST_INSERT_ITEM);
|
||||||
|
|
||||||
wxListEvent event(wxEVT_LIST_INSERT_ITEM, GetId());
|
|
||||||
event.SetItem(tmp);
|
|
||||||
event.SetEventObject(this);
|
|
||||||
HandleWindowEvent(event);
|
HandleWindowEvent(event);
|
||||||
|
|
||||||
return index;
|
return index;
|
||||||
|
Reference in New Issue
Block a user