X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Fnetworkmodelcontroller.h;h=e224b75f80ed16f5db22761e8e11ccf5db915146;hp=48fc5eb15810356da80bbfc144cc1f1324abdf97;hb=e8a39b4c3c92e193ab861a3fea84a261bb6fbd24;hpb=76db8cdfbeffaaba359c8e80cf2146da9e9e7f8a diff --git a/src/uisupport/networkmodelcontroller.h b/src/uisupport/networkmodelcontroller.h index 48fc5eb1..e224b75f 100644 --- a/src/uisupport/networkmodelcontroller.h +++ b/src/uisupport/networkmodelcontroller.h @@ -1,5 +1,5 @@ /*************************************************************************** - * 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 * @@ -18,8 +18,9 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ -#ifndef NETWORKMODELCONTROLLER_H_ -#define NETWORKMODELCONTROLLER_H_ +#pragma once + +#include "uisupport-export.h" #include @@ -31,13 +32,13 @@ class QComboBox; 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); + ~NetworkModelController() override; // don't change enums without doublechecking masks etc. in code enum ActionType { @@ -45,8 +46,10 @@ public: NetworkMask = 0x0f, NetworkConnect = 0x01, NetworkDisconnect = 0x02, - NetworkConnectAll = 0x03, - NetworkDisconnectAll = 0x04, + NetworkConnectAllWithDropdown = 0x03, + NetworkDisconnectAllWithDropdown = 0x04, + NetworkConnectAll = 0x05, + NetworkDisconnectAll = 0x06, // Buffer actions BufferMask = 0xf0, @@ -64,6 +67,7 @@ public: HideMode = 0x0500, HideDayChange = 0x0600, HideTopic = 0x0700, + HideJoinPartQuit = 0xd00, HideUseDefaults = 0xe00, HideApplyToAll = 0xf00, @@ -72,6 +76,7 @@ public: JoinChannel = 0x1000, ShowChannelList = 0x2000, ShowIgnoreList = 0x3000, + ShowNetworkConfig = 0x4000, // Nick actions NickMask = 0xff0000, @@ -138,7 +143,7 @@ protected: 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(ActiveState | InactiveState)); QString nickName(const QModelIndex &index) const; @@ -150,7 +155,17 @@ protected slots: 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: @@ -183,7 +198,7 @@ class NetworkModelController::JoinDlg : public QDialog Q_OBJECT public: - JoinDlg(const QModelIndex &index, QWidget *parent = 0); + JoinDlg(const QModelIndex &index, QWidget *parent = nullptr); QString channelName() const; QString channelPassword() const; @@ -208,5 +223,3 @@ MessageFilter *NetworkModelController::messageFilter() const { return _messageFi QString NetworkModelController::contextItem() const { return _contextItem; } QObject *NetworkModelController::receiver() const { return _receiver; } const char *NetworkModelController::method() const { return _method; } - -#endif