projects
/
situare
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
375269d
)
Fixed search history settings read and write and added search history
author
Jussi Laitinen
<jupe@l3l7588.ixonos.local>
Fri, 3 Sep 2010 06:09:20 +0000
(09:09 +0300)
committer
Jussi Laitinen
<jupe@l3l7588.ixonos.local>
Fri, 3 Sep 2010 06:09:20 +0000
(09:09 +0300)
item clicked signal.
src/engine/engine.cpp
patch
|
blob
|
history
src/ui/listview.cpp
patch
|
blob
|
history
src/ui/locationsearchpanel.cpp
patch
|
blob
|
history
src/ui/locationsearchpanel.h
patch
|
blob
|
history
src/ui/mainwindow.cpp
patch
|
blob
|
history
src/ui/mainwindow.h
patch
|
blob
|
history
src/ui/searchhistorylistitem.h
patch
|
blob
|
history
diff --git
a/src/engine/engine.cpp
b/src/engine/engine.cpp
index
2883a50
..
2ea01e3
100644
(file)
--- a/
src/engine/engine.cpp
+++ b/
src/engine/engine.cpp
@@
-685,6
+685,9
@@
void SituareEngine::signalsFromMainWindow()
m_mapEngine,
SLOT(showMapArea(const GeoCoordinate&, const GeoCoordinate&)));
m_mapEngine,
SLOT(showMapArea(const GeoCoordinate&, const GeoCoordinate&)));
+ connect(m_ui, SIGNAL(searchHistoryItemClicked(QString)),
+ this, SLOT(locationSearch(QString)));
+
// signals from routing tab
connect(m_ui, SIGNAL(clearRoute()),
m_mapEngine, SLOT(clearRoute()));
// signals from routing tab
connect(m_ui, SIGNAL(clearRoute()),
m_mapEngine, SLOT(clearRoute()));
diff --git
a/src/ui/listview.cpp
b/src/ui/listview.cpp
index
41fe9b2
..
40ec9c2
100644
(file)
--- a/
src/ui/listview.cpp
+++ b/
src/ui/listview.cpp
@@
-58,6
+58,8
@@
void ListView::addListItemToView(ListItem *item)
void ListView::clearItemSelection()
{
void ListView::clearItemSelection()
{
+ qDebug() << __PRETTY_FUNCTION__;
+
clearSelection();
if (m_currentItem)
clearSelection();
if (m_currentItem)
@@
-77,7
+79,7
@@
void ListView::clearList()
void ListView::clearUnused(const QStringList &itemIDs)
{
void ListView::clearUnused(const QStringList &itemIDs)
{
- qWarning() << __PRETTY_FUNCTION__ << itemIDs.count();
+ qDebug() << __PRETTY_FUNCTION__;
foreach (QString key, m_listItems.keys()) {
if (!itemIDs.contains(key)) {
foreach (QString key, m_listItems.keys()) {
if (!itemIDs.contains(key)) {
diff --git
a/src/ui/locationsearchpanel.cpp
b/src/ui/locationsearchpanel.cpp
index
41aaf87
..
5bfd2e6
100644
(file)
--- a/
src/ui/locationsearchpanel.cpp
+++ b/
src/ui/locationsearchpanel.cpp
@@
-64,6
+64,9
@@
LocationSearchPanel::LocationSearchPanel(QWidget *parent)
m_searchHistoryListView = new SearchHistoryListView(this);
m_searchHistoryListView->setItemDelegate(new ExtendedListItemDelegate(this));
m_searchHistoryListView = new SearchHistoryListView(this);
m_searchHistoryListView->setItemDelegate(new ExtendedListItemDelegate(this));
+ connect(m_searchHistoryListView, SIGNAL(searchHistoryItemClicked(QString)),
+ this, SIGNAL(searchHistoryItemClicked(QString)));
+
// --- SEARCH RESULTS LIST VIEW ---
m_locationListView = new LocationListView(this);
m_locationListView->setItemDelegate(new ExtendedListItemDelegate(this));
// --- SEARCH RESULTS LIST VIEW ---
m_locationListView = new LocationListView(this);
m_locationListView->setItemDelegate(new ExtendedListItemDelegate(this));
@@
-134,26
+137,29
@@
LocationSearchPanel::~LocationSearchPanel()
m_searchHistoryListView->listItemAt(i));
if (item) {
m_searchHistoryListView->listItemAt(i));
if (item) {
- QList<QVariant> searchHistory;
+ QList<QString> searchHistory;
searchHistory.append(item->title());
searchHistory.append(item->dateTime().toString());
searchHistory.append(item->title());
searchHistory.append(item->dateTime().toString());
- searchHistories.append(searchHistory);
+ searchHistories.append(QVariant(searchHistory));
}
}
settings.setValue(SETTINGS_SEARCH_HISTORY, searchHistories);
}
}
}
settings.setValue(SETTINGS_SEARCH_HISTORY, searchHistories);
}
-void LocationSearchPanel::appendSearchHistory(QString searchString, QDateTime currentDateTime)
+void LocationSearchPanel::prependSearchHistory(QString searchString, QDateTime dateTime)
{
qDebug() << __PRETTY_FUNCTION__;
{
qDebug() << __PRETTY_FUNCTION__;
- if (m_searchHistoryListView->count() >= 10)
+ const int SEARCH_HISTORY_LIMIT = 10;
+ static int counter = 0;
+
+ if (m_searchHistoryListView->count() >= SEARCH_HISTORY_LIMIT)
m_searchHistoryListView->removeLastItem();
SearchHistoryListItem *item = new SearchHistoryListItem();
m_searchHistoryListView->removeLastItem();
SearchHistoryListItem *item = new SearchHistoryListItem();
- item->setSearchHistoryData(searchString, currentDateTime);
- m_searchHistoryListView->prependListItem(searchString, item);
+ item->setSearchHistoryData(searchString, dateTime);
+ m_searchHistoryListView->prependListItem(QString::number(counter++), item);
}
void LocationSearchPanel::clearListsSelections()
}
void LocationSearchPanel::clearListsSelections()
@@
-161,6
+167,7
@@
void LocationSearchPanel::clearListsSelections()
qDebug() << __PRETTY_FUNCTION__;
m_locationListView->clearItemSelection();
qDebug() << __PRETTY_FUNCTION__;
m_locationListView->clearItemSelection();
+ m_searchHistoryListView->clearItemSelection();
setRouteButtonDisabled();
}
setRouteButtonDisabled();
}
@@
-178,9
+185,12
@@
void LocationSearchPanel::populateLocationListView(const QList<Location> &locati
{
qDebug() << __PRETTY_FUNCTION__;
{
qDebug() << __PRETTY_FUNCTION__;
+ m_searchHistoryListView->clearItemSelection();
m_searchHistoryListView->hide();
setHeaderText(locations.count());
m_locationListView->clearList();
m_searchHistoryListView->hide();
setHeaderText(locations.count());
m_locationListView->clearList();
+ m_clearLocationListButton->setEnabled(true);
+ m_locationListView->show();
for (int i = 0; i < locations.size(); ++i) {
LocationListItem *item = new LocationListItem();
for (int i = 0; i < locations.size(); ++i) {
LocationListItem *item = new LocationListItem();
@@
-199,21
+209,24
@@
void LocationSearchPanel::populateLocationListView(const QList<Location> &locati
}
m_locationListView->scrollToTop();
}
m_locationListView->scrollToTop();
- m_clearLocationListButton->setEnabled(true);
- m_locationListView->show();
}
void LocationSearchPanel::readSettings()
{
}
void LocationSearchPanel::readSettings()
{
- QSettings settings(DIRECTORY_NAME, FILE_NAME);
+ qDebug() << __PRETTY_FUNCTION__;
- QList<QVariant> searchHistories = settings.value(
- SETTINGS_SEARCH_HISTORY).toList();
+ const int SEARCH_HISTORY_LIST_ITEM_COUNT = 2;
- for (int i = 0; i < searchHistories.count(); ++i) {
+ QSettings settings(DIRECTORY_NAME, FILE_NAME);
+ QList<QVariant> searchHistories = settings.value(SETTINGS_SEARCH_HISTORY).toList();
+
+ //Read from end to begin so items are prepended in correct order
+ for (int i = searchHistories.count() - 1; i >= 0; --i) {
QList<QVariant> searchHistory = searchHistories.at(i).toList();
QList<QVariant> searchHistory = searchHistories.at(i).toList();
- appendSearchHistory(searchHistory.at(0).toString(),
- QDateTime::fromString(searchHistory.at(1).toString()));
+ if (searchHistory.count() == SEARCH_HISTORY_LIST_ITEM_COUNT) {
+ prependSearchHistory(searchHistory.at(0).toString(),
+ QDateTime::fromString(searchHistory.at(1).toString()));
+ }
}
}
}
}
diff --git
a/src/ui/locationsearchpanel.h
b/src/ui/locationsearchpanel.h
index
101f55b
..
d86190a
100644
(file)
--- a/
src/ui/locationsearchpanel.h
+++ b/
src/ui/locationsearchpanel.h
@@
-76,6
+76,9
@@
protected:
* MEMBER FUNCTIONS AND SLOTS
******************************************************************************/
private:
* MEMBER FUNCTIONS AND SLOTS
******************************************************************************/
private:
+ /**
+ * @brief Reads search history from settings.
+ */
void readSettings();
/**
void readSettings();
/**
@@
-86,8
+89,15
@@
private:
void setHeaderText(int count);
private slots:
void setHeaderText(int count);
private slots:
-
- void appendSearchHistory(QString searchString, QDateTime currentTime = QDateTime());
+ /**
+ * @brief Prepends search history list view with search.
+ *
+ * If search history limit is reached, oldest search is removed from list view.
+ *
+ * @param searchString search string to add
+ * @param dateTime date and time of search (if empty, current date and time is added)
+ */
+ void prependSearchHistory(QString searchString, QDateTime dateTime = QDateTime());
/**
* @brief Clears lists' selections.
/**
* @brief Clears lists' selections.
@@
-153,6
+163,13
@@
signals:
*/
void routeWaypointItemClicked(const GeoCoordinate &coordinate);
*/
void routeWaypointItemClicked(const GeoCoordinate &coordinate);
+ /**
+ * @brief Signal is emitted when search history item is clicked.
+ *
+ * @param searchString search string used
+ */
+ void searchHistoryItemClicked(const QString &searchString);
+
/*******************************************************************************
* DATA MEMBERS
******************************************************************************/
/*******************************************************************************
* DATA MEMBERS
******************************************************************************/
diff --git
a/src/ui/mainwindow.cpp
b/src/ui/mainwindow.cpp
index
4ba4c65
..
23f452b
100644
(file)
--- a/
src/ui/mainwindow.cpp
+++ b/
src/ui/mainwindow.cpp
@@
-271,7
+271,10
@@
void MainWindow::buildLocationSearchPanel()
this, SLOT(startLocationSearch()));
connect(this, SIGNAL(searchForLocation(QString)),
this, SLOT(startLocationSearch()));
connect(this, SIGNAL(searchForLocation(QString)),
- m_locationSearchPanel, SLOT(appendSearchHistory(QString)));
+ m_locationSearchPanel, SLOT(prependSearchHistory(QString)));
+
+ connect(m_locationSearchPanel, SIGNAL(searchHistoryItemClicked(QString)),
+ this, SIGNAL(searchHistoryItemClicked(QString)));
}
void MainWindow::buildMap()
}
void MainWindow::buildMap()
diff --git
a/src/ui/mainwindow.h
b/src/ui/mainwindow.h
index
06acfae
..
5038dc8
100644
(file)
--- a/
src/ui/mainwindow.h
+++ b/
src/ui/mainwindow.h
@@
-610,6
+610,13
@@
signals:
void searchForLocation(QString location);
/**
void searchForLocation(QString location);
/**
+ * @brief Signal is emitted when search history item is clicked.
+ *
+ * @param searchString search string used
+ */
+ void searchHistoryItemClicked(const QString &searchString);
+
+ /**
* @brief Signal for requestLocationUpdate from SituareEngine
*
* @param status Status message
* @brief Signal for requestLocationUpdate from SituareEngine
*
* @param status Status message
diff --git
a/src/ui/searchhistorylistitem.h
b/src/ui/searchhistorylistitem.h
index
faa14a1
..
b6b877a
100644
(file)
--- a/
src/ui/searchhistorylistitem.h
+++ b/
src/ui/searchhistorylistitem.h
@@
-58,9
+58,10
@@
public:
QDateTime dateTime() const;
/**
QDateTime dateTime() const;
/**
- * @brief Set location data for this item.
+ * @brief Sets search history data for this item.
*
*
- * @param location Location data
+ * @param searchString search string
+ * @param dateTime date and time for search
*/
void setSearchHistoryData(const QString &searchString, const QDateTime &dateTime);
*/
void setSearchHistoryData(const QString &searchString, const QDateTime &dateTime);