mirror of
https://github.com/GoldenCheetah/GoldenCheetah.git
synced 2026-02-13 16:18:42 +00:00
Searchbox toggle search/filter
Clicking the icon to toggle between text search and data filter mode for searchbox. As part of filtering implementation.
This commit is contained in:
@@ -45,7 +45,7 @@ SearchBox::SearchBox(QWidget *parent)
|
||||
searchButton->setIconSize(search.size());
|
||||
searchButton->setCursor(Qt::ArrowCursor);
|
||||
searchButton->setStyleSheet("QToolButton { border: none; padding: 0px; }");
|
||||
connect(searchButton, SIGNAL(clicked()), this, SLOT(searchSubmit()));
|
||||
connect(searchButton, SIGNAL(clicked()), this, SLOT(toggleMode()));
|
||||
|
||||
int frameWidth = style()->pixelMetric(QStyle::PM_DefaultFrameWidth);
|
||||
setStyleSheet(QString( //"QLineEdit { padding-right: %1px; } "
|
||||
@@ -75,6 +75,7 @@ SearchBox::SearchBox(QWidget *parent)
|
||||
qMax(msz.height(), clearButton->sizeHint().height() /* + frameWidth * 2 + -2*/));
|
||||
|
||||
setPlaceholderText("Search...");
|
||||
mode = Search;
|
||||
setDragEnabled(true);
|
||||
connect(this, SIGNAL(returnPressed()), this, SLOT(searchSubmit()));
|
||||
}
|
||||
@@ -89,6 +90,38 @@ void SearchBox::resizeEvent(QResizeEvent *)
|
||||
(rect().bottom() + 1 - sz.height())/2);
|
||||
}
|
||||
|
||||
void SearchBox::toggleMode()
|
||||
{
|
||||
if (mode == Search) setMode(Filter);
|
||||
else setMode(Search);
|
||||
}
|
||||
|
||||
void SearchBox::setMode(SearchBoxMode mode)
|
||||
{
|
||||
switch (mode) {
|
||||
|
||||
case Filter:
|
||||
{
|
||||
QPixmap filter(":images/toolbar/filter.png");
|
||||
searchButton->setIcon(QIcon(filter));
|
||||
searchButton->setIconSize(filter.size());
|
||||
setPlaceholderText("Filter...");
|
||||
}
|
||||
break;
|
||||
|
||||
case Search:
|
||||
default:
|
||||
{
|
||||
QPixmap search(":images/toolbar/search.png");
|
||||
searchButton->setIcon(QIcon(search));
|
||||
searchButton->setIconSize(search.size());
|
||||
setPlaceholderText("Search...");
|
||||
}
|
||||
break;
|
||||
}
|
||||
this->mode = mode;
|
||||
}
|
||||
|
||||
void SearchBox::updateCloseButton(const QString& text)
|
||||
{
|
||||
if (clearButton->isVisible() && text.isEmpty()) clearQuery();
|
||||
|
||||
@@ -30,14 +30,21 @@ class SearchBox : public QLineEdit
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
enum searchboxmode { Search, Filter };
|
||||
typedef enum searchboxmode SearchBoxMode;
|
||||
|
||||
SearchBox(QWidget *parent = 0);
|
||||
|
||||
// either search box or filter box
|
||||
void setMode(SearchBoxMode mode);
|
||||
|
||||
protected:
|
||||
void resizeEvent(QResizeEvent *);
|
||||
|
||||
private slots:
|
||||
void updateCloseButton(const QString &text);
|
||||
void searchSubmit();
|
||||
void toggleMode();
|
||||
|
||||
// drop column headings from column chooser
|
||||
void dragEnterEvent(QDragEnterEvent *event);
|
||||
@@ -49,6 +56,7 @@ signals:
|
||||
|
||||
private:
|
||||
QToolButton *clearButton, *searchButton;
|
||||
SearchBoxMode mode;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
<file>images/toolbar/main/train.png</file>
|
||||
<file>images/toolbar/clear.png</file>
|
||||
<file>images/toolbar/search.png</file>
|
||||
<file>images/toolbar/filter.png</file>
|
||||
<file>images/maps/cycling_feed.png</file>
|
||||
<file>images/maps/loop.png</file>
|
||||
<file>images/maps/cycling.png</file>
|
||||
|
||||
BIN
src/images/toolbar/filter.png
Normal file
BIN
src/images/toolbar/filter.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.0 KiB |
Reference in New Issue
Block a user