switch(socketState) {
case QAbstractSocket::UnconnectedState:
- text = tr("Disconnected.");
+ text = tr("Disconnected");
break;
case QAbstractSocket::HostLookupState:
text = tr("Looking up %1...").arg(currentAccount().hostName());
text = tr("Connecting to %1...").arg(currentAccount().hostName());
break;
case QAbstractSocket::ConnectedState:
- text = tr("Connected to %1.").arg(currentAccount().hostName());
+ text = tr("Connected to %1").arg(currentAccount().hostName());
break;
case QAbstractSocket::ClosingState:
text = tr("Disconnecting from %1...").arg(currentAccount().hostName());
QVariantMap msg = item.toMap();
if(!msg.contains("MsgType")) {
// This core is way too old and does not even speak our init protocol...
- emit connectionError(tr("The Quassel Core you try to connect to is too old! Please consider upgrading."));
+ emit connectionErrorPopup(tr("The Quassel Core you try to connect to is too old! Please consider upgrading."));
disconnectFromCore();
return;
}
if(msg["MsgType"] == "ClientInitAck") {
clientInitAck(msg);
} else if(msg["MsgType"] == "ClientInitReject") {
- emit connectionError(msg["Error"].toString());
+ emit connectionErrorPopup(msg["Error"].toString());
disconnectFromCore();
return;
} else if(msg["MsgType"] == "CoreSetupAck") {
sessionStateReceived(msg["SessionState"].toMap());
break; // this is definitively the last message we process here!
} else {
- emit connectionError(tr("Invalid data received from core, disconnecting."));
- disconnectFromCore();
+ disconnectFromCore(tr("Invalid data received from core"));
return;
}
}
}
}
-void CoreConnection::disconnectFromCore() {
+void CoreConnection::disconnectFromCore(const QString &errorString) {
+ if(errorString.isEmpty())
+ emit connectionError(tr("Disconnected"));
+ else
+ emit connectionError(errorString);
+
Client::signalProxy()->removeAllPeers();
resetConnection();
}
// Core has accepted our version info and sent its own. Let's see if we accept it as well...
uint ver = msg["ProtocolVersion"].toUInt();
if(ver < Quassel::buildInfo().clientNeedsProtocol) {
- emit connectionError(tr("<b>The Quassel Core you are trying to connect to is too old!</b><br>"
+ emit connectionErrorPopup(tr("<b>The Quassel Core you are trying to connect to is too old!</b><br>"
"Need at least core/client protocol v%1 to connect.").arg(Quassel::buildInfo().clientNeedsProtocol));
disconnectFromCore();
return;
bool accepted = false;
emit handleNoSslInCore(&accepted);
if(!accepted) {
- emit connectionError(tr("Unencrypted connection canceled"));
- disconnectFromCore();
+ disconnectFromCore(tr("Unencrypted connection canceled"));
return;
}
s.setAccountValue("ShowNoCoreSslWarning", false);
emit handleSslErrors(socket, &accepted, &permanently);
if(!accepted) {
- emit connectionError(tr("Unencrypted connection canceled"));
- disconnectFromCore();
+ disconnectFromCore(tr("Unencrypted connection canceled"));
return;
}
bool valid = false;
emit userAuthenticationRequired(&_account, &valid, prevError); // *must* be a synchronous call
if(!valid || currentAccount().user().isEmpty() || currentAccount().password().isEmpty()) {
- disconnectFromCore();
- emit connectionError(tr("Login canceled"));
+ disconnectFromCore(tr("Login canceled"));
return;
}
}
SLOT(messagesInserted(const QModelIndex &, int, int)));
connect(GraphicalUi::contextMenuActionProvider(), SIGNAL(showChannelList(NetworkId)), SLOT(showChannelList(NetworkId)));
connect(GraphicalUi::contextMenuActionProvider(), SIGNAL(showIgnoreList(QString)), SLOT(showIgnoreList(QString)));
+ connect(Client::coreConnection(), SIGNAL(connectionErrorPopup(QString)), SLOT(handleCoreConnectionError(QString)));
connect(Client::coreConnection(), SIGNAL(userAuthenticationRequired(CoreAccount *, bool *, QString)), SLOT(userAuthenticationRequired(CoreAccount *, bool *, QString)));
connect(Client::coreConnection(), SIGNAL(handleNoSslInClient(bool*)), SLOT(handleNoSslInClient(bool *)));
connect(Client::coreConnection(), SIGNAL(handleNoSslInCore(bool*)), SLOT(handleNoSslInCore(bool *)));
systemTray()->setState(SystemTray::Inactive);
}
-void MainWin::startInternalCore() {
-
-}
-
void MainWin::userAuthenticationRequired(CoreAccount *account, bool *valid, const QString &errorMessage) {
Q_UNUSED(errorMessage)
CoreConnectAuthDlg dlg(account, this);
#endif /* HAVE_SSL */
+void MainWin::handleCoreConnectionError(const QString &error) {
+ QMessageBox::critical(this, tr("Core Connection Error"), error, QMessageBox::Ok);
+}
+
void MainWin::showCoreConnectionDlg() {
CoreConnectDlg dlg(this);
if(dlg.exec() == QDialog::Accepted) {