Make search field clear buttons follow icon size settings

This commit is contained in:
Jonas Kvinge
2020-06-29 01:09:02 +02:00
parent e747c2e263
commit 558e392234
6 changed files with 33 additions and 13 deletions

View File

@@ -149,6 +149,7 @@ void CollectionFilterWidget::ReloadSettings() {
int iconsize = s.value(AppearanceSettingsPage::kIconSizeConfigureButtons, 20).toInt(); int iconsize = s.value(AppearanceSettingsPage::kIconSizeConfigureButtons, 20).toInt();
s.endGroup(); s.endGroup();
ui_->options->setIconSize(QSize(iconsize, iconsize)); ui_->options->setIconSize(QSize(iconsize, iconsize));
ui_->filter->setIconSize(iconsize);
} }

View File

@@ -250,6 +250,7 @@ void InternetSearchView::ReloadSettings() {
int iconsize = s.value(AppearanceSettingsPage::kIconSizeConfigureButtons, 20).toInt(); int iconsize = s.value(AppearanceSettingsPage::kIconSizeConfigureButtons, 20).toInt();
s.endGroup(); s.endGroup();
ui_->settings->setIconSize(QSize(iconsize, iconsize)); ui_->settings->setIconSize(QSize(iconsize, iconsize));
ui_->search->setIconSize(iconsize);
} }

View File

@@ -234,15 +234,16 @@ void PlaylistContainer::ReloadSettings() {
QSettings s; QSettings s;
s.beginGroup(AppearanceSettingsPage::kSettingsGroup); s.beginGroup(AppearanceSettingsPage::kSettingsGroup);
int iconsize_playlist_buttons = s.value(AppearanceSettingsPage::kIconSizePlaylistButtons, 20).toInt(); int iconsize = s.value(AppearanceSettingsPage::kIconSizePlaylistButtons, 20).toInt();
s.endGroup(); s.endGroup();
ui_->create_new->setIconSize(QSize(iconsize_playlist_buttons, iconsize_playlist_buttons)); ui_->create_new->setIconSize(QSize(iconsize, iconsize));
ui_->load->setIconSize(QSize(iconsize_playlist_buttons, iconsize_playlist_buttons)); ui_->load->setIconSize(QSize(iconsize, iconsize));
ui_->save->setIconSize(QSize(iconsize_playlist_buttons, iconsize_playlist_buttons)); ui_->save->setIconSize(QSize(iconsize, iconsize));
ui_->clear->setIconSize(QSize(iconsize_playlist_buttons, iconsize_playlist_buttons)); ui_->clear->setIconSize(QSize(iconsize, iconsize));
ui_->undo->setIconSize(QSize(iconsize_playlist_buttons, iconsize_playlist_buttons)); ui_->undo->setIconSize(QSize(iconsize, iconsize));
ui_->redo->setIconSize(QSize(iconsize_playlist_buttons, iconsize_playlist_buttons)); ui_->redo->setIconSize(QSize(iconsize, iconsize));
ui_->filter->setIconSize(iconsize);
bool playlist_clear = settings_.value("playlist_clear", true).toBool(); bool playlist_clear = settings_.value("playlist_clear", true).toBool();
if (playlist_clear) { if (playlist_clear) {

View File

@@ -12,30 +12,32 @@ class QSearchField : public QWidget {
Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged USER true) Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged USER true)
Q_PROPERTY(QString placeholderText READ placeholderText WRITE setPlaceholderText) Q_PROPERTY(QString placeholderText READ placeholderText WRITE setPlaceholderText)
public: public:
explicit QSearchField(QWidget *parent); explicit QSearchField(QWidget *parent);
void setIconSize(const int iconsize);
QString text() const; QString text() const;
QString placeholderText() const; QString placeholderText() const;
void setFocus(Qt::FocusReason); void setFocus(Qt::FocusReason);
public slots: public slots:
void setText(const QString &text); void setText(const QString &text);
void setPlaceholderText(const QString &text); void setPlaceholderText(const QString &text);
void clear(); void clear();
void selectAll(); void selectAll();
void setFocus(); void setFocus();
signals: signals:
void textChanged(const QString &text); void textChanged(const QString &text);
void editingFinished(); void editingFinished();
void returnPressed(); void returnPressed();
protected: protected:
void resizeEvent(QResizeEvent*) override; void resizeEvent(QResizeEvent*) override;
bool eventFilter(QObject*, QEvent*) override; bool eventFilter(QObject*, QEvent*) override;
private: private:
friend class QSearchFieldPrivate; friend class QSearchFieldPrivate;
QPointer <QSearchFieldPrivate> pimpl; QPointer <QSearchFieldPrivate> pimpl;
}; };

View File

@@ -167,6 +167,8 @@ QSearchField::QSearchField(QWidget *parent) : QWidget(parent) {
[pool drain]; [pool drain];
} }
void QSearchField::setIconSize(const int iconsize) {}
void QSearchField::setText(const QString &text) { void QSearchField::setText(const QString &text) {
Q_ASSERT(pimpl); Q_ASSERT(pimpl);
if (!pimpl) return; if (!pimpl) return;

View File

@@ -73,7 +73,7 @@ QSearchField::QSearchField(QWidget *parent) : QWidget(parent) {
QIcon clearIcon(IconLoader::Load("edit-clear-locationbar-ltr")); QIcon clearIcon(IconLoader::Load("edit-clear-locationbar-ltr"));
clearbutton->setIcon(clearIcon); clearbutton->setIcon(clearIcon);
clearbutton->setIconSize(QSize(16, 16)); clearbutton->setIconSize(QSize(20, 20));
clearbutton->setStyleSheet("border: none; padding: 0px;"); clearbutton->setStyleSheet("border: none; padding: 0px;");
clearbutton->resize(clearbutton->sizeHint()); clearbutton->resize(clearbutton->sizeHint());
@@ -96,6 +96,19 @@ QSearchField::QSearchField(QWidget *parent) : QWidget(parent) {
} }
void QSearchField::setIconSize(const int iconsize) {
pimpl->clearbutton_->setIconSize(QSize(iconsize, iconsize));
pimpl->clearbutton_->resize(pimpl->clearbutton_->sizeHint());
pimpl->lineedit_->setStyleSheet(QString("QLineEdit { padding-left: %1px; } ").arg(pimpl->clearbutton_->width()));
const int frame_width = pimpl->lineedit_->style()->pixelMetric(QStyle::PM_DefaultFrameWidth);
const int width = frame_width + qMax(pimpl->lineedit_->minimumSizeHint().width(), pimpl->clearButtonPaddedWidth());
const int height = frame_width + qMax(pimpl->lineedit_->minimumSizeHint().height(), pimpl->clearButtonPaddedHeight());
pimpl->lineedit_->setMinimumSize(width, height);
}
void QSearchField::setText(const QString &text) { void QSearchField::setText(const QString &text) {
Q_ASSERT(pimpl && pimpl->clearbutton_ && pimpl->lineedit_); Q_ASSERT(pimpl && pimpl->clearbutton_ && pimpl->lineedit_);