/***************************************************************************
- * Copyright (C) 2005-2013 by the Quassel Project *
+ * Copyright (C) 2005-2018 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
-#ifndef NETWORKMODELCONTROLLER_H_
-#define NETWORKMODELCONTROLLER_H_
+#pragma once
+
+#include "uisupport-export.h"
#include <QDialog>
class QDialogButtonBox;
class QLineEdit;
-class NetworkModelController : public QObject
+class UISUPPORT_EXPORT NetworkModelController : public QObject
{
Q_OBJECT
public:
- NetworkModelController(QObject *parent = 0);
- virtual ~NetworkModelController();
+ NetworkModelController(QObject *parent = nullptr);
// don't change enums without doublechecking masks etc. in code
enum ActionType {
NetworkMask = 0x0f,
NetworkConnect = 0x01,
NetworkDisconnect = 0x02,
- NetworkConnectAll = 0x03,
- NetworkDisconnectAll = 0x04,
+ NetworkConnectAllWithDropdown = 0x03,
+ NetworkDisconnectAllWithDropdown = 0x04,
+ NetworkConnectAll = 0x05,
+ NetworkDisconnectAll = 0x06,
// Buffer actions
BufferMask = 0xf0,
HideMode = 0x0500,
HideDayChange = 0x0600,
HideTopic = 0x0700,
+ HideJoinPartQuit = 0xd00,
HideUseDefaults = 0xe00,
HideApplyToAll = 0xf00,
JoinChannel = 0x1000,
ShowChannelList = 0x2000,
ShowIgnoreList = 0x3000,
+ ShowNetworkConfig = 0x4000,
// Nick actions
NickMask = 0xff0000,
void setSlot(QObject *receiver, const char *method);
Action *registerAction(ActionType type, const QString &text, bool checkable = false);
- Action *registerAction(ActionType type, const QPixmap &icon, const QString &text, bool checkable = false);
+ Action *registerAction(NetworkModelController::ActionType type, const QIcon &icon, const QString &text, bool checkable = false);
bool checkRequirements(const QModelIndex &index, ItemActiveStates requiredActiveState = QFlags<ItemActiveState>(ActiveState | InactiveState));
QString nickName(const QModelIndex &index) const;
virtual void actionTriggered(QAction *);
signals:
- void showChannelList(NetworkId);
+ /**
+ * Request to show the channel list dialog for the network, optionally searching by channel name
+ *
+ * @see MainWin::showChannelList()
+ *
+ * @param networkId Network ID for associated network
+ * @param channelFilters Partial channel name to search for, or empty to show all
+ * @param listImmediately If true, immediately list channels, otherwise just show dialog
+ */
+ void showChannelList(NetworkId, const QString &, bool);
+ void showNetworkConfig(NetworkId);
void showIgnoreList(QString);
protected:
QHash<ActionType, Action *> _actionByType;
QList<QModelIndex> _indexList;
- MessageFilter *_messageFilter;
+ MessageFilter *_messageFilter{nullptr};
QString _contextItem; ///< Channel name or nick to provide context menu for
- QObject *_receiver;
+ QObject *_receiver{nullptr};
const char *_method;
};
Q_OBJECT
public:
- JoinDlg(const QModelIndex &index, QWidget *parent = 0);
+ JoinDlg(const QModelIndex &index, QWidget *parent = nullptr);
QString channelName() const;
QString channelPassword() const;
QString NetworkModelController::contextItem() const { return _contextItem; }
QObject *NetworkModelController::receiver() const { return _receiver; }
const char *NetworkModelController::method() const { return _method; }
-
-#endif