Notebook::select now takes the optional parameter "focusPage". (#3446)
This commit is contained in:
+23
-20
@@ -131,7 +131,7 @@ int Notebook::indexOf(QWidget *page) const
|
||||
return -1;
|
||||
}
|
||||
|
||||
void Notebook::select(QWidget *page)
|
||||
void Notebook::select(QWidget *page, bool focusPage)
|
||||
{
|
||||
if (page == this->selectedPage_)
|
||||
{
|
||||
@@ -148,20 +148,23 @@ void Notebook::select(QWidget *page)
|
||||
item.tab->setSelected(true);
|
||||
item.tab->raise();
|
||||
|
||||
if (item.selectedWidget == nullptr)
|
||||
if (focusPage)
|
||||
{
|
||||
item.page->setFocus();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (containsChild(page, item.selectedWidget))
|
||||
if (item.selectedWidget == nullptr)
|
||||
{
|
||||
item.selectedWidget->setFocus(Qt::MouseFocusReason);
|
||||
item.page->setFocus();
|
||||
}
|
||||
else
|
||||
{
|
||||
qCDebug(chatterinoWidget)
|
||||
<< "Notebook: selected child of page doesn't exist anymore";
|
||||
if (containsChild(page, item.selectedWidget))
|
||||
{
|
||||
item.selectedWidget->setFocus(Qt::MouseFocusReason);
|
||||
}
|
||||
else
|
||||
{
|
||||
qCDebug(chatterinoWidget) << "Notebook: selected child of "
|
||||
"page doesn't exist anymore";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -216,17 +219,17 @@ bool Notebook::containsChild(const QObject *obj, const QObject *child)
|
||||
});
|
||||
}
|
||||
|
||||
void Notebook::selectIndex(int index)
|
||||
void Notebook::selectIndex(int index, bool focusPage)
|
||||
{
|
||||
if (index < 0 || this->items_.count() <= index)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
this->select(this->items_[index].page);
|
||||
this->select(this->items_[index].page, focusPage);
|
||||
}
|
||||
|
||||
void Notebook::selectNextTab()
|
||||
void Notebook::selectNextTab(bool focusPage)
|
||||
{
|
||||
if (this->items_.size() <= 1)
|
||||
{
|
||||
@@ -236,10 +239,10 @@ void Notebook::selectNextTab()
|
||||
auto index =
|
||||
(this->indexOf(this->selectedPage_) + 1) % this->items_.count();
|
||||
|
||||
this->select(this->items_[index].page);
|
||||
this->select(this->items_[index].page, focusPage);
|
||||
}
|
||||
|
||||
void Notebook::selectPreviousTab()
|
||||
void Notebook::selectPreviousTab(bool focusPage)
|
||||
{
|
||||
if (this->items_.size() <= 1)
|
||||
{
|
||||
@@ -253,10 +256,10 @@ void Notebook::selectPreviousTab()
|
||||
index += this->items_.count();
|
||||
}
|
||||
|
||||
this->select(this->items_[index].page);
|
||||
this->select(this->items_[index].page, focusPage);
|
||||
}
|
||||
|
||||
void Notebook::selectLastTab()
|
||||
void Notebook::selectLastTab(bool focusPage)
|
||||
{
|
||||
const auto size = this->items_.size();
|
||||
if (size <= 1)
|
||||
@@ -264,7 +267,7 @@ void Notebook::selectLastTab()
|
||||
return;
|
||||
}
|
||||
|
||||
this->select(this->items_[size - 1].page);
|
||||
this->select(this->items_[size - 1].page, focusPage);
|
||||
}
|
||||
|
||||
int Notebook::getPageCount() const
|
||||
@@ -806,7 +809,7 @@ SplitContainer *SplitNotebook::getOrAddSelectedPage()
|
||||
: this->addPage();
|
||||
}
|
||||
|
||||
void SplitNotebook::select(QWidget *page)
|
||||
void SplitNotebook::select(QWidget *page, bool focusPage)
|
||||
{
|
||||
if (auto selectedPage = this->getSelectedPage())
|
||||
{
|
||||
@@ -818,7 +821,7 @@ void SplitNotebook::select(QWidget *page)
|
||||
}
|
||||
}
|
||||
}
|
||||
this->Notebook::select(page);
|
||||
this->Notebook::select(page, focusPage);
|
||||
}
|
||||
|
||||
} // namespace chatterino
|
||||
|
||||
Reference in New Issue
Block a user