mirror of
https://github.com/kiwix/kiwix-desktop.git
synced 2025-08-03 12:46:29 -04:00
MultiZim Select-All Button Key Press Compatible
QCheckbox does not provide support out of the box for key press checking.
This commit is contained in:
parent
fdfd0efca0
commit
cc81532d76
@ -13,7 +13,7 @@ MultiZimButton::MultiZimButton(QWidget *parent) :
|
||||
QToolButton(parent),
|
||||
mp_buttonList(new QListWidget),
|
||||
mp_radioButtonGroup(new QButtonGroup(this)),
|
||||
mp_selectAllButton(new QCheckBox(gt("select-all"), this))
|
||||
mp_selectAllButton(new SelectAllButton(gt("select-all"), this))
|
||||
{
|
||||
setMenu(new QMenu(this));
|
||||
setPopupMode(QToolButton::InstantPopup);
|
||||
@ -172,3 +172,13 @@ ZimItemWidget::ZimItemWidget(QString text, QIcon icon, QWidget *parent) :
|
||||
layout()->addWidget(textLabel);
|
||||
layout()->addWidget(radioBt);
|
||||
}
|
||||
|
||||
void SelectAllButton::keyPressEvent(QKeyEvent *e)
|
||||
{
|
||||
if (e->key() == Qt::Key_Enter || e->key() == Qt::Key_Return)
|
||||
{
|
||||
toggle();
|
||||
return;
|
||||
}
|
||||
QCheckBox::keyPressEvent(e);
|
||||
}
|
||||
|
@ -2,13 +2,23 @@
|
||||
#define MULTIZIMBUTTON_H
|
||||
|
||||
#include <QToolButton>
|
||||
#include <QCheckBox>
|
||||
|
||||
class QListWidget;
|
||||
class QButtonGroup;
|
||||
class QListWidgetItem;
|
||||
class QRadioButton;
|
||||
class QLabel;
|
||||
class QCheckBox;
|
||||
|
||||
class SelectAllButton : public QCheckBox {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
SelectAllButton(const QString &text, QWidget *parent = nullptr) : QCheckBox(text, parent) {}
|
||||
|
||||
protected:
|
||||
void keyPressEvent(QKeyEvent *e) override;
|
||||
};
|
||||
|
||||
class ZimItemWidget : public QWidget {
|
||||
Q_OBJECT
|
||||
@ -37,7 +47,7 @@ public slots:
|
||||
private:
|
||||
QListWidget* mp_buttonList;
|
||||
QButtonGroup* mp_radioButtonGroup;
|
||||
QCheckBox* mp_selectAllButton;
|
||||
SelectAllButton* mp_selectAllButton;
|
||||
|
||||
ZimItemWidget* getZimWidget(int row) const;
|
||||
void setItemZimWidget(QListWidgetItem* item, const QString& title, const QIcon& icon);
|
||||
|
Loading…
x
Reference in New Issue
Block a user