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");
session_menu->addAction(connect_action);
session_menu->addAction(disconnect_action);
session_menu->addSeparator();
- //session_menu->addAction(pref_action);
- //session_menu->addSeparator();
+ session_menu->addAction(pref_action);
+ session_menu->addSeparator();
session_menu->addAction(tr("&Quit"), this, SLOT(close()));
QMenu* view_menu = menuBar()->addMenu(tr("&View"));
scroll_area->setWidget(vnc_view);
vnc_view->start();
vnc_view->enableScaling(scaling->isChecked());
+ key_menu = new KeyMenu(this);
}
}
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)));
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()
void MainWindow::showKeyMenu()
{
- static KeyMenu *key_menu = new KeyMenu(this);
key_menu->exec();
-
vnc_view->sendKeySequence(key_menu->getKeySequence());
}
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::ImhNoAutoUppercase); //without this, IM starts with caps lock
QEvent event(QEvent::RequestSoftwareInputPanel);
QApplication::sendEvent(vnc_view, &event);