/***************************************************************************
- * Copyright (C) 2005-2013 by the Quassel Project *
+ * Copyright (C) 2005-2015 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
#include <QComboBox>
#include <QDialogButtonBox>
#include <QGridLayout>
+#include <QIcon>
#include <QLabel>
#include <QLineEdit>
#include <QInputDialog>
#include "buffermodel.h"
#include "buffersettings.h"
-#include "iconloader.h"
#include "clientidentity.h"
#include "network.h"
#include "util.h"
}
-Action *NetworkModelController::registerAction(ActionType type, const QPixmap &icon, const QString &text, bool checkable)
+Action *NetworkModelController::registerAction(ActionType type, const QIcon &icon, const QString &text, bool checkable)
{
Action *act;
if (icon.isNull())
{
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:
return;
case HideApplyToAll:
BufferSettings().setMessageFilter(filter);
+ [[fallthrough]];
case HideUseDefaults:
if (_messageFilter)
BufferSettings(_messageFilter->idString()).removeFilter();
NetworkModelController::JoinDlg::JoinDlg(const QModelIndex &index, QWidget *parent) : QDialog(parent)
{
- setWindowIcon(SmallIcon("irc-join-channel"));
+ setWindowIcon(QIcon::fromTheme("irc-join-channel"));
setWindowTitle(tr("Join Channel"));
QGridLayout *layout = new QGridLayout(this);