registerAction(BufferRemove, tr("Delete Chat(s)..."));
registerAction(BufferSwitchTo, tr("Go to Chat"));
+ registerAction(HideJoinPartQuit, tr("Joins/Parts/Quits"));
registerAction(HideJoin, tr("Joins"), true);
registerAction(HidePart, tr("Parts"), true);
registerAction(HideQuit, tr("Quits"), true);
registerAction(ShowIgnoreList, tr("Show Ignore List"));
QMenu *hideEventsMenu = new QMenu();
+ hideEventsMenu->addAction(action(HideJoinPartQuit));
+ hideEventsMenu->addSeparator();
hideEventsMenu->addAction(action(HideJoin));
hideEventsMenu->addAction(action(HidePart));
hideEventsMenu->addAction(action(HideQuit));
{
Q_UNUSED(action)
+ if (type == HideJoinPartQuit) {
+ bool anyChecked = NetworkModelController::action(HideJoin)->isChecked();
+ anyChecked |= NetworkModelController::action(HidePart)->isChecked();
+ anyChecked |= NetworkModelController::action(HideQuit)->isChecked();
+
+ // If any are checked, uncheck them all.
+ // If none are checked, check them all.
+ bool newCheckedState = !anyChecked;
+ NetworkModelController::action(HideJoin)->setChecked(newCheckedState);
+ NetworkModelController::action(HidePart)->setChecked(newCheckedState);
+ NetworkModelController::action(HideQuit)->setChecked(newCheckedState);
+ }
+
int filter = 0;
if (NetworkModelController::action(HideJoin)->isChecked())
filter |= Message::Join | Message::NetsplitJoin;
filter |= Message::Topic;
switch (type) {
+ case HideJoinPartQuit:
case HideJoin:
case HidePart:
case HideQuit: