mirror of
https://github.com/kiwix/kiwix-desktop.git
synced 2025-09-08 03:32:30 -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),
|
QToolButton(parent),
|
||||||
mp_buttonList(new QListWidget),
|
mp_buttonList(new QListWidget),
|
||||||
mp_radioButtonGroup(new QButtonGroup(this)),
|
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));
|
setMenu(new QMenu(this));
|
||||||
setPopupMode(QToolButton::InstantPopup);
|
setPopupMode(QToolButton::InstantPopup);
|
||||||
@ -172,3 +172,13 @@ ZimItemWidget::ZimItemWidget(QString text, QIcon icon, QWidget *parent) :
|
|||||||
layout()->addWidget(textLabel);
|
layout()->addWidget(textLabel);
|
||||||
layout()->addWidget(radioBt);
|
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
|
#define MULTIZIMBUTTON_H
|
||||||
|
|
||||||
#include <QToolButton>
|
#include <QToolButton>
|
||||||
|
#include <QCheckBox>
|
||||||
|
|
||||||
class QListWidget;
|
class QListWidget;
|
||||||
class QButtonGroup;
|
class QButtonGroup;
|
||||||
class QListWidgetItem;
|
class QListWidgetItem;
|
||||||
class QRadioButton;
|
class QRadioButton;
|
||||||
class QLabel;
|
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 {
|
class ZimItemWidget : public QWidget {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@ -37,7 +47,7 @@ public slots:
|
|||||||
private:
|
private:
|
||||||
QListWidget* mp_buttonList;
|
QListWidget* mp_buttonList;
|
||||||
QButtonGroup* mp_radioButtonGroup;
|
QButtonGroup* mp_radioButtonGroup;
|
||||||
QCheckBox* mp_selectAllButton;
|
SelectAllButton* mp_selectAllButton;
|
||||||
|
|
||||||
ZimItemWidget* getZimWidget(int row) const;
|
ZimItemWidget* getZimWidget(int row) const;
|
||||||
void setItemZimWidget(QListWidgetItem* item, const QString& title, const QIcon& icon);
|
void setItemZimWidget(QListWidgetItem* item, const QString& title, const QIcon& icon);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user