release 0.5
[presencevnc] / src / mainwindow.cpp
index 2f6a7c3..dbe099f 100644 (file)
@@ -35,7 +35,8 @@
 MainWindow::MainWindow(QString url, int quality):
        QMainWindow(0),
        vnc_view(0),
-       scroll_area(new ScrollArea(0))
+       scroll_area(new ScrollArea(0)),
+       key_menu(0)
 {
        setWindowTitle("Presence VNC");
 
@@ -135,6 +136,7 @@ MainWindow::MainWindow(QString url, int quality):
                scroll_area->setWidget(vnc_view);
                vnc_view->start();
                vnc_view->enableScaling(scaling->isChecked());
+               key_menu = new KeyMenu(this);
        }
 }
 
@@ -179,16 +181,16 @@ void MainWindow::about() {
 void MainWindow::showConnectDialog()
 {
        ConnectDialog *connect_dialog = new ConnectDialog(this);
-       connect(connect_dialog, SIGNAL(connectToHost(QString)),
-               this, SLOT(connectToHost(QString)));
+       connect(connect_dialog, SIGNAL(connectToHost(QString, int)),
+               this, SLOT(connectToHost(QString, int)));
        connect_dialog->exec();
 }
 
-void MainWindow::connectToHost(QString url)
+void MainWindow::connectToHost(QString url, int quality)
 {
        disconnectFromHost();
 
-       vnc_view = new VncView(this, url, RemoteView::Quality(2));
+       vnc_view = new VncView(this, url, RemoteView::Quality(quality));
 
        connect(scaling, SIGNAL(toggled(bool)),
                vnc_view, SLOT(enableScaling(bool)));
@@ -199,6 +201,10 @@ void MainWindow::connectToHost(QString url)
        vnc_view->enableScaling(scaling->isChecked());
        disconnect_action->setEnabled(true);
        toolbar->setEnabled(true);
+
+       if(key_menu) //reset
+               delete key_menu;
+       key_menu = new KeyMenu(this);
 }
 
 void MainWindow::disconnectFromHost()
@@ -297,9 +303,7 @@ void MainWindow::toggleFullscreen()
 
 void MainWindow::showKeyMenu()
 {
-       static KeyMenu *key_menu = new KeyMenu(this);
        key_menu->exec();
-
        vnc_view->sendKeySequence(key_menu->getKeySequence());
 }
 
@@ -338,7 +342,7 @@ void MainWindow::showInputPanel()
 #ifdef Q_WS_MAEMO_5
        //TODO: when hardware keyboard is open, this will only cause the IM to mess up 'real' key events
        vnc_view->setAttribute(Qt::WA_InputMethodEnabled, true);
-       vnc_view->setInputMethodHints(Qt::ImhPreferLowercase); //without this, IM starts with caps lock
+       vnc_view->setInputMethodHints(Qt::ImhNoAutoUppercase); //without this, IM starts with caps lock
 
        QEvent event(QEvent::RequestSoftwareInputPanel);
        QApplication::sendEvent(vnc_view, &event);