rotary: consider the scaling
authorGiWoong Kim <giwoong.kim@samsung.com>
Fri, 8 May 2015 07:09:17 +0000 (16:09 +0900)
committerGiWoong Kim <giwoong.kim@samsung.com>
Fri, 8 May 2015 08:38:08 +0000 (17:38 +0900)
Change-Id: Ic6aed5fd74723fc30bb859409f40c4fdb657c3c5
Signed-off-by: GiWoong Kim <giwoong.kim@samsung.com>
tizen/src/ui/displaybase.cpp
tizen/src/ui/mainwindow.cpp
tizen/src/ui/rotaryview.cpp
tizen/src/ui/rotaryview.h
tizen/src/ui/skinview.cpp
tizen/src/ui/skinview.h

index c38b7a1..1d9b827 100644 (file)
@@ -104,7 +104,10 @@ void DisplayBase::handleResize(QResizeEvent *event)
     /* masking */
     if (maskImage.size() != QSize(0, 0)) {
         qDebug("set a mask to display");
-        widget->setMask(maskImage.mask());
+
+        widget->setMask(maskImage.scaled(
+            maskImage.width() * scaleFactor,
+            maskImage.height() * scaleFactor).mask());
     }
 }
 
index 16084f7..7070b48 100644 (file)
@@ -397,9 +397,10 @@ void MainWindow::switchForm(int index)
 
     resize(uiInfo->getUiSize());
 
-    skinView->update();
+    skinView->updateLayout();
+
     if (rotary != NULL) {
-        rotary->update();
+        rotary->updateLayout();
     }
 
     if (display != NULL) {
@@ -421,9 +422,10 @@ void MainWindow::scaleForm(int scale)
 
     resize(uiInfo->getUiSize());
 
-    skinView->update();
+    skinView->updateLayout();
+
     if (rotary != NULL) {
-        rotary->update();
+        rotary->updateLayout();
     }
 
     if (display != NULL) {
index 96dcf91..4265b88 100644 (file)
@@ -38,7 +38,8 @@ RotaryView::RotaryView(QWidget *parent) :
     QGraphicsView(new QGraphicsScene(parent), parent)
 {
     this->win = (MainWindow *)parent;
-    this->rotaryImg = win->uiInfo->getMainForm()->getRotaryImage();
+    this->rotaryImg = NULL;
+    this->rotaryItem = NULL;
     this->grabPos = QPoint(-1, -1);
     this->grabAngle = 0;
     this->rotaryDegree = 0;
@@ -53,7 +54,7 @@ RotaryView::RotaryView(QWidget *parent) :
     setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
     setAlignment(Qt::AlignLeft | Qt::AlignTop);
 
-    update();
+    updateLayout();
 }
 
 void RotaryView::createItems()
@@ -65,7 +66,7 @@ void RotaryView::createItems()
     scene()->addItem(rotaryItem);
 }
 
-void RotaryView::update()
+void RotaryView::updateLayout()
 {
     scene()->clear();
 
@@ -75,11 +76,13 @@ void RotaryView::update()
     /* repositioning & resizing */
     const int alignOffsetX = (rotaryImg->width() - displayRect.width()) / 2;
     const int alignOffsetY = (rotaryImg->height() - displayRect.height()) / 2;
+    const qreal scaleFactor = win->getUIState()->getScaleFactor();
 
     setGeometry(
-        displayRect.x() - alignOffsetX,
-        displayRect.y() - alignOffsetY,
-        rotaryImg->width(), rotaryImg->height());
+        (displayRect.x() - alignOffsetX) * scaleFactor,
+        (displayRect.y() - alignOffsetY) * scaleFactor,
+        rotaryImg->width() * scaleFactor,
+        rotaryImg->height() * scaleFactor);
     scene()->setSceneRect(0, 0, width(), height());
 
     createItems();
@@ -101,7 +104,10 @@ void RotaryView::resizeEvent(QResizeEvent *event)
     setTransform(QTransform(sx, 0, 0, 0, sy, 0, 0, 0, 1));
 
     /* masking */
-    setMask(win->uiInfo->getMainForm()->getRotaryImage()->mask());
+    QPixmap scaledRotaryImg = rotaryImg->scaled(
+        rotaryImg->width() * win->getUIState()->getScaleFactor(),
+        rotaryImg->height() * win->getUIState()->getScaleFactor());
+    setMask(scaledRotaryImg.mask());
 
     QGraphicsView::resizeEvent(event);
 }
index e5f0030..68f9790 100644 (file)
@@ -42,7 +42,7 @@ public:
     RotaryView(QWidget *parent);
     ~RotaryView();
 
-    void update();
+    void updateLayout();
 
 protected:
     void resizeEvent(QResizeEvent *event);
index 872ac66..30ba666 100644 (file)
@@ -46,7 +46,7 @@ SkinView::SkinView(QGraphicsScene *scene, QWidget *parent) :
     this->grabWinPos = QPoint(-1, -1);
     this->grabPos = QPoint(-1, -1);
 
-    update();
+    updateLayout();
 
     kbd = new KeyboardHelper(this);
 }
@@ -71,7 +71,7 @@ void SkinView::createItems(MainForm *form)
     }
 }
 
-void SkinView::update()
+void SkinView::updateLayout()
 {
     scene()->clear();
 
index bec3a68..7ef875b 100644 (file)
@@ -43,7 +43,7 @@ public:
     SkinView(QGraphicsScene *scene, QWidget *parent = 0);
     ~SkinView();
 
-    void update();
+    void updateLayout();
 
 protected:
     void resizeEvent(QResizeEvent *event);