X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fsettingspages%2Fnetworkssettingspage.h;h=bafc6456be7c55a885b3c435d436cd50cb835cdb;hp=f58d9008d2e1897a199036a7ec55862c03f4e84a;hb=da86ee7178494e6e5404887ddac98d5e107cc747;hpb=c5cbe5eb77fce2ab954a98399a1450803108217b diff --git a/src/qtui/settingspages/networkssettingspage.h b/src/qtui/settingspages/networkssettingspage.h index f58d9008..bafc6456 100644 --- a/src/qtui/settingspages/networkssettingspage.h +++ b/src/qtui/settingspages/networkssettingspage.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-08 by the Quassel IRC Team * + * Copyright (C) 2005-09 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -18,58 +18,148 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#ifndef _NETWORKSSETTINGSPAGE_H_ -#define _NETWORKSSETTINGSPAGE_H_ +#ifndef NETWORKSSETTINGSPAGE_H +#define NETWORKSSETTINGSPAGE_H -#include +#include +#include "network.h" #include "settingspage.h" -#include "ui_networkssettingspage.h" -#include "network.h" -#include "types.h" +#include "ui_networkssettingspage.h" +#include "ui_networkadddlg.h" +#include "ui_networkeditdlg.h" +#include "ui_servereditdlg.h" +#include "ui_saveidentitiesdlg.h" class NetworksSettingsPage : public SettingsPage { Q_OBJECT - public: - NetworksSettingsPage(QWidget *parent = 0); +public: + NetworksSettingsPage(QWidget *parent = 0); + + bool aboutToSave(); + +public slots: + void save(); + void load(); + +private slots: + void widgetHasChanged(); + void setWidgetStates(); + void coreConnectionStateChanged(bool); + void networkConnectionStateChanged(Network::ConnectionState state); + void networkConnectionError(const QString &msg); + + void displayNetwork(NetworkId); + void setItemState(NetworkId, QListWidgetItem *item = 0); + + void clientNetworkAdded(NetworkId); + void clientNetworkRemoved(NetworkId); + void clientNetworkUpdated(); + + void clientIdentityAdded(IdentityId); + void clientIdentityRemoved(IdentityId); + void clientIdentityUpdated(); + + void on_networkList_itemSelectionChanged(); + void on_addNetwork_clicked(); + void on_deleteNetwork_clicked(); + void on_renameNetwork_clicked(); + void on_editIdentities_clicked(); - //bool aboutToSave(); + // void on_connectNow_clicked(); - public slots: - void save(); - void load(); + void on_serverList_itemSelectionChanged(); + void on_addServer_clicked(); + void on_deleteServer_clicked(); + void on_editServer_clicked(); + void on_upServer_clicked(); + void on_downServer_clicked(); + +private: + Ui::NetworksSettingsPage ui; + + NetworkId currentId; + QHash networkInfos; + bool _ignoreWidgetChanges; + + QPixmap connectedIcon, connectingIcon, disconnectedIcon; + + void reset(); + bool testHasChanged(); + QListWidgetItem *insertNetwork(NetworkId); + QListWidgetItem *insertNetwork(const NetworkInfo &info); + QListWidgetItem *networkItem(NetworkId) const; + void saveToNetworkInfo(NetworkInfo &); +}; + + +class NetworkAddDlg : public QDialog { + Q_OBJECT + + public: + NetworkAddDlg(const QStringList &existing = QStringList(), QWidget *parent = 0); + + NetworkInfo networkInfo() const; private slots: - void widgetHasChanged(); - void setWidgetStates(); - void coreConnectionStateChanged(bool); + void setButtonStates(); - void displayNetwork(NetworkId, bool dontsave = false); + private: + Ui::NetworkAddDlg ui; - void clientNetworkAdded(NetworkId); - void clientNetworkUpdated(); + QStringList existing; +}; + + +class NetworkEditDlg : public QDialog { + Q_OBJECT + + public: + NetworkEditDlg(const QString &old, const QStringList &existing = QStringList(), QWidget *parent = 0); - void clientIdentityAdded(IdentityId); - void clientIdentityRemoved(IdentityId); - void clientIdentityUpdated(); + QString networkName() const; - void on_networkList_itemSelectionChanged(); + private slots: + void on_networkEdit_textChanged(const QString &); private: - Ui::NetworksSettingsPage ui; + Ui::NetworkEditDlg ui; + + QStringList existing; +}; + + +class ServerEditDlg : public QDialog { + Q_OBJECT - NetworkId currentId; - QHash networkInfos; +public: + ServerEditDlg(const Network::Server &server = Network::Server(), QWidget *parent = 0); - QIcon connectedIcon, disconnectedIcon; + Network::Server serverData() const; - void reset(); - bool testHasChanged(); - void insertNetwork(NetworkId); - QListWidgetItem *networkItem(NetworkId) const; +private slots: + void on_host_textChanged(); + +private: + Ui::ServerEditDlg ui; +}; + + +class SaveNetworksDlg : public QDialog { + Q_OBJECT + + public: + SaveNetworksDlg(const QList &toCreate, const QList &toUpdate, const QList &toRemove, QWidget *parent = 0); + + private slots: + void clientEvent(); + + private: + Ui::SaveIdentitiesDlg ui; + int numevents, rcvevents; }; #endif