#ifndef NETWORKMODELCONTROLLER_H_
#define NETWORKMODELCONTROLLER_H_
+#include <QDialog>
+
#include "action.h"
#include "actioncollection.h"
#include "messagefilter.h"
+class QComboBox;
+class QDialogButtonBox;
+class QLineEdit;
+
class NetworkModelController : public QObject {
Q_OBJECT
NetworkMask = 0x0f,
NetworkConnect = 0x01,
NetworkDisconnect = 0x02,
+ NetworkConnectAll = 0x03,
+ NetworkDisconnectAll = 0x04,
// Buffer actions
BufferMask = 0xf0,
HideNick = 0x0400,
HideMode = 0x0500,
HideDayChange = 0x0600,
+ HideTopic = 0x0700,
HideUseDefaults = 0xe00,
HideApplyToAll = 0xf00,
NickKick = 0x0c0000,
NickBan = 0x0d0000,
NickKickBan = 0x0e0000,
+ NickIgnoreUser = 0x0f0000,
+ NickIgnoreHost = 0x100000,
+ NickIgnoreDomain = 0x200000,
+ NickIgnoreCustom = 0x300000,
+ // The next 5 types have stay together
+ // Don't change without reading ContextMenuActionProvider::addIgnoreMenu!
+ NickIgnoreToggleEnabled0 = 0x400000,
+ NickIgnoreToggleEnabled1 = 0x500000,
+ NickIgnoreToggleEnabled2 = 0x600000,
+ NickIgnoreToggleEnabled3 = 0x700000,
+ NickIgnoreToggleEnabled4 = 0x800000,
// Actions that are handled externally
// These emit a signal to the action requester, rather than being handled here
void setContextItem(const QString &);
void setSlot(QObject *receiver, const char *method);
- void registerAction(ActionType type, const QString &text, bool checkable = false);
- void registerAction(ActionType type, const QPixmap &icon, const QString &text, bool checkable = false);
+ Action * registerAction(ActionType type, const QString &text, bool checkable = false);
+ Action * registerAction(ActionType type, const QPixmap &icon, const QString &text, bool checkable = false);
bool checkRequirements(const QModelIndex &index, ItemActiveStates requiredActiveState = QFlags<ItemActiveState>(ActiveState | InactiveState));
QString nickName(const QModelIndex &index) const;
signals:
void showChannelList(NetworkId);
- void showIgnoreList(NetworkId);
+ void showIgnoreList(QString);
-private:
- void handleNetworkAction(ActionType, QAction *);
- void handleBufferAction(ActionType, QAction *);
- void handleHideAction(ActionType, QAction *);
- void handleNickAction(ActionType, QAction *);
- void handleGeneralAction(ActionType, QAction *);
- void handleExternalAction(ActionType, QAction *);
+protected:
+ virtual void handleNetworkAction(ActionType, QAction *);
+ virtual void handleBufferAction(ActionType, QAction *);
+ virtual void handleHideAction(ActionType, QAction *);
+ virtual void handleNickAction(ActionType, QAction *action);
+ virtual void handleGeneralAction(ActionType, QAction *);
+ virtual void handleExternalAction(ActionType, QAction *);
+ class JoinDlg;
+
+private:
NetworkModel *_model;
ActionCollection *_actionCollection;
const char *_method;
};
+//! Input dialog for joining a channel
+class NetworkModelController::JoinDlg : public QDialog {
+ Q_OBJECT
+
+public:
+ JoinDlg(const QModelIndex &index, QWidget *parent = 0);
+
+ QString channelName() const;
+ QString channelPassword() const;
+ NetworkId networkId() const;
+
+private slots:
+ void on_channel_textChanged(const QString &);
+
+private:
+ QComboBox *networks;
+ QLineEdit *channel;
+ QLineEdit *password;
+ QDialogButtonBox *buttonBox;
+};
+
+
// inlines
ActionCollection *NetworkModelController::actionCollection() const { return _actionCollection; }
Action *NetworkModelController::action(ActionType type) const { return _actionByType.value(type, 0); }