/***************************************************************************
- * Copyright (C) 2005-2020 by the Quassel Project *
+ * Copyright (C) 2005-2022 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
#include "network.h"
#include "settingspage.h"
+#include "ui_capseditdlg.h"
#include "ui_networkadddlg.h"
#include "ui_networkeditdlg.h"
#include "ui_networkssettingspage.h"
*/
void on_saslStatusDetails_clicked();
+ /**
+ * Event handler for Features status Details button
+ */
+ void on_enableCapsStatusDetails_clicked();
+
+ /**
+ * Event handler for Features Advanced edit button
+ */
+ void on_enableCapsAdvanced_clicked();
+
private:
/**
* Status of capability support
QIcon connectedIcon, connectingIcon, disconnectedIcon;
// Status icons
- QIcon successIcon, unavailableIcon, questionIcon;
+ QIcon infoIcon, successIcon, unavailableIcon, questionIcon;
- CapSupportStatus _saslStatusSelected; /// Status of SASL support for currently-selected network
+ CapSupportStatus _capSaslStatusSelected; ///< Status of SASL support for selected network
+ bool _capSaslStatusUsingExternal{false}; ///< Whether SASL support status is for SASL EXTERNAL
void reset();
bool testHasChanged();
void saveToNetworkInfo(NetworkInfo&);
IdentityId defaultIdentity() const;
+ /**
+ * Get whether or not the displayed network's identity has SSL certs associated with it
+ *
+ * @return True if the currently displayed network has SSL certs set, otherwise false
+ */
+ bool displayedNetworkHasCertId() const;
+
/**
* Update the SASL settings interface according to the given SASL state
*
- * @param[in] saslStatus Current status of SASL support.
+ * @param saslStatus Current status of SASL support.
+ * @param usingSASLExternal If true, SASL support status is for SASL EXTERNAL, else SASL PLAIN
*/
- void setSASLStatus(const CapSupportStatus saslStatus);
+ void setCapSASLStatus(const CapSupportStatus saslStatus, bool usingSASLExternal = false);
};
class NetworkAddDlg : public QDialog
Ui::ServerEditDlg ui;
};
+class CapsEditDlg : public QDialog
+{
+ Q_OBJECT
+
+public:
+ CapsEditDlg(const QString& oldSkipCapsString, QWidget* parent = nullptr);
+
+ QString skipCapsString() const;
+
+private slots:
+ void defaultSkipCaps();
+ void on_skipCapsEdit_textChanged(const QString&);
+
+private:
+ Ui::CapsEditDlg ui;
+
+ QString oldSkipCapsString;
+};
+
class SaveNetworksDlg : public QDialog
{
Q_OBJECT