Open settings when clicking moderation button and no moderation actions are found
This commit is contained in:
@@ -102,7 +102,7 @@ void SettingsDialog::addTabs()
|
||||
|
||||
this->addTab(new KeyboardSettingsPage);
|
||||
// this->addTab(new LogsPage);
|
||||
this->addTab(new ModerationPage);
|
||||
this->addTab(this->ui_.moderationPage = new ModerationPage);
|
||||
this->addTab(new NotificationPage);
|
||||
// this->addTab(new SpecialChannelsPage);
|
||||
this->addTab(new BrowserExtensionPage);
|
||||
@@ -116,6 +116,7 @@ void SettingsDialog::addTabs()
|
||||
void SettingsDialog::addTab(SettingsPage *page, Qt::Alignment alignment)
|
||||
{
|
||||
auto tab = new SettingsDialogTab(this, page, page->getIconResource());
|
||||
page->setTab(tab);
|
||||
|
||||
this->ui_.pageStack->addWidget(page);
|
||||
this->ui_.tabContainer->addWidget(tab, 0, alignment);
|
||||
@@ -142,18 +143,31 @@ void SettingsDialog::selectTab(SettingsDialogTab *tab)
|
||||
this->selectedTab_ = tab;
|
||||
}
|
||||
|
||||
void SettingsDialog::showDialog(PreferredTab preferredTab)
|
||||
void SettingsDialog::selectPage(SettingsPage *page)
|
||||
{
|
||||
assert(page);
|
||||
assert(page->tab());
|
||||
|
||||
this->selectTab(page->tab());
|
||||
}
|
||||
|
||||
void SettingsDialog::showDialog(SettingsDialogPreference preferredTab)
|
||||
{
|
||||
static SettingsDialog *instance = new SettingsDialog();
|
||||
instance->refresh();
|
||||
|
||||
switch (preferredTab)
|
||||
{
|
||||
case SettingsDialog::PreferredTab::Accounts:
|
||||
{
|
||||
case SettingsDialogPreference::Accounts:
|
||||
instance->selectTab(instance->tabs_.at(0));
|
||||
}
|
||||
break;
|
||||
break;
|
||||
|
||||
case SettingsDialogPreference::ModerationActions:
|
||||
instance->selectPage(instance->ui_.moderationPage);
|
||||
instance->ui_.moderationPage->selectModerationActions();
|
||||
break;
|
||||
|
||||
default:;
|
||||
}
|
||||
|
||||
instance->show();
|
||||
|
||||
@@ -12,6 +12,13 @@ namespace chatterino {
|
||||
|
||||
class SettingsPage;
|
||||
class SettingsDialogTab;
|
||||
class ModerationPage;
|
||||
|
||||
enum class SettingsDialogPreference {
|
||||
NoPreference,
|
||||
Accounts,
|
||||
ModerationActions,
|
||||
};
|
||||
|
||||
class SettingsDialog : public BaseWindow
|
||||
{
|
||||
@@ -19,14 +26,8 @@ public:
|
||||
SettingsDialog();
|
||||
|
||||
static SettingsDialog *getHandle(); // may be NULL
|
||||
|
||||
enum class PreferredTab {
|
||||
NoPreference,
|
||||
Accounts,
|
||||
};
|
||||
|
||||
static void showDialog(
|
||||
PreferredTab preferredTab = PreferredTab::NoPreference);
|
||||
static void showDialog(SettingsDialogPreference preferredTab =
|
||||
SettingsDialogPreference::NoPreference);
|
||||
|
||||
protected:
|
||||
virtual void scaleChangedEvent(float newDpi) override;
|
||||
@@ -41,19 +42,21 @@ private:
|
||||
void addTabs();
|
||||
void addTab(SettingsPage *page, Qt::Alignment alignment = Qt::AlignTop);
|
||||
void selectTab(SettingsDialogTab *tab);
|
||||
void selectPage(SettingsPage *page);
|
||||
|
||||
void onOkClicked();
|
||||
void onCancelClicked();
|
||||
|
||||
struct {
|
||||
QWidget *tabContainerContainer;
|
||||
QVBoxLayout *tabContainer;
|
||||
QStackedLayout *pageStack;
|
||||
QPushButton *okButton;
|
||||
QPushButton *cancelButton;
|
||||
QWidget *tabContainerContainer{};
|
||||
QVBoxLayout *tabContainer{};
|
||||
QStackedLayout *pageStack{};
|
||||
QPushButton *okButton{};
|
||||
QPushButton *cancelButton{};
|
||||
ModerationPage *moderationPage{};
|
||||
} ui_;
|
||||
std::vector<SettingsDialogTab *> tabs_;
|
||||
SettingsDialogTab *selectedTab_ = nullptr;
|
||||
SettingsDialogTab *selectedTab_{};
|
||||
|
||||
friend class SettingsDialogTab;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user