61 lines
1.9 KiB
C++
61 lines
1.9 KiB
C++
#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 <QHeaderView>
|
|
#include <QTableView>
|
|
|
|
namespace chatterino {
|
|
|
|
NicknamesPage::NicknamesPage()
|
|
{
|
|
LayoutCreator<NicknamesPage> layoutCreator(this);
|
|
auto layout = layoutCreator.setLayoutType<QVBoxLayout>();
|
|
|
|
layout.emplace<QLabel>(
|
|
"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<EditableModelView>(
|
|
(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
|