{
qDebug() << __PRETTY_FUNCTION__;
+ setSelectionMode(QAbstractItemView::SingleSelection);
setAutoFillBackground(false);
viewport()->setAutoFillBackground(false);
m_previousItem = 0;
}
-void ListView::clearUnused(const QStringList &userIDs)
+void ListView::clearUnused(const QStringList &itemIDs)
{
qDebug() << __PRETTY_FUNCTION__;
foreach (QString key, m_listItems.keys()) {
- if (!userIDs.contains(key)) {
+ if (!itemIDs.contains(key)) {
ListItem *item = m_listItems.take(key);
if (item) {
takeItem(row(item));
setItemHidden(item, false);
}
-bool ListView::contains(const QString &userID)
+bool ListView::contains(const QString &itemID)
{
qDebug() << __PRETTY_FUNCTION__;
- return m_listItems.contains(userID);
+ return m_listItems.contains(itemID);
}
-void ListView::filter(const QList<QString> &userIDs)
+void ListView::filter(const QList<QString> &itemIDs)
{
qDebug() << __PRETTY_FUNCTION__;
foreach (ListItem *item, m_listItems) {
- if (userIDs.contains(item->id()))
+ if (itemIDs.contains(m_listItems.key(item)))
setItemHidden(item, false);
else
setItemHidden(item, true);
}
}
-ListItem *ListView::takeListItemFromView(const QString &userID)
+void ListView::filter(const QString &pattern)
{
qDebug() << __PRETTY_FUNCTION__;
- ListItem *item = listItem(userID);
+ foreach (ListItem *item, m_listItems) {
+ if (item->title().contains(pattern, Qt::CaseInsensitive))
+ setItemHidden(item, false);
+ else
+ setItemHidden(item, true);
+ }
+}
+
+ListItem *ListView::takeListItemFromView(const QString &itemID)
+{
+ qDebug() << __PRETTY_FUNCTION__;
+
+ ListItem *item = listItem(itemID);
takeItem(row(item));
return item;
}
+void ListView::listItemClicked(ListItem *item)
+{
+ qDebug() << __PRETTY_FUNCTION__;
+
+ if (m_previousItem == item) {
+ item->toggleSelection();
+
+ } else {
+ if (m_previousItem)
+ m_previousItem->setSelected(false);
+
+ item->setSelected(true);
+ }
+ m_previousItem = item;
+}
+
void ListView::listItemClicked(QListWidgetItem *item)
{
qDebug() << __PRETTY_FUNCTION__;
ListItem *currentItem = dynamic_cast<ListItem*>(item);
- if (currentItem) {
- if (m_previousItem == currentItem) {
- currentItem->toggleSelection();
+ if (currentItem)
+ listItemClicked(currentItem);
+}
- } else {
- if (m_previousItem)
- m_previousItem->setSelected(false);
+ListItem *ListView::listItem(const QString &itemID)
+{
+ qDebug() << __PRETTY_FUNCTION__;
- currentItem->setSelected(true);
- }
+ return dynamic_cast<ListItem*>(m_listItems.value(itemID));
+}
+
+ListItem *ListView::listItemAt(int index)
+{
+ qDebug() << __PRETTY_FUNCTION__;
- m_previousItem = currentItem;
+ QHashIterator<QString, ListItem*> itemIterator(m_listItems);
+ ListItem *item = 0;
+ int counter = 0;
+
+ while (itemIterator.hasNext()) {
+ itemIterator.next();
+ if (index == counter) {
+ item = itemIterator.value();
+ break;
+ }
+ counter++;
}
+
+ return item;
}
+ListItem *ListView::selectedItem()
+{
+ qDebug() << __PRETTY_FUNCTION__;
+ return m_previousItem;
+}
-ListItem *ListView::listItem(const QString &userID)
+void ListView::setSelectedItem(ListItem *item)
{
qDebug() << __PRETTY_FUNCTION__;
- return dynamic_cast<ListItem*>(m_listItems.value(userID));
+ listItemClicked(item);
}
-
ListView::~ListView()
{
qDebug() << __PRETTY_FUNCTION__;