screenshot: Remove 800% scaled 54/29954/1
authorMunkyu Im <munkyu.im@samsung.com>
Mon, 27 Oct 2014 05:46:28 +0000 (14:46 +0900)
committerMunkyu Im <munkyu.im@samsung.com>
Thu, 6 Nov 2014 05:42:35 +0000 (14:42 +0900)
pixmap bytes must be less than INT_MAX
This could make overflow on 32bit OS.
Also 800% scaled pixmap data are heavy to load.

Change-Id: Ib003299b167e73366495cdf728c25bd1b5f553f1
Signed-off-by: Munkyu Im <munkyu.im@samsung.com>
tizen/src/ui/menu/screenshot.cpp
tizen/src/ui/menu/screenshot.h
tizen/src/ui/menu/screenshotview.cpp
tizen/src/ui/menu/screenshotview.h

index 0283e9b3a99e2c8fbd02c4e62f36e6278c37e31b..dbefa431ffce925e3326ab0aa1abde2032d3cb04 100644 (file)
@@ -36,9 +36,6 @@ void Screenshot::setRatio(int level) {
     case 5:
         ratio = 4;
         break;
-    case 6:
-        ratio = 8;
-        break;
     }
     ratioStr = QString::number(ratio * 100).append("%");
 }
@@ -47,11 +44,12 @@ void Screenshot::scaleChanged(int level) {
     qDebug("scale changed: %d", level);
     sliderLevel = level;
     QPixmap pixmap(screenshotPixmap);
-
     setRatio(level);
     scene->clear();
     scene->addPixmap(pixmap.scaled(pixmap.size() * ratio, Qt::KeepAspectRatio, Qt::FastTransformation));
     slider->setToolTip(ratioStr);
+
+    updateStatusBar();
 }
 
 int Screenshot::getSliderLevel() {
@@ -63,8 +61,6 @@ void Screenshot::refresh(const QPixmap &pixmap) {
 
     screenshotPixmap = pixmap;
 
-    ((ScreenshotView*)view)->setWidthHeight(screenshotPixmap.width(),
-        screenshotPixmap.height());
     ratioStr = "100%";
     slider->setValue(3);
     scene->clear();
@@ -73,8 +69,19 @@ void Screenshot::refresh(const QPixmap &pixmap) {
 
 }
 
-void Screenshot::setStatusBar(QString messsage) {
-    statusBar->showMessage(messsage);
+void Screenshot::setStatusBar(qreal posX, qreal posY) {
+    this->posX = QString::number(posX);
+    this->posY = QString::number(posY);
+
+    statusBar->showMessage("x: " + this->posX + ", y:" + this->posY
+                           + " (Resolution: " +  QString::number(screenshotPixmap.width()) + "x" + QString::number(screenshotPixmap.height())
+                           + ", " + qPrintable(getRatio()) + ")");
+}
+
+void Screenshot::updateStatusBar() {
+    statusBar->showMessage("x: " + this->posX + ", y:" + this->posY
+                           + " (Resolution: " +  QString::number(screenshotPixmap.width()) + "x" + QString::number(screenshotPixmap.height())
+                           + ", " + qPrintable(getRatio()) + ")");
 }
 
 bool Screenshot::save() {
@@ -101,7 +108,7 @@ void Screenshot::makeWidgets() {
     toolbar = new QToolBar(this);
 
     slider = new QSlider(Qt::Horizontal, this);
-    slider->setRange(0, 6);
+    slider->setRange(0, 5);
     slider->setValue(3);
     slider->setFixedWidth(100);
     slider->setToolTip("100%");
@@ -138,39 +145,39 @@ void Screenshot::setImage() {
 
     view = new ScreenshotView(scene, this);
     ratioStr = "100%";
-    ((ScreenshotView*) view)->setWidthHeight(screenshotPixmap.width(),
-        screenshotPixmap.height());
     view->setScene(scene);
     view->setMouseTracking(true);
 
     QScrollArea* area = new QScrollArea(this);
     area->setFixedSize(screenshotPixmap.width(), screenshotPixmap.height());
     view->setCornerWidget(area);
+    view->verticalScrollBar()->setValue(1);
+    view->horizontalScrollBar()->setValue(1);
 }
 
 Screenshot::Screenshot(QWidget *parent, const QPixmap &pixmap) :
     QDialog(parent), screenshotPixmap(pixmap) {
-        QString vmname = ((MainWindow *) parent->parent())->uiInfo->vmName + " : "
-            + QString::number(get_device_serial_number());
-        MainWindow *mainWindow = (MainWindow *) parent->parent();
-        this->resize(mainWindow->uiInfo->getMainSize());
-        setWindowTitle("Screen Shot - " + vmname);
+    QString vmname = ((MainWindow *) parent->parent())->uiInfo->vmName + " : "
+        + QString::number(get_device_serial_number());
+    MainWindow *mainWindow = (MainWindow *) parent->parent();
+    this->resize(mainWindow->uiInfo->getMainSize());
+    setWindowTitle("Screen Shot - " + vmname);
 
-        makeWidgets();
+    makeWidgets();
 
-        setImage();
+    setImage();
 
-        statusBar = new QStatusBar;
+    statusBar = new QStatusBar;
 
-        toolbar->addAction(saveAct);
-        toolbar->addAction(copyAct);
-        toolbar->addAction(refreshAct);
-        toolbar->addWidget(slider);
-        gridlayout->addWidget(toolbar, 0, 0);
-        gridlayout->addWidget(view, 1, 0);
-        gridlayout->addWidget(statusBar, 2, 0);
+    toolbar->addAction(saveAct);
+    toolbar->addAction(copyAct);
+    toolbar->addAction(refreshAct);
+    toolbar->addWidget(slider);
+    gridlayout->addWidget(toolbar, 0, 0);
+    gridlayout->addWidget(view, 1, 0);
+    gridlayout->addWidget(statusBar, 2, 0);
 
-        this->setLayout(gridlayout);
+    this->setLayout(gridlayout);
 }
 
 void Screenshot::showEvent(QShowEvent *event) {
index 50d540d8f0310f0c8de1e05ba572c69d0dedb050..1fd8288ced1f4411f1e0fd169516889b299bf45b 100644 (file)
@@ -9,7 +9,7 @@ Q_OBJECT
 public:
     explicit Screenshot(QWidget *me, const QPixmap &screenshot);
     ~Screenshot();
-    void setStatusBar(QString message);
+    void setStatusBar(qreal posX, qreal poxY);
     int getSliderLevel();
     QString getRatio();
 
@@ -29,7 +29,11 @@ private:
     void makeWidgets();
     void setImage();
     void setRatio(int level);
+    void updateStatusBar();
 
+
+    QString posX;
+    QString posY;
     QGridLayout *gridlayout;
     QPixmap pixmap;
     QGraphicsView* view;
index 95400516bf8904d783e85256df93bfcb6b03e615..a0605c03032aa3cd2b6dcde1a4aa021c500cf94f 100644 (file)
@@ -3,13 +3,6 @@
 
 ScreenshotView::ScreenshotView(QGraphicsScene *scene, QWidget* parent) :
         QGraphicsView(scene, parent) {
-    width = 0;
-    height = 0;
-}
-
-void ScreenshotView::setWidthHeight(int width, int height) {
-    this->width = width;
-    this->height = height;
 }
 
 void ScreenshotView::mouseMoveEvent(QMouseEvent *event) {
@@ -18,9 +11,7 @@ void ScreenshotView::mouseMoveEvent(QMouseEvent *event) {
         QPixmap pixmap = QPixmap();
         //QRgb rgbval = pixmap.toImage().pixel(fixedPos.x(), fixedPos.y());
         Screenshot *screenshot = ((Screenshot *) this->parent());
-        screenshot->setStatusBar("x: " + QString::number(fixedPos.x()) + ", y:" + QString::number(fixedPos.y())
-                                + " (Resolution: " +  QString::number(width) + "x" + QString::number(height)
-                                + ", " + qPrintable(screenshot->getRatio()) + ")");
+        screenshot->setStatusBar(fixedPos.x(), fixedPos.y());
     }
 }
 
index ffb06fd684172f8241376a37430ef9a6a5381c51..2872ddcaea18f36ce0902d5d975370dcf5c7795a 100644 (file)
@@ -8,14 +8,9 @@ class ScreenshotView: public QGraphicsView {
 public:
     ScreenshotView(QGraphicsScene *scene, QWidget* parent);
     ~ScreenshotView();
-    void setWidthHeight(int width, int height);
 
 protected:
     void mouseMoveEvent(QMouseEvent *event);
 
-private:
-    int width;
-    int height;
-
 };
 #endif