mirror of
https://gitee.com/spark-store-project/spark-store
synced 2025-12-13 12:22:05 +08:00
修复侧边栏上的按钮在选中时再单击会被取消选中的问题
This commit is contained in:
@@ -66,6 +66,8 @@ namespace SpkUi
|
|||||||
void BindPageSwitcherButton(QAbstractButton* w)
|
void BindPageSwitcherButton(QAbstractButton* w)
|
||||||
{
|
{
|
||||||
connect(w, &QAbstractButton::toggled,
|
connect(w, &QAbstractButton::toggled,
|
||||||
|
this, &SpkSidebarSelector::ButtonToggled);
|
||||||
|
connect(w, &QAbstractButton::pressed,
|
||||||
this, &SpkSidebarSelector::ButtonPressed);
|
this, &SpkSidebarSelector::ButtonPressed);
|
||||||
}
|
}
|
||||||
void BindCategoryWidget(QTreeWidget* w)
|
void BindCategoryWidget(QTreeWidget* w)
|
||||||
@@ -83,7 +85,7 @@ namespace SpkUi
|
|||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
// We assume the objects in interest all have the correct properties
|
// We assume the objects in interest all have the correct properties
|
||||||
void ButtonPressed(bool aBtnState)
|
void ButtonToggled(bool aBtnState)
|
||||||
{
|
{
|
||||||
auto b = qobject_cast<QPushButton*>(sender());
|
auto b = qobject_cast<QPushButton*>(sender());
|
||||||
if(mLastCheckedBtn)
|
if(mLastCheckedBtn)
|
||||||
@@ -93,8 +95,6 @@ namespace SpkUi
|
|||||||
mLastCheckedBtn->setChecked(false);
|
mLastCheckedBtn->setChecked(false);
|
||||||
mLastCheckedBtn = nullptr;
|
mLastCheckedBtn = nullptr;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
b->setChecked(aBtnState);
|
|
||||||
}
|
}
|
||||||
else if(mLastSelectedItem)
|
else if(mLastSelectedItem)
|
||||||
{
|
{
|
||||||
@@ -105,6 +105,12 @@ namespace SpkUi
|
|||||||
auto id = b->property("spk_pageno").toInt();
|
auto id = b->property("spk_pageno").toInt();
|
||||||
emit SwitchToPage(static_cast<SpkStackedPages>(id));
|
emit SwitchToPage(static_cast<SpkStackedPages>(id));
|
||||||
}
|
}
|
||||||
|
void ButtonPressed()
|
||||||
|
{ // Prevent a selected button from being deselected by clicking on it
|
||||||
|
auto b = qobject_cast<QPushButton*>(sender());
|
||||||
|
if(mLastCheckedBtn == b)
|
||||||
|
b->setChecked(false);
|
||||||
|
}
|
||||||
void TreeItemSelected(QTreeWidgetItem *item, int column)
|
void TreeItemSelected(QTreeWidgetItem *item, int column)
|
||||||
{
|
{
|
||||||
if(mUnusableItems.contains(item))
|
if(mUnusableItems.contains(item))
|
||||||
|
|||||||
Reference in New Issue
Block a user