* Add --viewonly, --listen and --help command line options
* Use less CPU when display is off
* Improve performance of partial repaints, scrolling more fluent
+ * Show more detailed error messages in UI
-- Christian Pulvermacher <pulvermacher@gmx.de> Thu, 28 Oct 2010 19:48:01 +0200
connect(vnc_view, SIGNAL(statusChanged(RemoteView::RemoteStatus)),
this, SLOT(statusChanged(RemoteView::RemoteStatus)));
+ connect(vnc_view, SIGNAL(errorMessage(QString, QString)),
+ scroll_area, SLOT(showMessage(QString, QString)));
scroll_area->setWidget(vnc_view);
vnc_view->start();
setWindowTitle(QString("Presence VNC - %1").arg(vnc_view->host()) + (view_only?tr(" [View Only]"):""));
//fixes tearing during scrolling and can display messages
class ScrollArea : public QScrollArea
{
+ Q_OBJECT
public:
explicit ScrollArea(QWidget *parent):
- QScrollArea(parent) {
- message.setParent(this);
+ QScrollArea(parent),
+ message(this)
+ {
message.setVisible(false);
message.setAlignment(Qt::AlignCenter);
message.setWordWrap(true);
#endif
}
+public slots:
void showMessage(const QString &s) {
message.setText(s);
message.show();
message_timer.start();
}
+
+ //provided for convenience
+ void showMessage(QString /*title*/, QString msg) { showMessage(msg); }
protected:
virtual void resizeEvent(QResizeEvent* ev) {
QScrollArea::resizeEvent(ev);
if ((message.contains("Couldn't convert ")) ||
(message.contains("Unable to connect to VNC server")))
outputErrorMessageString = i18n("Server not found.");
-
- if ((message.contains("VNC connection failed: Authentication failed, too many tries")) ||
+ else if ((message.contains("VNC connection failed: Authentication failed, too many tries")) ||
(message.contains("VNC connection failed: Too many authentication failures")))
outputErrorMessageString = i18n("VNC authentication failed because of too many authentication tries.");
-
- if (message.contains("VNC connection failed: Authentication failed"))
+ else if (message.contains("VNC connection failed: Authentication failed"))
outputErrorMessageString = i18n("VNC authentication failed.");
-
- if (message.contains("VNC server closed connection"))
+ else if (message.contains("VNC server closed connection"))
outputErrorMessageString = i18n("VNC server closed connection.");
-
- // internal messages, not displayed to user
- if (message.contains("VNC server supports protocol version 3.889")) // see http://bugs.kde.org/162640
- outputErrorMessageString = "INTERNAL:APPLE_VNC_COMPATIBILTY";
+ else if (message.contains("VNC server supports protocol version 3.889")) // see http://bugs.kde.org/162640
+ outputErrorMessageString = "INTERNAL:APPLE_VNC_COMPATIBILTY"; // internal messages, not displayed to user
}
VncClientThread::VncClientThread(QObject *parent)
void VncClientThread::checkOutputErrorMessage()
{
if (!outputErrorMessageString.isEmpty()) {
- kDebug(5011) << outputErrorMessageString;
QString errorMessage = outputErrorMessageString;
outputErrorMessageString.clear();
// show authentication failure error only after the 3rd unsuccessful try
if ((errorMessage != i18n("VNC authentication failed.")) || m_passwordError)
- outputErrorMessage(errorMessage);
+ emit outputErrorMessage(errorMessage);
}
}