#include <QtGui>
+#include "panelbase.h"
+
class ExtendedListItemDelegate;
class GeoCoordinate;
-class LocationListView;
+class ImageButton;
class Location;
+class LocationListView;
class Route;
class RouteWaypointListView;
*
* @author Jussi Laitinen - jussi.laitinen (at) ixonos.com
*/
-class RoutingPanel : public QWidget
+class RoutingPanel : public PanelBase
{
Q_OBJECT
RoutingPanel(QWidget *parent = 0);
/*******************************************************************************
+ * BASE CLASS INHERITED AND REIMPLEMENTED MEMBER FUNCTIONS
+ ******************************************************************************/
+protected:
+ /**
+ * @brief Re-implemented from QWidget::hideEvent()
+ *
+ * Calls clearListsSelections()
+ *
+ * @param event
+ */
+ void hideEvent(QHideEvent *event);
+
+/*******************************************************************************
* MEMBER FUNCTIONS AND SLOTS
******************************************************************************/
private slots:
/**
+ * @brief Clears lists' selections.
+ *
+ * Does call setRouteButtonDisabled().
+ */
+ void clearListsSelections();
+
+ /**
* @brief Populates location list view.
*
* @param locations list of Location objects
*/
void setRoute(Route &route);
+ /**
+ * @brief Sets route button disabled.
+ *
+ * Disabled if there isn't any list item selected.
+ */
+ void setRouteButtonDisabled();
+
/*******************************************************************************
* SIGNALS
******************************************************************************/
void locationItemClicked(const GeoCoordinate &swBound, const GeoCoordinate &neBound);
/**
+ * @brief Signal for requesting searching location.
+ */
+ void requestSearchLocation();
+
+ /**
* @brief Signal for routing to location.
*
* @param coordinates location's geo coordinates
*/
void routeToLocation(const GeoCoordinate &coordinates);
+ /**
+ * @brief Signal for route waypoint item clicked.
+ *
+ * @param coordinate waypoint item's coordinate
+ */
void routeWaypointItemClicked(const GeoCoordinate &coordinate);
+ /**
+ * @brief Signal for requesting a panel to be opened
+ *
+ * @param widget Pointer to the widget that emitted the signal
+ */
+ void showPanelRequested(QWidget *widget);
+
/*******************************************************************************
* DATA MEMBERS
******************************************************************************/
private:
QLabel *m_locationListLabel; ///< Location list label
- QPushButton *m_routeButton; ///< Route to location button
+ QPushButton *m_searchLocationButton; ///< Search location button
QWidget *m_locationListHeaderWidget; ///< Location list header widget
+ ImageButton *m_routeButton; ///< Route to location button
LocationListView *m_locationListView; ///< Location list view
RouteWaypointListView *m_routeWaypointListView; ///< Route waypoint list view
};