Clean up code before pull request..

This commit is contained in:
Jay Nabonne
2019-02-07 17:37:14 +00:00
parent 23f6be20c8
commit 99e7da303e

View File

@@ -7,6 +7,11 @@
// For compilers that support precompilation, includes "wx.h". // For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h" #include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#include "wx/treectrl.h" #include "wx/treectrl.h"
#include "wx/imaglist.h" #include "wx/imaglist.h"
@@ -24,6 +29,7 @@ namespace
TreeItemDataQt() : data(NULL) TreeItemDataQt() : data(NULL)
{ {
} }
TreeItemDataQt(wxTreeItemData* data) : data(data) TreeItemDataQt(wxTreeItemData* data) : data(data)
{ {
if ( !registered ) if ( !registered )
@@ -32,17 +38,21 @@ namespace
registered = true; registered = true;
} }
} }
wxTreeItemData *data; wxTreeItemData *data;
private:
static bool registered; static bool registered;
}; };
bool TreeItemDataQt::registered = false; bool TreeItemDataQt::registered = false;
Q_DECLARE_METATYPE(TreeItemDataQt) Q_DECLARE_METATYPE(TreeItemDataQt)
QDataStream &operator<<(QDataStream &out, const TreeItemDataQt &) QDataStream &operator<<(QDataStream &out, const TreeItemDataQt &WXUNUSED(obj))
{ {
return out; return out;
} }
QDataStream &operator>>(QDataStream &in, TreeItemDataQt &) QDataStream &operator>>(QDataStream &in, TreeItemDataQt &WXUNUSED(obj))
{ {
return in; return in;
} }
@@ -69,15 +79,10 @@ namespace
return totalCount; return totalCount;
} }
}
class ImageState class ImageState
{ {
public: public:
ImageState() : ImageState() : m_state(wxTREE_ITEMSTATE_NONE)
m_state(wxTREE_ITEMSTATE_NONE)
{ {
for ( int i = wxTreeItemIcon_Normal; i < wxTreeItemIcon_Max; ++i ) for ( int i = wxTreeItemIcon_Normal; i < wxTreeItemIcon_Max; ++i )
{ {
@@ -87,11 +92,13 @@ public:
int &operator[](size_t index) int &operator[](size_t index)
{ {
wxASSERT(index < wxTreeItemIcon_Max);
return m_imageStates[index]; return m_imageStates[index];
} }
const int &operator[](size_t index) const const int &operator[](size_t index) const
{ {
wxASSERT(index < wxTreeItemIcon_Max);
return m_imageStates[index]; return m_imageStates[index];
} }
@@ -110,6 +117,8 @@ private:
int m_state; int m_state;
}; };
}
class wxQTreeWidget : public wxQtEventSignalHandler<QTreeWidget, wxTreeCtrl> class wxQTreeWidget : public wxQtEventSignalHandler<QTreeWidget, wxTreeCtrl>
{ {
public: public:
@@ -117,13 +126,20 @@ public:
wxQtEventSignalHandler(parent, handler), wxQtEventSignalHandler(parent, handler),
m_editorFactory(handler) m_editorFactory(handler)
{ {
connect(this, &QTreeWidget::currentItemChanged, this, &wxQTreeWidget::OnCurrentItemChanged); connect(this, &QTreeWidget::currentItemChanged,
connect(this, &QTreeWidget::itemActivated, this, &wxQTreeWidget::OnItemActivated); this, &wxQTreeWidget::OnCurrentItemChanged);
connect(this, &QTreeWidget::itemClicked, this, &wxQTreeWidget::OnItemClicked); connect(this, &QTreeWidget::itemActivated,
connect(this, &QTreeWidget::itemCollapsed, this, &wxQTreeWidget::OnItemCollapsed); this, &wxQTreeWidget::OnItemActivated);
connect(this, &QTreeWidget::itemExpanded, this, &wxQTreeWidget::OnItemExpanded); connect(this, &QTreeWidget::itemClicked,
connect(this, &QTreeWidget::itemChanged, this, &wxQTreeWidget::OnItemChanged); this, &wxQTreeWidget::OnItemClicked);
connect(this, &QTreeWidget::iconSizeChanged, this, &wxQTreeWidget::OnIconSizeChanged); connect(this, &QTreeWidget::itemCollapsed,
this, &wxQTreeWidget::OnItemCollapsed);
connect(this, &QTreeWidget::itemExpanded,
this, &wxQTreeWidget::OnItemExpanded);
connect(this, &QTreeWidget::itemChanged,
this, &wxQTreeWidget::OnItemChanged);
connect(this, &QTreeWidget::iconSizeChanged,
this, &wxQTreeWidget::OnIconSizeChanged);
m_editorFactory.AttachTo(this); m_editorFactory.AttachTo(this);
setDragEnabled(true); setDragEnabled(true);
@@ -156,39 +172,52 @@ public:
int GetItemState(QTreeWidgetItem *item) const int GetItemState(QTreeWidgetItem *item) const
{ {
ImageStateMap::const_iterator i = m_imageStates.find(item); const ImageStateMap::const_iterator i = m_imageStates.find(item);
if ( i == m_imageStates.end() ) if ( i == m_imageStates.end() )
return wxTREE_ITEMSTATE_NONE; return wxTREE_ITEMSTATE_NONE;
return i->second.GetState(); return i->second.GetState();
} }
QPixmap GetPlaceHolderImage() QPixmap GetPlaceHolderImage() const
{ {
return m_placeHolderImage; return m_placeHolderImage;
} }
protected: protected:
void drawBranches(QPainter *painter, const QRect &rect, const QModelIndex &index) const wxOVERRIDE void drawBranches(
QPainter *painter,
const QRect &rect,
const QModelIndex &index
) const wxOVERRIDE
{ {
QTreeWidgetItem *item = itemFromIndex(index); QTreeWidgetItem *item = itemFromIndex(index);
QTreeWidget::drawBranches(painter, rect, index); QTreeWidget::drawBranches(painter, rect, index);
const int imageIndex = ChooseBestImage(item); const int imageIndex = ChooseBestImage(item);
if ( imageIndex != -1 ) if ( imageIndex != -1 )
{ {
wxImageList *imageList = GetHandler()->GetImageList(); const wxImageList *imageList = GetHandler()->GetImageList();
wxBitmap bitmap = imageList->GetBitmap(imageIndex); const wxBitmap bitmap = imageList->GetBitmap(imageIndex);
painter->drawPixmap(rect.topRight(), *bitmap.GetHandle()); painter->drawPixmap(rect.topRight(), *bitmap.GetHandle());
} }
} }
private: private:
void OnCurrentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous) void OnCurrentItemChanged(
QTreeWidgetItem *current,
QTreeWidgetItem *previous
)
{ {
wxTreeCtrl* treeCtrl = GetHandler(); wxTreeCtrl* treeCtrl = GetHandler();
wxTreeEvent changingEvent(wxEVT_TREE_SEL_CHANGING, treeCtrl, wxQtConvertTreeItem(current)); wxTreeEvent changingEvent(
wxEVT_TREE_SEL_CHANGING,
treeCtrl,
wxQtConvertTreeItem(current)
);
changingEvent.SetOldItem(wxQtConvertTreeItem(previous)); changingEvent.SetOldItem(wxQtConvertTreeItem(previous));
EmitEvent(changingEvent); EmitEvent(changingEvent);
@@ -204,14 +233,23 @@ private:
// processed. Deferring this event ensures that // processed. Deferring this event ensures that
// wxTreeCtrl::GetSelection returns the new selection in the // wxTreeCtrl::GetSelection returns the new selection in the
// wx event handler. // wx event handler.
wxTreeEvent changedEvent(wxEVT_TREE_SEL_CHANGED, treeCtrl, wxQtConvertTreeItem(current)); wxTreeEvent changedEvent(
wxEVT_TREE_SEL_CHANGED,
treeCtrl,
wxQtConvertTreeItem(current)
);
changedEvent.SetOldItem(wxQtConvertTreeItem(previous)); changedEvent.SetOldItem(wxQtConvertTreeItem(previous));
wxPostEvent(treeCtrl, changedEvent); wxPostEvent(treeCtrl, changedEvent);
} }
void OnItemActivated(QTreeWidgetItem *item, int WXUNUSED(column)) void OnItemActivated(QTreeWidgetItem *item, int WXUNUSED(column))
{ {
wxTreeEvent event(wxEVT_TREE_ITEM_ACTIVATED, GetHandler(), wxQtConvertTreeItem(item)); wxTreeEvent event(
wxEVT_TREE_ITEM_ACTIVATED,
GetHandler(),
wxQtConvertTreeItem(item)
);
EmitEvent(event); EmitEvent(event);
} }
@@ -233,7 +271,11 @@ private:
void OnItemCollapsed(QTreeWidgetItem *item) void OnItemCollapsed(QTreeWidgetItem *item)
{ {
wxTreeEvent collapsingEvent(wxEVT_TREE_ITEM_COLLAPSING, GetHandler(), wxQtConvertTreeItem(item)); wxTreeEvent collapsingEvent(
wxEVT_TREE_ITEM_COLLAPSING,
GetHandler(),
wxQtConvertTreeItem(item)
);
EmitEvent(collapsingEvent); EmitEvent(collapsingEvent);
if ( !collapsingEvent.IsAllowed() ) if ( !collapsingEvent.IsAllowed() )
@@ -244,13 +286,21 @@ private:
return; return;
} }
wxTreeEvent collapsedEvent(wxEVT_TREE_ITEM_COLLAPSED, GetHandler(), wxQtConvertTreeItem(item)); wxTreeEvent collapsedEvent(
wxEVT_TREE_ITEM_COLLAPSED,
GetHandler(),
wxQtConvertTreeItem(item)
);
EmitEvent(collapsedEvent); EmitEvent(collapsedEvent);
} }
void OnItemExpanded(QTreeWidgetItem *item) void OnItemExpanded(QTreeWidgetItem *item)
{ {
wxTreeEvent expandingEvent(wxEVT_TREE_ITEM_EXPANDING, GetHandler(), wxQtConvertTreeItem(item)); wxTreeEvent expandingEvent(
wxEVT_TREE_ITEM_EXPANDING,
GetHandler(),
wxQtConvertTreeItem(item)
);
EmitEvent(expandingEvent); EmitEvent(expandingEvent);
if ( !expandingEvent.IsAllowed() ) if ( !expandingEvent.IsAllowed() )
@@ -261,14 +311,21 @@ private:
return; return;
} }
wxTreeEvent expandedEvent(wxEVT_TREE_ITEM_EXPANDED, GetHandler(), wxQtConvertTreeItem(item)); wxTreeEvent expandedEvent(
wxEVT_TREE_ITEM_EXPANDED,
GetHandler(),
wxQtConvertTreeItem(item)
);
EmitEvent(expandedEvent); EmitEvent(expandedEvent);
} }
void OnItemChanged(QTreeWidgetItem *item, int WXUNUSED(column)) void OnItemChanged(QTreeWidgetItem *item, int WXUNUSED(column))
{ {
wxTreeEvent event(wxEVT_TREE_END_LABEL_EDIT, GetHandler(), wxQtConvertTreeItem(item)); wxTreeEvent event(
wxEVT_TREE_END_LABEL_EDIT,
GetHandler(),
wxQtConvertTreeItem(item)
);
EmitEvent(event); EmitEvent(event);
} }
@@ -280,7 +337,7 @@ private:
void tryStartDrag(const QMouseEvent *event) void tryStartDrag(const QMouseEvent *event)
{ {
wxEventType command = (event->buttons() & Qt::RightButton) wxEventType command = event->buttons() & Qt::RightButton
? wxEVT_TREE_BEGIN_RDRAG ? wxEVT_TREE_BEGIN_RDRAG
: wxEVT_TREE_BEGIN_DRAG; : wxEVT_TREE_BEGIN_DRAG;
@@ -309,7 +366,6 @@ private:
{ {
const wxPoint pos = wxQtConvertPoint(position); const wxPoint pos = wxQtConvertPoint(position);
QTreeWidgetItem *hitItem = itemAt(position); QTreeWidgetItem *hitItem = itemAt(position);
OutputDebugStringA(hitItem->text(0).toUtf8().data());
wxTreeEvent tree_event( wxTreeEvent tree_event(
wxEVT_TREE_END_DRAG, wxEVT_TREE_END_DRAG,
@@ -376,7 +432,9 @@ private:
typedef std::map<QTreeWidgetItem*,ImageState> ImageStateMap; typedef std::map<QTreeWidgetItem*,ImageState> ImageStateMap;
ImageStateMap m_imageStates; ImageStateMap m_imageStates;
//Place holder image to reserve enough space in a row for us to draw our icon
// Place holder image to reserve enough space in a row
// for us to draw our icon
QPixmap m_placeHolderImage; QPixmap m_placeHolderImage;
}; };
@@ -456,11 +514,14 @@ wxString wxTreeCtrl::GetItemText(const wxTreeItemId& item) const
if ( !item.IsOk() ) if ( !item.IsOk() )
return ""; return "";
QTreeWidgetItem* qTreeItem = wxQtConvertTreeItem(item); const QTreeWidgetItem* qTreeItem = wxQtConvertTreeItem(item);
return wxQtConvertString(qTreeItem->text(0)); return wxQtConvertString(qTreeItem->text(0));
} }
int wxTreeCtrl::GetItemImage(const wxTreeItemId& item, wxTreeItemIcon which) const int wxTreeCtrl::GetItemImage(
const wxTreeItemId& item,
wxTreeItemIcon which
) const
{ {
wxCHECK_MSG(item.IsOk(), -1, "invalid tree item"); wxCHECK_MSG(item.IsOk(), -1, "invalid tree item");
return m_qtTreeWidget->GetItemImage(wxQtConvertTreeItem(item), which); return m_qtTreeWidget->GetItemImage(wxQtConvertTreeItem(item), which);
@@ -470,9 +531,9 @@ wxTreeItemData *wxTreeCtrl::GetItemData(const wxTreeItemId& item) const
{ {
wxCHECK_MSG(item.IsOk(), NULL, "invalid tree item"); wxCHECK_MSG(item.IsOk(), NULL, "invalid tree item");
QTreeWidgetItem* qTreeItem = wxQtConvertTreeItem(item); const QTreeWidgetItem* qTreeItem = wxQtConvertTreeItem(item);
QVariant itemData = qTreeItem->data(0, Qt::UserRole); const QVariant itemData = qTreeItem->data(0, Qt::UserRole);
TreeItemDataQt value = itemData.value<TreeItemDataQt>(); const TreeItemDataQt value = itemData.value<TreeItemDataQt>();
return value.data; return value.data;
} }
@@ -480,7 +541,7 @@ wxColour wxTreeCtrl::GetItemTextColour(const wxTreeItemId& item) const
{ {
wxCHECK_MSG(item.IsOk(), wxNullColour, "invalid tree item"); wxCHECK_MSG(item.IsOk(), wxNullColour, "invalid tree item");
QTreeWidgetItem* qTreeItem = wxQtConvertTreeItem(item); const QTreeWidgetItem* qTreeItem = wxQtConvertTreeItem(item);
return wxQtConvertColour(qTreeItem->textColor(0)); return wxQtConvertColour(qTreeItem->textColor(0));
} }
@@ -488,7 +549,7 @@ wxColour wxTreeCtrl::GetItemBackgroundColour(const wxTreeItemId& item) const
{ {
wxCHECK_MSG(item.IsOk(), wxNullColour, "invalid tree item"); wxCHECK_MSG(item.IsOk(), wxNullColour, "invalid tree item");
QTreeWidgetItem* qTreeItem = wxQtConvertTreeItem(item); const QTreeWidgetItem* qTreeItem = wxQtConvertTreeItem(item);
return wxQtConvertColour(qTreeItem->backgroundColor(0)); return wxQtConvertColour(qTreeItem->backgroundColor(0));
} }
@@ -496,20 +557,26 @@ wxFont wxTreeCtrl::GetItemFont(const wxTreeItemId& item) const
{ {
wxCHECK_MSG(item.IsOk(), wxNullFont, "invalid tree item"); wxCHECK_MSG(item.IsOk(), wxNullFont, "invalid tree item");
QTreeWidgetItem* qTreeItem = wxQtConvertTreeItem(item); const QTreeWidgetItem* qTreeItem = wxQtConvertTreeItem(item);
return wxFont(qTreeItem->font(0)); return wxFont(qTreeItem->font(0));
} }
void wxTreeCtrl::SetItemText(const wxTreeItemId& item, const wxString& text) void wxTreeCtrl::SetItemText(const wxTreeItemId& item, const wxString& text)
{ {
wxCHECK_RET(item.IsOk(), "invalid tree item"); wxCHECK_RET(item.IsOk(), "invalid tree item");
QTreeWidgetItem* qTreeItem = wxQtConvertTreeItem(item); QTreeWidgetItem* qTreeItem = wxQtConvertTreeItem(item);
qTreeItem->setText(0, wxQtConvertString(text)); qTreeItem->setText(0, wxQtConvertString(text));
} }
void wxTreeCtrl::SetItemImage(const wxTreeItemId& item, int image, wxTreeItemIcon which) void wxTreeCtrl::SetItemImage(
const wxTreeItemId& item,
int image,
wxTreeItemIcon which
)
{ {
wxCHECK_RET(item.IsOk(), "invalid tree item"); wxCHECK_RET(item.IsOk(), "invalid tree item");
m_qtTreeWidget->SetItemImage(wxQtConvertTreeItem(item), image, which); m_qtTreeWidget->SetItemImage(wxQtConvertTreeItem(item), image, which);
} }
@@ -521,7 +588,7 @@ void wxTreeCtrl::SetItemData(const wxTreeItemId& item, wxTreeItemData *data)
data->SetId(item); data->SetId(item);
QTreeWidgetItem *qTreeItem = wxQtConvertTreeItem(item); QTreeWidgetItem *qTreeItem = wxQtConvertTreeItem(item);
TreeItemDataQt treeItemData(data); const TreeItemDataQt treeItemData(data);
qTreeItem->setData(0, Qt::UserRole, QVariant::fromValue(treeItemData)); qTreeItem->setData(0, Qt::UserRole, QVariant::fromValue(treeItemData));
} }
@@ -530,7 +597,9 @@ void wxTreeCtrl::SetItemHasChildren(const wxTreeItemId& item, bool has)
wxCHECK_RET(item.IsOk(), "invalid tree item"); wxCHECK_RET(item.IsOk(), "invalid tree item");
QTreeWidgetItem *qTreeItem = wxQtConvertTreeItem(item); QTreeWidgetItem *qTreeItem = wxQtConvertTreeItem(item);
qTreeItem->setChildIndicatorPolicy(has ? QTreeWidgetItem::ShowIndicator : QTreeWidgetItem::DontShowIndicatorWhenChildless); qTreeItem->setChildIndicatorPolicy(has
? QTreeWidgetItem::ShowIndicator
: QTreeWidgetItem::DontShowIndicatorWhenChildless);
} }
void wxTreeCtrl::SetItemBold(const wxTreeItemId& item, bool bold) void wxTreeCtrl::SetItemBold(const wxTreeItemId& item, bool bold)
@@ -566,7 +635,10 @@ void wxTreeCtrl::SetItemDropHighlight(const wxTreeItemId& item, bool highlight)
qTreeItem->setTextColor(0, wxQtConvertColour(fg)); qTreeItem->setTextColor(0, wxQtConvertColour(fg));
} }
void wxTreeCtrl::SetItemTextColour(const wxTreeItemId& item, const wxColour& col) void wxTreeCtrl::SetItemTextColour(
const wxTreeItemId& item,
const wxColour& col
)
{ {
wxCHECK_RET(item.IsOk(), "invalid tree item"); wxCHECK_RET(item.IsOk(), "invalid tree item");
@@ -574,7 +646,10 @@ void wxTreeCtrl::SetItemTextColour(const wxTreeItemId& item, const wxColour& col
qTreeItem->setTextColor(0, wxQtConvertColour(col)); qTreeItem->setTextColor(0, wxQtConvertColour(col));
} }
void wxTreeCtrl::SetItemBackgroundColour(const wxTreeItemId& item, const wxColour& col) void wxTreeCtrl::SetItemBackgroundColour(
const wxTreeItemId& item,
const wxColour& col
)
{ {
wxCHECK_RET(item.IsOk(), "invalid tree item"); wxCHECK_RET(item.IsOk(), "invalid tree item");
@@ -594,7 +669,7 @@ bool wxTreeCtrl::IsVisible(const wxTreeItemId& item) const
{ {
wxCHECK_MSG(item.IsOk(), false, "invalid tree item"); wxCHECK_MSG(item.IsOk(), false, "invalid tree item");
QTreeWidgetItem *qTreeItem = wxQtConvertTreeItem(item); const QTreeWidgetItem *qTreeItem = wxQtConvertTreeItem(item);
const QRect visualRect = m_qtTreeWidget->visualItemRect(qTreeItem); const QRect visualRect = m_qtTreeWidget->visualItemRect(qTreeItem);
return visualRect.isValid(); return visualRect.isValid();
} }
@@ -603,7 +678,7 @@ bool wxTreeCtrl::ItemHasChildren(const wxTreeItemId& item) const
{ {
wxCHECK_MSG(item.IsOk(), false, "invalid tree item"); wxCHECK_MSG(item.IsOk(), false, "invalid tree item");
QTreeWidgetItem *qTreeItem = wxQtConvertTreeItem(item); const QTreeWidgetItem *qTreeItem = wxQtConvertTreeItem(item);
return qTreeItem->childCount() > 0; return qTreeItem->childCount() > 0;
} }
@@ -611,7 +686,7 @@ bool wxTreeCtrl::IsExpanded(const wxTreeItemId& item) const
{ {
wxCHECK_MSG(item.IsOk(), false, "invalid tree item"); wxCHECK_MSG(item.IsOk(), false, "invalid tree item");
QTreeWidgetItem *qTreeItem = wxQtConvertTreeItem(item); const QTreeWidgetItem *qTreeItem = wxQtConvertTreeItem(item);
return qTreeItem->isExpanded(); return qTreeItem->isExpanded();
} }
@@ -619,7 +694,7 @@ bool wxTreeCtrl::IsSelected(const wxTreeItemId& item) const
{ {
wxCHECK_MSG(item.IsOk(), false, "invalid tree item"); wxCHECK_MSG(item.IsOk(), false, "invalid tree item");
QTreeWidgetItem *qTreeItem = wxQtConvertTreeItem(item); const QTreeWidgetItem *qTreeItem = wxQtConvertTreeItem(item);
return qTreeItem->isSelected(); return qTreeItem->isSelected();
} }
@@ -627,12 +702,15 @@ bool wxTreeCtrl::IsBold(const wxTreeItemId& item) const
{ {
wxCHECK_MSG(item.IsOk(), false, "invalid tree item"); wxCHECK_MSG(item.IsOk(), false, "invalid tree item");
QTreeWidgetItem *qTreeItem = wxQtConvertTreeItem(item); const QTreeWidgetItem *qTreeItem = wxQtConvertTreeItem(item);
QFont font = qTreeItem->font(0); const QFont font = qTreeItem->font(0);
return font.bold(); return font.bold();
} }
size_t wxTreeCtrl::GetChildrenCount(const wxTreeItemId& item, bool recursively) const size_t wxTreeCtrl::GetChildrenCount(
const wxTreeItemId& item,
bool recursively
) const
{ {
wxCHECK_MSG(item.IsOk(), 0, "invalid tree item"); wxCHECK_MSG(item.IsOk(), 0, "invalid tree item");
@@ -646,15 +724,16 @@ size_t wxTreeCtrl::GetChildrenCount(const wxTreeItemId& item, bool recursively)
wxTreeItemId wxTreeCtrl::GetRootItem() const wxTreeItemId wxTreeCtrl::GetRootItem() const
{ {
QTreeWidgetItem *root = m_qtTreeWidget->invisibleRootItem(); const QTreeWidgetItem *root = m_qtTreeWidget->invisibleRootItem();
return wxQtConvertTreeItem(root->child(0)); return wxQtConvertTreeItem(root->child(0));
} }
wxTreeItemId wxTreeCtrl::GetSelection() const wxTreeItemId wxTreeCtrl::GetSelection() const
{ {
QList<QTreeWidgetItem*> selections = m_qtTreeWidget->selectedItems(); QList<QTreeWidgetItem*> selections = m_qtTreeWidget->selectedItems();
return selections.isEmpty() ? wxTreeItemId() : wxQtConvertTreeItem(selections[0]); return selections.isEmpty()
? wxTreeItemId()
: wxQtConvertTreeItem(selections[0]);
} }
size_t wxTreeCtrl::GetSelections(wxArrayTreeItemIds& selections) const size_t wxTreeCtrl::GetSelections(wxArrayTreeItemIds& selections) const
@@ -695,24 +774,32 @@ wxTreeItemId wxTreeCtrl::GetItemParent(const wxTreeItemId& item) const
return wxQtConvertTreeItem(qTreeItem->parent()); return wxQtConvertTreeItem(qTreeItem->parent());
} }
wxTreeItemId wxTreeCtrl::GetFirstChild(const wxTreeItemId& item, wxTreeItemIdValue& cookie) const wxTreeItemId wxTreeCtrl::GetFirstChild(
const wxTreeItemId& item,
wxTreeItemIdValue& cookie
) const
{ {
wxCHECK_MSG(item.IsOk(), wxTreeItemId(), "invalid tree item"); wxCHECK_MSG(item.IsOk(), wxTreeItemId(), "invalid tree item");
cookie = 0; cookie = 0;
QTreeWidgetItem *qTreeItem = wxQtConvertTreeItem(item); QTreeWidgetItem *qTreeItem = wxQtConvertTreeItem(item);
return qTreeItem->childCount() > 0 ? wxQtConvertTreeItem(qTreeItem->child(0)) : wxTreeItemId(); return qTreeItem->childCount() > 0
? wxQtConvertTreeItem(qTreeItem->child(0))
: wxTreeItemId();
} }
wxTreeItemId wxTreeCtrl::GetNextChild(const wxTreeItemId& item, wxTreeItemIdValue& cookie) const wxTreeItemId wxTreeCtrl::GetNextChild(
const wxTreeItemId& item,
wxTreeItemIdValue& cookie
) const
{ {
wxCHECK_MSG(item.IsOk(), wxTreeItemId(), "invalid tree item"); wxCHECK_MSG(item.IsOk(), wxTreeItemId(), "invalid tree item");
int currentIndex = reinterpret_cast<int>(cookie); int currentIndex = reinterpret_cast<int>(cookie);
++currentIndex; ++currentIndex;
QTreeWidgetItem *qTreeItem = wxQtConvertTreeItem(item); const QTreeWidgetItem *qTreeItem = wxQtConvertTreeItem(item);
if ( currentIndex < qTreeItem->childCount() ) if ( currentIndex < qTreeItem->childCount() )
{ {
@@ -727,9 +814,11 @@ wxTreeItemId wxTreeCtrl::GetLastChild(const wxTreeItemId& item) const
{ {
wxCHECK_MSG(item.IsOk(), wxTreeItemId(), "invalid tree item"); wxCHECK_MSG(item.IsOk(), wxTreeItemId(), "invalid tree item");
QTreeWidgetItem *qTreeItem = wxQtConvertTreeItem(item); const QTreeWidgetItem *qTreeItem = wxQtConvertTreeItem(item);
const int childCount = qTreeItem->childCount(); const int childCount = qTreeItem->childCount();
return childCount == 0 ? wxTreeItemId() : wxQtConvertTreeItem(qTreeItem->child(childCount - 1)); return childCount == 0
? wxTreeItemId()
: wxQtConvertTreeItem(qTreeItem->child(childCount - 1));
} }
wxTreeItemId wxTreeCtrl::GetNextSibling(const wxTreeItemId& item) const wxTreeItemId wxTreeCtrl::GetNextSibling(const wxTreeItemId& item) const
@@ -745,14 +834,18 @@ wxTreeItemId wxTreeCtrl::GetNextSibling(const wxTreeItemId& item) const
wxASSERT(index != -1); wxASSERT(index != -1);
++index; ++index;
return index < parent->childCount() ? wxQtConvertTreeItem(parent->child(index)) : wxTreeItemId(); return index < parent->childCount()
? wxQtConvertTreeItem(parent->child(index))
: wxTreeItemId();
} }
int index = m_qtTreeWidget->indexOfTopLevelItem(qTreeItem); int index = m_qtTreeWidget->indexOfTopLevelItem(qTreeItem);
wxASSERT(index != -1); wxASSERT(index != -1);
++index; ++index;
return index < m_qtTreeWidget->topLevelItemCount() ? wxQtConvertTreeItem(m_qtTreeWidget->topLevelItem(index)) : wxTreeItemId(); return index < m_qtTreeWidget->topLevelItemCount()
? wxQtConvertTreeItem(m_qtTreeWidget->topLevelItem(index))
: wxTreeItemId();
} }
wxTreeItemId wxTreeCtrl::GetPrevSibling(const wxTreeItemId& item) const wxTreeItemId wxTreeCtrl::GetPrevSibling(const wxTreeItemId& item) const
@@ -768,14 +861,18 @@ wxTreeItemId wxTreeCtrl::GetPrevSibling(const wxTreeItemId& item) const
wxASSERT(index != -1); wxASSERT(index != -1);
--index; --index;
return index >= 0 ? wxQtConvertTreeItem(parent->child(index)) : wxTreeItemId(); return index >= 0
? wxQtConvertTreeItem(parent->child(index))
: wxTreeItemId();
} }
int index = m_qtTreeWidget->indexOfTopLevelItem(qTreeItem); int index = m_qtTreeWidget->indexOfTopLevelItem(qTreeItem);
wxASSERT(index != -1); wxASSERT(index != -1);
--index; --index;
return index >= 0 ? wxQtConvertTreeItem(m_qtTreeWidget->topLevelItem(index)) : wxTreeItemId(); return index >= 0
? wxQtConvertTreeItem(m_qtTreeWidget->topLevelItem(index))
: wxTreeItemId();
} }
wxTreeItemId wxTreeCtrl::GetFirstVisibleItem() const wxTreeItemId wxTreeCtrl::GetFirstVisibleItem() const
@@ -783,6 +880,7 @@ wxTreeItemId wxTreeCtrl::GetFirstVisibleItem() const
wxTreeItemId itemid = GetRootItem(); wxTreeItemId itemid = GetRootItem();
if ( !itemid.IsOk() ) if ( !itemid.IsOk() )
return itemid; return itemid;
do do
{ {
if (IsVisible(itemid)) if (IsVisible(itemid))
@@ -851,7 +949,15 @@ wxTreeItemId wxTreeCtrl::AddRoot(const wxString& text,
wxTreeItemData *data) wxTreeItemData *data)
{ {
QTreeWidgetItem *root = m_qtTreeWidget->invisibleRootItem(); QTreeWidgetItem *root = m_qtTreeWidget->invisibleRootItem();
wxTreeItemId newItem = DoInsertItem(wxQtConvertTreeItem(root), 0, text, image, selImage, data); wxTreeItemId newItem = DoInsertItem(
wxQtConvertTreeItem(root),
0,
text,
image,
selImage,
data
);
m_qtTreeWidget->setCurrentItem(NULL); m_qtTreeWidget->setCurrentItem(NULL);
if ( (GetWindowStyleFlag() & wxTR_HIDE_ROOT) != 0 ) if ( (GetWindowStyleFlag() & wxTR_HIDE_ROOT) != 0 )
@@ -961,7 +1067,6 @@ void wxTreeCtrl::SelectItem(const wxTreeItemId& item, bool select)
if ( !HasFlag(wxTR_MULTIPLE) ) if ( !HasFlag(wxTR_MULTIPLE) )
{ {
QList<QTreeWidgetItem *> selections = m_qtTreeWidget->selectedItems();
m_qtTreeWidget->clearSelection(); m_qtTreeWidget->clearSelection();
} }
@@ -1006,7 +1111,10 @@ void wxTreeCtrl::ScrollTo(const wxTreeItemId& item)
m_qtTreeWidget->scrollToItem(qTreeItem); m_qtTreeWidget->scrollToItem(qTreeItem);
} }
wxTextCtrl *wxTreeCtrl::EditLabel(const wxTreeItemId& item, wxClassInfo* WXUNUSED(textCtrlClass)) wxTextCtrl *wxTreeCtrl::EditLabel(
const wxTreeItemId& item,
wxClassInfo* WXUNUSED(textCtrlClass)
)
{ {
wxCHECK_MSG(item.IsOk(), NULL, "invalid tree item"); wxCHECK_MSG(item.IsOk(), NULL, "invalid tree item");
@@ -1024,7 +1132,10 @@ wxTextCtrl *wxTreeCtrl::GetEditControl() const
return m_qtTreeWidget->GetEditControl(); return m_qtTreeWidget->GetEditControl();
} }
void wxTreeCtrl::EndEditLabel(const wxTreeItemId& item, bool WXUNUSED(discardChanges)) void wxTreeCtrl::EndEditLabel(
const wxTreeItemId& item,
bool WXUNUSED(discardChanges)
)
{ {
wxCHECK_RET(item.IsOk(), "invalid tree item"); wxCHECK_RET(item.IsOk(), "invalid tree item");
QTreeWidgetItem *qTreeItem = wxQtConvertTreeItem(item); QTreeWidgetItem *qTreeItem = wxQtConvertTreeItem(item);
@@ -1039,7 +1150,11 @@ void wxTreeCtrl::SortChildren(const wxTreeItemId& item)
qTreeItem->sortChildren(0, Qt::AscendingOrder); qTreeItem->sortChildren(0, Qt::AscendingOrder);
} }
bool wxTreeCtrl::GetBoundingRect(const wxTreeItemId& item, wxRect& WXUNUSED(rect), bool WXUNUSED(textOnly)) const bool wxTreeCtrl::GetBoundingRect(
const wxTreeItemId& item,
wxRect& WXUNUSED(rect),
bool WXUNUSED(textOnly)
) const
{ {
wxCHECK_MSG(item.IsOk(), false, "invalid tree item"); wxCHECK_MSG(item.IsOk(), false, "invalid tree item");
return false; return false;
@@ -1049,7 +1164,11 @@ void wxTreeCtrl::SetWindowStyleFlag(long styles)
{ {
wxControl::SetWindowStyleFlag(styles); wxControl::SetWindowStyleFlag(styles);
m_qtTreeWidget->setSelectionMode(styles & wxTR_MULTIPLE ? QTreeWidget::ExtendedSelection : QTreeWidget::SingleSelection); m_qtTreeWidget->setSelectionMode(
styles & wxTR_MULTIPLE
? QTreeWidget::ExtendedSelection
: QTreeWidget::SingleSelection
);
} }
int wxTreeCtrl::DoGetItemState(const wxTreeItemId& item) const int wxTreeCtrl::DoGetItemState(const wxTreeItemId& item) const
@@ -1076,8 +1195,8 @@ wxTreeItemId wxTreeCtrl::DoInsertItem(const wxTreeItemId& parent,
QTreeWidgetItem *newItem = new QTreeWidgetItem; QTreeWidgetItem *newItem = new QTreeWidgetItem;
newItem->setText(0, wxQtConvertString(text)); newItem->setText(0, wxQtConvertString(text));
TreeItemDataQt treeItemData(data);
TreeItemDataQt treeItemData(data);
newItem->setData(0, Qt::UserRole, QVariant::fromValue(treeItemData)); newItem->setData(0, Qt::UserRole, QVariant::fromValue(treeItemData));
m_qtTreeWidget->SetItemImage(newItem, image, wxTreeItemIcon_Normal); m_qtTreeWidget->SetItemImage(newItem, image, wxTreeItemIcon_Normal);
@@ -1111,7 +1230,7 @@ wxTreeItemId wxTreeCtrl::DoInsertAfter(const wxTreeItemId& parent,
wxCHECK_MSG(parent.IsOk(), wxTreeItemId(), "invalid tree item"); wxCHECK_MSG(parent.IsOk(), wxTreeItemId(), "invalid tree item");
wxCHECK_MSG(idPrevious.IsOk(), wxTreeItemId(), "invalid tree item"); wxCHECK_MSG(idPrevious.IsOk(), wxTreeItemId(), "invalid tree item");
QTreeWidgetItem *qTreeItem = wxQtConvertTreeItem(parent); const QTreeWidgetItem *qTreeItem = wxQtConvertTreeItem(parent);
const int index = qTreeItem->indexOfChild(wxQtConvertTreeItem(idPrevious)); const int index = qTreeItem->indexOfChild(wxQtConvertTreeItem(idPrevious));
return DoInsertItem(parent, index + 1, text, image, selImage, data); return DoInsertItem(parent, index + 1, text, image, selImage, data);
} }
@@ -1122,10 +1241,11 @@ wxTreeItemId wxTreeCtrl::DoTreeHitTest(const wxPoint& point, int& flags) const
GetSize(&w, &h); GetSize(&w, &h);
flags = 0; flags = 0;
if ( point.x < 0 ) flags |= wxTREE_HITTEST_TOLEFT; if ( point.x < 0 ) flags |= wxTREE_HITTEST_TOLEFT;
if (point.x > w) flags |= wxTREE_HITTEST_TORIGHT; else if ( point.x > w ) flags |= wxTREE_HITTEST_TORIGHT;
if ( point.y < 0 ) flags |= wxTREE_HITTEST_ABOVE; if ( point.y < 0 ) flags |= wxTREE_HITTEST_ABOVE;
if (point.y > h) flags |= wxTREE_HITTEST_BELOW; else if ( point.y > h ) flags |= wxTREE_HITTEST_BELOW;
if (flags) return wxTreeItemId(); if ( flags != 0 )
return wxTreeItemId();
QTreeWidgetItem *hitItem = m_qtTreeWidget->itemAt(wxQtConvertPoint(point)); QTreeWidgetItem *hitItem = m_qtTreeWidget->itemAt(wxQtConvertPoint(point));
@@ -1168,4 +1288,3 @@ wxTreeItemId wxTreeCtrl::GetNext(const wxTreeItemId &item) const
} while ( p.IsOk() && !toFind.IsOk() ); } while ( p.IsOk() && !toFind.IsOk() );
return toFind; return toFind;
} }