2 Situare - A location system for Facebook
3 Copyright (C) 2010 Ixonos Plc. Authors:
5 Jussi Laitinen - jussi.laitinen@ixonos.com
7 Situare is free software; you can redistribute it and/or
8 modify it under the terms of the GNU General Public License
9 version 2 as published by the Free Software Foundation.
11 Situare is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with Situare; if not, write to the Free Software
18 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
22 #ifndef ROUTINGPANEL_H
23 #define ROUTINGPANEL_H
27 #include "panelbase.h"
29 class ExtendedListItemDelegate;
31 class LocationListView;
34 class RouteWaypointListView;
37 * @brief Class for sliding routing panel
39 * @author Jussi Laitinen - jussi.laitinen (at) ixonos.com
41 class RoutingPanel : public PanelBase
47 * @brief Default constructor
51 RoutingPanel(QWidget *parent = 0);
53 /*******************************************************************************
54 * MEMBER FUNCTIONS AND SLOTS
55 ******************************************************************************/
58 * @brief Populates location list view.
60 * @param locations list of Location objects
62 void populateLocationListView(const QList<Location> &locations);
65 * @brief Routes to selected location.
67 * Emits routeToLocation if location is selected from list.
69 void routeToSelectedLocation();
72 * @brief Sets route to the panel.
74 * Appends route waypoint list with route segments.
75 * @param route Route item containing parsed route details
77 void setRoute(Route &route);
79 /*******************************************************************************
81 ******************************************************************************/
84 * @brief Signal for location item clicked.
86 * @param swBound south-west bound GeoCoordinate
87 * @param neBound north-east bound GeoCoordinate
89 void locationItemClicked(const GeoCoordinate &swBound, const GeoCoordinate &neBound);
92 * @brief Signal for requesting searching location.
94 void requestSearchLocation();
97 * @brief Signal for routing to location.
99 * @param coordinates location's geo coordinates
101 void routeToLocation(const GeoCoordinate &coordinates);
104 * @brief Signal for route waypoint item clicked.
106 * @param coordinate waypoint item's coordinate
108 void routeWaypointItemClicked(const GeoCoordinate &coordinate);
111 * @brief Signal for requesting a panel to be opened
113 * @param widget Pointer to the widget that emitted the signal
115 void showPanelRequested(QWidget *widget);
117 /*******************************************************************************
119 ******************************************************************************/
121 QLabel *m_locationListLabel; ///< Location list label
123 QPushButton *m_routeButton; ///< Route to location button
124 QPushButton *m_searchLocationButton; ///< Search location button
126 QWidget *m_locationListHeaderWidget; ///< Location list header widget
128 LocationListView *m_locationListView; ///< Location list view
129 RouteWaypointListView *m_routeWaypointListView; ///< Route waypoint list view
132 #endif // ROUTINGPANEL_H