4 * Copyright (C) 2017 Samsung Electronics Co., Ltd. All rights reserved.
7 * Jihye Kim <jihye424.kim@samsung.com>
8 * SeokYeon Hwang <syeon.hwang@samsung.com>
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License
12 * as published by the Free Software Foundation; either version 2
13 * of the License, or (at your option) any later version.
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
32 #include "generalskinview.h"
33 #include "mainwindow.h"
35 GeneralSkinView::GeneralSkinView(QGraphicsScene *scene, QWidget *parent)
36 : MainView(scene, parent)
40 GeneralSkinView::~GeneralSkinView()
42 qDebug("destroy general skin view");
46 void GeneralSkinView::resizeEvent(QResizeEvent *event)
48 qDebug() << "resize general skin view:" << size();
49 SkinView::resizeEvent(event);
53 void GeneralSkinView::mousePressEvent(QMouseEvent *event)
55 SkinView::mousePressEvent(event);
57 if (event->button() == Qt::LeftButton) {
58 grabWindow(event->globalPos());
63 void GeneralSkinView::mouseReleaseEvent(QMouseEvent *event)
65 SkinView::mouseReleaseEvent(event);
67 if (event->button() == Qt::LeftButton) {
73 void GeneralSkinView::mouseMoveEvent(QMouseEvent *event)
75 SkinView::mouseMoveEvent(event);
77 if (isGrabWindow() == true) {
78 win->move(grabWinPos + (event->globalPos() - grabPos));
82 void GeneralSkinView::createItems()
84 qDebug() << "create items for general skin view";
86 QBrush backBrush(QColor(244, 244, 244));
87 QPen linePen(QColor(205, 205, 205), 1, Qt::SolidLine);
88 QSize size = win->getUiInfo()->getMainSize();
89 scene()->addRect(BORDER_SIZE, BORDER_SIZE, size.width() - BORDER_SIZE * 2, HEADER_HEIGHT, QPen(Qt::NoPen), backBrush);
90 scene()->addLine(BORDER_SIZE, HEADER_HEIGHT + BORDER_SIZE, size.width() - BORDER_SIZE, HEADER_HEIGHT + BORDER_SIZE, linePen);
92 if (BORDER_SIZE > 0) {
93 QPen boaderPen(QColor(0, 138, 248), BORDER_SIZE * 2, Qt::SolidLine);
94 scene()->addRect(0, 0, size.width(), size.height(), boaderPen);
97 QGraphicsTextItem *title = new QGraphicsTextItem(win->getUiInfo()->getVmName());
98 title->setDefaultTextColor(QColor(88, 88, 88));
99 scene()->addItem(title);
100 QRectF rect = title->boundingRect();
101 int y = (HEADER_HEIGHT - rect.height()) / 2;
102 title->setPos(BORDER_SIZE + 5, BORDER_SIZE + y);
105 QSize GeneralSkinView::getMainSize()
107 QSize size = win->getUiInfo()->getMainForm()->
108 skinImg[LayoutForm::normal].size() * win->getUiInfo()->getUiState()->getScaleFactor();
110 size.setWidth(size.width() + BORDER_SIZE * 2);
111 size.setHeight(size.height() + HEADER_HEIGHT + BORDER_SIZE * 2);
116 QRegion GeneralSkinView::getMainRegion()
118 QImage *mainImage = &(win->getUiInfo()->getMainForm()->skinImg[LayoutForm::normal]);
119 QImage regionImage = mainImage->scaled(
120 mainImage->width() * win->getUiInfo()->getUiState()->getScaleFactor() + BORDER_SIZE * 2,
121 mainImage->height() * win->getUiInfo()->getUiState()->getScaleFactor()
122 + HEADER_HEIGHT + BORDER_SIZE * 2).createAlphaMask();
124 return QRegion(QBitmap::fromImage(regionImage));