vnc_view->start();
key_menu = new KeyMenu(this);
}
+
+ //QTimer::singleShot(500, this, SLOT(close()));
}
void MainWindow::grabZoomKeys(bool grab)
#ifdef Q_WS_MAEMO_5
setAttribute(Qt::WA_Maemo5ShowProgressIndicator, false);
#endif
- /* TODO: still needed?
- if(!scaling->isChecked()) {
- //ugly hack to force a refresh (forceFullRepaint() doesn't repaint?? -> vnc_view hidden???)
- vnc_view->resize(scroll_area->size());
- vnc_view->enableScaling(false);
- }
- */
+ vnc_view->setZoomLevel(zoom_slider->value());
+ vnc_view->forceFullRepaint();
break;
case RemoteView::Disconnecting:
if(old_status != RemoteView::Disconnected) { //Disconnecting also occurs while connecting, so check last state
VncClientThread *t = (VncClientThread*)rfbClientGetClientData(cl, 0);
Q_ASSERT(t);
+ if (t->m_stopped)
+ return; //sending data to a stopped thread is not a good idea
+
t->setImage(img);
t->emitUpdated(x, y, w, h);
void VncClientThread::cuttext(rfbClient* cl, const char *text, int textlen)
{
const QString cutText = QString::fromUtf8(text, textlen);
- kDebug(5011) << cutText;
+ kDebug(5011) << "cuttext: " << cutText;
if (!cutText.isEmpty()) {
VncClientThread *t = (VncClientThread*)rfbClientGetClientData(cl, 0);
return size();
}
-void VncView::scaleResize(int w, int h)
-{
- RemoteView::scaleResize(w, h);
-
- kDebug(5011) << "scaleResize(): " <<w << h;
- if (m_scale) {
- m_verticalFactor = (qreal) h / m_frame.height();
- m_horizontalFactor = (qreal) w / m_frame.width();
-
- m_verticalFactor = m_horizontalFactor = qMin(m_verticalFactor, m_horizontalFactor);
-
- const qreal newW = m_frame.width() * m_horizontalFactor;
- const qreal newH = m_frame.height() * m_verticalFactor;
- /*
- setMaximumSize(newW, newH); //This is a hack to force Qt to center the view in the scroll area
- //also causes the widget's size to flicker
- */
- resize(newW, newH);
- }
-}
-
-
void VncView::startQuitting()
{
kDebug(5011) << "about to quit";
// emit framebufferSizeChanged(m_frame.width(), m_frame.height());
emit connected();
- if (m_scale) {
- if (parentWidget())
- scaleResize(parentWidget()->width(), parentWidget()->height());
- else
- scaleResize(width(), height());
- }
+ resize(width(), height());
m_initDone = true;
if ((y == 0 && x == 0) && (m_frame.size() != old_frame_size)) {
old_frame_size = m_frame.size();
kDebug(5011) << "Updating framebuffer size";
- if (m_scale) {
- //setMaximumSize(QSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX));
- if (parentWidget())
- scaleResize(parentWidget()->width(), parentWidget()->height());
- } else {
- kDebug(5011) << "Resizing: " << m_frame.width() << m_frame.height();
- resize(m_frame.width(), m_frame.height());
- //setMaximumSize(m_frame.width(), m_frame.height()); //This is a hack to force Qt to center the view in the scroll area
- //setMinimumSize(m_frame.width(), m_frame.height());
- }
+ setZoomLevel();
emit framebufferSizeChanged(m_frame.width(), m_frame.height());
}
{
Q_ASSERT(parentWidget() != 0);
+ if(level == -1) { //handle resize
+ resize(m_frame.width()*m_horizontalFactor, m_frame.height()*m_verticalFactor);
+ return;
+ }
double factor; //actual magnification
if(level > 95) {
kDebug(5011) << "remote display smaller than local?";
factor = 1.0;
}
+ if(factor != factor) //nan
+ factor = 1.0;
+
+ kDebug(5011) << "factor" << factor;
m_verticalFactor = m_horizontalFactor = factor;
resize(m_frame.width()*factor, m_frame.height()*factor);
void VncView::resizeEvent(QResizeEvent *event)
{
RemoteView::resizeEvent(event);
- /*
- scaleResize(event->size().width(), event->size().height());
- forceFullRepaint();
- */
}
bool VncView::event(QEvent *event)