#include <QtGui>
-#ifdef Q_WS_MAEMO_5
-#include <QMaemo5ValueButton>
-#include <QMaemo5ListPickSelector>
-#endif
-
const QString LISTEN_FOR_INCOMING_CONNECTIONS_STRING = QObject::tr("Listen for incoming connections");
ConnectDialog::ConnectDialog(QWidget *parent):
- QDialog(parent),
- done(new QPushButton)
+ QDialog(parent)
{
setWindowTitle(tr("Connect to VNC Server"));
QSettings settings;
hostnames_sorted = hosts_map.values(); //sorted by ascending position
settings.endGroup();
+ QHBoxLayout *layout = new QHBoxLayout(this);
+ QGridLayout *grid_layout = new QGridLayout();
+ layout->addLayout(grid_layout);
+
//set up combobox
hosts.addItems(hostnames_sorted);
hosts.insertSeparator(hosts.count());
#endif
connect(&hosts, SIGNAL(editTextChanged(QString)),
this, SLOT(hostnameUpdated(QString)));
- layout.addWidget(&hosts);
+ grid_layout->addWidget(&hosts, 0, 0, 1, 2);
-#ifdef Q_WS_MAEMO_5
- QMaemo5ValueButton *quality = new QMaemo5ValueButton(tr("Quality"), this);
- quality_selector = new QMaemo5ListPickSelector(this);
- QStandardItemModel *model = new QStandardItemModel(0, 1, this);
- model->appendRow(new QStandardItem(tr("High\t\t(LAN)"))); //1
- model->appendRow(new QStandardItem(tr("Medium\t(DSL)"))); //2
- model->appendRow(new QStandardItem(tr("Low\t\t(ISDN)"))); //3
- quality_selector->setModel(model);
- quality->setPickSelector(quality_selector);
- quality->setValueLayout(QMaemo5ValueButton::ValueUnderText);
- quality->setMaximumWidth(120);
- layout.addWidget(quality);
-#else
+ grid_layout->addWidget(new QLabel(tr("Quality")), 1, 0);
//combobox numbering starts from 0, so currentIndex() == quality-1
- quality_combobox.addItem(tr("High quality (LAN)")); //1
- quality_combobox.addItem(tr("Medium quality (DSL)")); //2
- quality_combobox.addItem(tr("Low quality (ISDN)")); //3
- //quality_combobox.setMaximumWidth(120);
- layout.addWidget(&quality_combobox);
-#endif
-
- hostnameUpdated(hosts.lineEdit()->text()); //get saved quality for last host, or 2
-
- done->setText(tr("Connect"));
- done->setMaximumWidth(110);
- connect(done, SIGNAL(clicked()),
+ quality_combobox.addItem(tr("High (LAN)")); //1
+ quality_combobox.addItem(tr("Medium (DSL)")); //2
+ quality_combobox.addItem(tr("Low (ISDN)")); //3
+ grid_layout->addWidget(&quality_combobox, 1, 1);
+
+ viewonly.setText(tr("View only"));
+ grid_layout->addWidget(&viewonly, 2, 0, 1, 2);
+
+ done.setMaximumWidth(110);
+ connect(&done, SIGNAL(clicked()),
this, SLOT(accept()));
- layout.addWidget(done);
+ layout->addWidget(&done);
- setLayout(&layout);
+ //get settings for last host
+ hostnameUpdated(hosts.lineEdit()->text());
connect(this, SIGNAL(finished(int)),
this, SLOT(deleteLater()));
const int cursorpos = hosts.lineEdit()->cursorPosition();
const bool normal_entry = hosts.itemIcon(hosts.currentIndex()).isNull();
- done->setText(normal_entry ? tr("Connect") : tr("Listen"));
+ done.setText(normal_entry ? tr("Connect") : tr("Listen"));
//unselect 'listen ...' entry if edited
if(!normal_entry) {
int quality = settings.value(QString("hosts/%1/quality").arg(hosts.lineEdit()->text()), 2).toInt();
if(quality < 1 or quality > 3)
quality = 2;
-#ifdef Q_WS_MAEMO_5
- quality_selector->setCurrentIndex(quality-1);
-#else
quality_combobox.setCurrentIndex(quality-1);
-#endif
+
+ //saved viewonly setting?
+ viewonly.setChecked(settings.value(QString("hosts/%1/viewonly").arg(hosts.lineEdit()->text()), false).toBool());
}
void ConnectDialog::accept()
return;
}
-#ifdef Q_WS_MAEMO_5
- int quality = quality_selector->currentIndex() + 1;
-#else
int quality = quality_combobox.currentIndex() + 1;
-#endif
QSettings settings;
if(!hosts.itemIcon(hosts.currentIndex()).isNull()) {
#endif
if(ok) {
settings.setValue("listen_port", listen_port);
- emit connectToHost("", quality, listen_port);
+ emit connectToHost("", quality, listen_port, viewonly.isChecked());
}
return;
}
settings.setValue(QString("%1/position").arg(hostnames_sorted.at(i)), i+1);
}
-#ifdef Q_WS_MAEMO_5
settings.setValue(QString("%1/quality").arg(selected_host), quality);
-#endif
+ settings.setValue(QString("%1/viewonly").arg(selected_host), viewonly.isChecked());
settings.endGroup();
settings.sync();
- emit connectToHost(QString("vnc://%1").arg(selected_host), quality, 0);
+ emit connectToHost(QString("vnc://%1").arg(selected_host), quality, 0, viewonly.isChecked());
}
void MainWindow::showConnectDialog()
{
ConnectDialog *connect_dialog = new ConnectDialog(this);
- connect(connect_dialog, SIGNAL(connectToHost(QString, int, int)),
- this, SLOT(connectToHost(QString, int, int)));
+ connect(connect_dialog, SIGNAL(connectToHost(QString, int, int, bool)),
+ this, SLOT(connectToHost(QString, int, int, bool)));
connect_dialog->exec();
}
-void MainWindow::connectToHost(QString url, int quality, int listen_port)
+void MainWindow::connectToHost(QString url, int quality, int listen_port, bool view_only)
{
disconnectFromHost();
vnc_view = new VncView(this, url, RemoteView::Quality(quality), listen_port);
+ vnc_view->setViewOnly(view_only);
connect(vnc_view, SIGNAL(statusChanged(RemoteView::RemoteStatus)),
this, SLOT(statusChanged(RemoteView::RemoteStatus)));