Seperate SearchButton (now BookmarkButton)from LineEdit

Renamed SearchButton to BookmarkButton since it no longer has the search icon. Moved BookmarkButton to the right side of SearchBar
This commit is contained in:
ShaopengLin 2024-05-07 12:55:30 -04:00 committed by Kelson
parent ea0a682af9
commit c4c3367c78
2 changed files with 16 additions and 13 deletions

View File

@ -6,14 +6,14 @@
#include "kiwixapp.h" #include "kiwixapp.h"
#include "suggestionlistworker.h" #include "suggestionlistworker.h"
SearchButton::SearchButton(QWidget *parent) : BookmarkButton::BookmarkButton(QWidget *parent) :
QPushButton(parent) QPushButton(parent)
{ {
setFlat(true); connect(this, &QPushButton::clicked, this, &BookmarkButton::on_buttonClicked);
connect(this, &QPushButton::clicked, this, &SearchButton::on_buttonClicked); connect(this, &QPushButton::clicked, this, &BookmarkButton::update_display);
} }
void SearchButton::update_display() void BookmarkButton::update_display()
{ {
auto kiwixApp = KiwixApp::instance(); auto kiwixApp = KiwixApp::instance();
if (kiwixApp->isCurrentArticleBookmarked()) { if (kiwixApp->isCurrentArticleBookmarked()) {
@ -26,7 +26,7 @@ void SearchButton::update_display()
setIconSize(QSize(32, 32)); setIconSize(QSize(32, 32));
} }
void SearchButton::on_buttonClicked() void BookmarkButton::on_buttonClicked()
{ {
auto kiwixApp = KiwixApp::instance(); auto kiwixApp = KiwixApp::instance();
auto library = kiwixApp->getLibrary(); auto library = kiwixApp->getLibrary();
@ -44,14 +44,12 @@ void SearchButton::on_buttonClicked()
bookmark.setTitle(tabWidget->currentArticleTitle().toStdString()); bookmark.setTitle(tabWidget->currentArticleTitle().toStdString());
library->addBookmark(bookmark); library->addBookmark(bookmark);
} }
update_display();
library->save(); library->save();
} }
SearchBarLineEdit::SearchBarLineEdit(QWidget *parent) : SearchBarLineEdit::SearchBarLineEdit(QWidget *parent) :
QLineEdit(parent), QLineEdit(parent),
m_completer(&m_completionModel, this), m_completer(&m_completionModel, this)
m_button(this)
{ {
mp_typingTimer = new QTimer(this); mp_typingTimer = new QTimer(this);
mp_typingTimer->setSingleShot(true); mp_typingTimer->setSingleShot(true);
@ -106,7 +104,6 @@ void SearchBarLineEdit::clearSuggestions()
void SearchBarLineEdit::on_currentTitleChanged(const QString& title) void SearchBarLineEdit::on_currentTitleChanged(const QString& title)
{ {
m_button.update_display();
if (this->hasFocus()) { if (this->hasFocus()) {
return; return;
} }
@ -191,15 +188,21 @@ void SearchBarLineEdit::openCompletion(const QString& text, int index)
SearchBar::SearchBar(QWidget *parent) : SearchBar::SearchBar(QWidget *parent) :
QToolBar(parent), QToolBar(parent),
m_searchBarLineEdit(this) m_searchBarLineEdit(this),
m_bookmarkButton(this)
{ {
QLabel* searchIconLabel = new QLabel; QLabel* searchIconLabel = new QLabel;
searchIconLabel->setObjectName("searchIcon"); searchIconLabel->setObjectName("searchIcon");
searchIconLabel->setPixmap(QIcon(":/icons/search.svg").pixmap(QSize(27, 27))); searchIconLabel->setPixmap(QIcon(":/icons/search.svg").pixmap(QSize(27, 27)));
setIconSize(QSize(32, 32));
addWidget(searchIconLabel); addWidget(searchIconLabel);
addWidget(&m_searchBarLineEdit); addWidget(&m_searchBarLineEdit);
addWidget(&m_bookmarkButton);
connect(this, &SearchBar::currentTitleChanged, &m_searchBarLineEdit, connect(this, &SearchBar::currentTitleChanged, &m_searchBarLineEdit,
&SearchBarLineEdit::on_currentTitleChanged); &SearchBarLineEdit::on_currentTitleChanged);
connect(this, &SearchBar::currentTitleChanged, &m_bookmarkButton,
&BookmarkButton::update_display);
} }

View File

@ -11,10 +11,10 @@
#include <QThread> #include <QThread>
#include <QToolBar> #include <QToolBar>
class SearchButton : public QPushButton { class BookmarkButton : public QPushButton {
Q_OBJECT Q_OBJECT
public: public:
SearchButton(QWidget *parent = nullptr); BookmarkButton(QWidget *parent = nullptr);
public slots: public slots:
void update_display(); void update_display();
@ -39,7 +39,6 @@ private:
QStringListModel m_completionModel; QStringListModel m_completionModel;
QCompleter m_completer; QCompleter m_completer;
QVector<QUrl> m_urlList; QVector<QUrl> m_urlList;
SearchButton m_button;
QString m_title; QString m_title;
QString m_searchbarInput; QString m_searchbarInput;
bool m_returnPressed = false; bool m_returnPressed = false;
@ -64,5 +63,6 @@ signals:
private: private:
SearchBarLineEdit m_searchBarLineEdit; SearchBarLineEdit m_searchBarLineEdit;
BookmarkButton m_bookmarkButton;
}; };
#endif // SEARCHBAR_H #endif // SEARCHBAR_H