route button disabling.
void ExtendedListItem::setSelected(bool selected)
{
- qDebug() << __PRETTY_FUNCTION__;
+ qDebug() << __PRETTY_FUNCTION__ << selected;
QListWidgetItem::setSelected(selected);
m_selected = selected;
updateKeyboardGrabbing();
clearFiltering();
+
+ m_friendListView->clearItemSelection();
+ setRouteButtonDisabled();
}
void FriendListPanel::anyPanelOpened()
updateKeyboardGrabbing();
clearFiltering();
- m_friendListView->clearSelection();
+ m_friendListView->clearItemSelection();
+ setRouteButtonDisabled();
}
void FriendListPanel::routeToSelectedFriend()
if (friendListItem && selected)
emit friendItemClicked(friendListItem->coordinates());
+
+ return selected;
}
* @brief Slot for list item clicked.
*
* @param item ListItem
+ * @return true if item was selected, false otherwise
*/
bool listItemClicked(ListItem *item);
addItem(item);
}
+void ListView::clearItemSelection()
+{
+ clearSelection();
+
+ if (m_previousItem)
+ m_previousItem->setSelected(false);
+}
+
void ListView::clearList()
{
qDebug() << __PRETTY_FUNCTION__;
m_filteredItemIDs.clear();
- if (m_previousItem)
- m_previousItem->setSelected(false);
-
foreach (ListItem *item, m_listItems)
setItemHidden(item, false);
}
{
qDebug() << __PRETTY_FUNCTION__;
- bool selected = false;
-
if (m_previousItem == item) {
- selected = item->toggleSelection();
-
+ item->toggleSelection();
} else {
if (m_previousItem)
m_previousItem->setSelected(false);
item->setSelected(true);
- selected = true;
}
m_previousItem = item;
- return selected;
+ return item->isSelected();
}
void ListView::listItemClicked(QListWidgetItem *item)
*/
void clearFilter();
+ void clearItemSelection();
+
/**
* @brief Clears list.
*
* @brief Slot for list item clicked.
*
* Toggles items selection state and emits listItemClicked signal.
+ * @return true if item was selected, false otherwise
*/
virtual bool listItemClicked(ListItem *item);
/**
* @brief Slot for list item clicked.
*
- * Toggles items selection state and emits listItemClicked signal.
+ * Calls listItemClicked(ListItem *item)
*/
void listItemClicked(QListWidgetItem *item);
locationItem->bounds(swBound, neBound);
emit locationItemClicked(swBound, neBound);
}
+
+ return selected;
}
* @brief Slot for list item clicked.
*
* @param item ListItem
+ * @return true if item was selected, false otherwise
*/
bool listItemClicked(ListItem *item);
connect(m_tabbedPanel, SIGNAL(panelOpened()),
m_friendsListPanel, SLOT(anyPanelOpened()));
+
+ connect(m_tabbedPanel, SIGNAL(panelClosed()),
+ m_routingPanel, SLOT(anyPanelClosed()));
}
void MainWindow::buildRoutingPanel()
if (routeWaypointItem && selected)
emit routeWaypointItemClicked(routeWaypointItem->coordinates());
+
+ return selected;
}
* @brief Slot for list item clicked.
*
* @param item ListItem
+ * @return true if item was selected, false otherwise
*/
bool listItemClicked(ListItem *item);
setLayout(routingLayout);
QHBoxLayout *headerLayout = new QHBoxLayout();
- headerLayout->setContentsMargins(PANEL_MARGIN_LEFT, 0,
- PANEL_MARGIN_RIGHT, 0);
+ headerLayout->setContentsMargins(PANEL_MARGIN_LEFT, PANEL_MARGIN_TOP,
+ PANEL_MARGIN_RIGHT, PANEL_MARGIN_BOTTOM);
QVBoxLayout *listViewLayout = new QVBoxLayout;
- listViewLayout->setContentsMargins(PANEL_MARGIN_LEFT, 0, PANEL_MARGIN_RIGHT, 0);
+ listViewLayout->setContentsMargins(PANEL_MARGIN_LEFT, PANEL_MARGIN_TOP,
+ PANEL_MARGIN_RIGHT, PANEL_MARGIN_BOTTOM);
m_searchLocationButton = new QPushButton(tr("Search location"));
m_routeButton = new QPushButton(tr("Route to location"));
+ m_routeButton->setDisabled(true);
m_routeButton->hide();
m_locationListHeaderWidget = new QWidget();
connect(m_locationListView, SIGNAL(clicked(QModelIndex)),
this, SLOT(setRouteButtonDisabled()));
- connect(m_routeButton, SIGNAL(clicked()),
- this, SLOT(routeToSelectedLocation()));
-
connect(m_routeWaypointListView, SIGNAL(routeWaypointItemClicked(GeoCoordinate)),
this, SIGNAL(routeWaypointItemClicked(GeoCoordinate)));
+ connect(m_routeButton, SIGNAL(clicked()),
+ this, SLOT(routeToSelectedLocation()));
+
connect(m_searchLocationButton, SIGNAL(clicked()),
this, SIGNAL(requestSearchLocation()));
}
+void RoutingPanel::anyPanelClosed()
+{
+ qDebug() << __PRETTY_FUNCTION__;
+
+ m_locationListView->clearItemSelection();
+ m_routeWaypointListView->clearItemSelection();
+
+ setRouteButtonDisabled();
+}
+
void RoutingPanel::hideEvent(QHideEvent *event)
{
qDebug() << __PRETTY_FUNCTION__;
- Q_UNUSED(event);
+ QWidget::hideEvent(event);
- m_locationListView->clearSelection();
- m_routeWaypointListView->clearSelection();
+ m_locationListView->clearItemSelection();
+ m_routeWaypointListView->clearItemSelection();
+ setRouteButtonDisabled();
}
void RoutingPanel::populateLocationListView(const QList<Location> &locations)
******************************************************************************/
private slots:
/**
+ * @brief Called when any of the panel tabs is closed
+ *
+ * Does call setRouteButtonDisabled().
+ */
+ void anyPanelClosed();
+
+ /**
* @brief Populates location list view.
*
* @param locations list of Location objects