#include "widgets/settingspages/NicknamesPage.hpp" #include "controllers/nicknames/Nickname.hpp" #include "controllers/nicknames/NicknamesModel.hpp" #include "singletons/Settings.hpp" #include "singletons/WindowManager.hpp" #include "util/LayoutCreator.hpp" #include "widgets/helper/EditableModelView.hpp" #include #include namespace chatterino { NicknamesPage::NicknamesPage() { LayoutCreator layoutCreator(this); auto layout = layoutCreator.setLayoutType(); layout.emplace( "Nicknames do not work with features such as user highlights and " "filters." "\nWith those features you will still need to use the user's original " "name."); EditableModelView *view = layout .emplace( (new NicknamesModel(nullptr)) ->initialized(&getSettings()->nicknames)) .getElement(); this->view_ = view; view->setTitles({"Username", "Nickname", "Enable regex", "Case-sensitive"}); view->getTableView()->horizontalHeader()->setSectionResizeMode( QHeaderView::Fixed); view->getTableView()->horizontalHeader()->setSectionResizeMode( 0, QHeaderView::Stretch); view->getTableView()->horizontalHeader()->setSectionResizeMode( 1, QHeaderView::Stretch); // We can safely ignore this signal connection since we own the view std::ignore = view->addButtonPressed.connect([] { getSettings()->nicknames.append( Nickname{"Username", "Nickname", false, false}); }); QTimer::singleShot(1, [view] { view->getTableView()->resizeColumnsToContents(); view->getTableView()->setColumnWidth(0, 200); }); } bool NicknamesPage::filterElements(const QString &query) { std::array fields{0, 1}; return this->view_->filterSearchResults(query, fields); } } // namespace chatterino