return &(uiInfo->uiState);
}
+ContextMenu *MainWindow::getPopupMenu()
+{
+ return popupMenu;
+}
+
DockingController *MainWindow::getDockingCon()
{
return getUIState()->conState.dockingCon;
captured, pixels, width, height);
if (captured) {
+ qDebug("save captured image : %p", pixels);
+
QImage image = QImage((uchar *)pixels, width, height, QImage::Format_RGB32);
QPixmap pixmap = QPixmap::fromImage(image); /* deep copy the data */
QMetaObject::invokeMethod(popupMenu, "slotShowScreenshot",
- Qt::QueuedConnection,
- Q_ARG(QPixmap, pixmap));
- qDebug("Image saved: %p", pixels);
+ Qt::QueuedConnection, Q_ARG(QPixmap, pixmap));
} else {
- QPixmap pixmap(uiInfo->resolution.width(), uiInfo->resolution.height());
- QMetaObject::invokeMethod(popupMenu, "slotShowScreenshot", Qt::QueuedConnection, Q_ARG(QPixmap, pixmap));
- qDebug("Blank Image saved");
- }
+ qDebug("save blank image");
+ QPixmap pixmap(uiInfo->resolution.width(), uiInfo->resolution.height());
+ QMetaObject::invokeMethod(popupMenu, "slotShowScreenshot",
+ Qt::QueuedConnection, Q_ARG(QPixmap, pixmap));
+ }
}
void MainWindow::setTopMost(bool on)
Screenshot::Screenshot(QWidget *parent, const QPixmap &pixmap) :
QDialog(parent), screenshotPixmap(pixmap)
{
- this->win = (MainWindow *)parent->parent();
+ this->win = (MainWindow *)parent;
- QString vmname = win->uiInfo->vmName + " : "
- + QString::number(get_device_serial_number());
- resize(win->uiInfo->getMainSize());
- setWindowTitle("Screen Shot - " + vmname);
+ setWindowTitle("Screen Shot - " + win->uiInfo->vmName +
+ " : " + QString::number(get_device_serial_number()));
+ setWindowIcon(QIcon(":/icons/screen_shot.png"));
createItems();
toolbar->addAction(saveAct);
toolbar->addAction(copyAct);
toolbar->addAction(refreshAct);
+ toolbar->addSeparator();
toolbar->addWidget(slider);
gridlayout->addWidget(toolbar, 0, 0);
gridlayout->addWidget(view, 1, 0);
gridlayout->addWidget(statusBar, 2, 0);
- this->setLayout(gridlayout);
+ setLayout(gridlayout);
+
+ resize(win->uiInfo->getMainSize());
}
-void Screenshot::copy()
+void Screenshot::slotCopy()
{
- qDebug("copy");
+ qDebug("copy to clipboard");
QClipboard* clipboard = QApplication::clipboard();
QPixmap pixmap(screenshotPixmap);
ratioStr = QString::number(ratio * 100).append("%");
}
-void Screenshot::scaleChanged(int level)
+void Screenshot::slotScaleChanged(int level)
{
qDebug("scale changed: %d", level);
return sliderLevel;
}
-void Screenshot::refresh(const QPixmap &pixmap)
+void Screenshot::slotRefresh(const QPixmap &pixmap)
{
qDebug("refresh");
", " + qPrintable(getRatio()) + ")");
}
-bool Screenshot::save()
+bool Screenshot::slotSave()
{
qDebug("save");
QString vmname = win->uiInfo->vmName;
QDateTime currentDateTime = QDateTime::currentDateTime();
QString date = currentDateTime.toString("yyyy-MM-dd-HHmmss");
- QString defaultFile = QDir::homePath() + QDir::separator() + vmname + "-" + date + ".png";
- QString filterName = "Image files (*.png *.jpg *.jpeg *.bmp)";
- QString filename = QFileDialog::getSaveFileName(this, "Save Image", defaultFile, filterName);
+ QString filePath = QDir::homePath() + QDir::separator() + vmname + "-" + date + ".png";
+ QString filterName = "Image files (*.png *.jpg *.jpeg *.bmp *.ppm *.xbm *.xpm);;"
+ "All files (*.*)";
+ QString filename = QFileDialog::getSaveFileName(this, "Save Image", filePath, filterName);
if (filename.isEmpty()) {
qDebug("can not have file");
QPixmap pixmap(screenshotPixmap);
qDebug() << filename;
pixmap.save(filename);
- return true;
}
+
+ return true;
}
int Screenshot::getRotateAngle()
void Screenshot::createItems()
{
- statusBar = new QStatusBar();
+ statusBar = new QStatusBar(this);
toolbar = new QToolBar(this);
slider = new QSlider(Qt::Horizontal, this);
+ slider->setTickPosition(QSlider::TicksAbove);
slider->setRange(0, 5);
slider->setValue(3);
sliderLevel = 3;
slider->setFixedWidth(100);
slider->setToolTip("100%");
- connect(slider, SIGNAL(valueChanged(int)), this, SLOT(scaleChanged(int)));
+ connect(slider, SIGNAL(valueChanged(int)), this, SLOT(slotScaleChanged(int)));
- gridlayout = new QGridLayout;
+ gridlayout = new QGridLayout(this);
gridlayout->setContentsMargins(0, 0, 0, 0);
saveAct = new QAction(tr("&Save"), this);
saveAct->setShortcuts(QKeySequence::Save);
saveAct->setIcon(QIcon(":/icons/save_screenshot_dialog.png"));
saveAct->setToolTip("Save to file");
- connect(saveAct, SIGNAL(triggered()), this, SLOT(save()));
+ connect(saveAct, SIGNAL(triggered()), this, SLOT(slotSave()));
copyAct = new QAction(tr("&Copy"), this);
copyAct->setShortcuts(QKeySequence::Copy);
copyAct->setIcon(QIcon(":/icons/copy_screenshot_dialog.png"));
copyAct->setToolTip("Copy to clipboard");
- connect(copyAct, SIGNAL(triggered()), this, SLOT(copy()));
+ connect(copyAct, SIGNAL(triggered()), this, SLOT(slotCopy()));
refreshAct = new QAction(tr("&Refresh"), this);
refreshAct->setShortcuts(QKeySequence::Refresh);
refreshAct->setIcon(QIcon(":/icons/refresh_screenshot_dialog.png"));
refreshAct->setToolTip("Refresh Image");
- connect(refreshAct, SIGNAL(triggered()), this->parent(),
- SLOT(slotRequestScreenshot()));
+ connect(refreshAct, SIGNAL(triggered()),
+ win->getPopupMenu(), SLOT(slotRequestScreenshot()));
}
void Screenshot::setImage()
Q_UNUSED(event)
// TODO:
- QWidget *win = ((QWidget *) this->parent());
move(win->geometry().center().x(),
- win->geometry().center().y() - (geometry().size().height() / 2));
+ win->geometry().center().y() - (geometry().size().height() / 2));
}
Screenshot::~Screenshot()
{
- qDebug("distructor");
+ qDebug("destroy screenshot dialog");
- ((ContextMenu *)this->parent())->screenshotDialog = NULL;
+ win->getPopupMenu()->screenshotDialog = NULL;
}