Q_UNUSED(event)
/* do nothing */
+
+ QGraphicsView::resizeEvent(event);
}
void DockingConView::mousePressEvent(QMouseEvent *event)
void FloatingConView::resizeEvent(QResizeEvent *event)
{
- //qDebug("resize con view");
-
Q_UNUSED(event)
+
+ /* do nothing */
+
+ QGraphicsView::resizeEvent(event);
}
int FloatingConView::isDockable(QWidget *object, QWidget *subject)
uint32_t qt5_window_height = 0;
int qt5_window_angle = 0;
-DisplayBase::DisplayBase(QSize resolution, QWidget *w)
- : resolution(resolution), widget(w), isDragging(false)
+DisplayBase::DisplayBase(QRect rect, int angle, qreal scaleFactor,
+ QWidget *w) : widget(w)
{
- /* initialize */
- // TODO: compare display region with resolution
+ this->rect = rect;
+ this->rotateAngle = angle;
+ this->scaleFactor = scaleFactor;
+ this->isDragging = false;
- MainWindow *win = ((MainWindow *)w->parent()->parent());
- rotateAngle = win->uiInfo->getMainFormDisplayType()->getAngle();
- scaleFactor = win->getUIState()->getScaleFactor();
+ updateGeometry();
}
-DisplayBase::~DisplayBase()
-{
- qDebug("destory display");
-}
-
-void DisplayBase::rotate(int angle)
+void DisplayBase::rotate(QRect rect, int angle)
{
qDebug("display rotate : %d", angle);
- rotateAngle = angle;
+ this->rect = rect;
+ qt5_window_angle = rotateAngle = angle;
- qt5_window_angle = angle;
-
- /* adjustSize() doesn't work */
- widget->resize(0, 0);
+ updateGeometry();
widget->repaint();
}
-void DisplayBase::scale(int scale)
+void DisplayBase::scale(qreal scaleFactor)
{
- qDebug("display scale : %d", scale);
+ qDebug() << "display scale factor :" << scaleFactor;
- scaleFactor = ((qreal)scale) / 100;
+ this->scaleFactor = scaleFactor;
- /* adjustSize() doesn't work */
- widget->resize(0, 0);
+ updateGeometry();
widget->repaint();
}
qt5_graphic_hw_invalidate();
}
+void DisplayBase::updateGeometry()
+{
+ widget->setGeometry(rect.x() * scaleFactor,
+ rect.y() * scaleFactor,
+ rect.width() * scaleFactor,
+ rect.height() * scaleFactor);
+}
+
void DisplayBase::handlePaint(QPaintEvent *event)
{
+ /* do nothing */
}
void DisplayBase::handleResize(QResizeEvent *event)
{
qDebug("resize display");
- MainWindow *win = ((MainWindow *)widget->parent()->parent());
- MainForm *form = win->uiInfo->getMainForm();
-
- const qreal sx = scaleFactor;
- const qreal sy = scaleFactor;
-
- widget->setGeometry(form->displayType->getRect().x() * sx,
- form->displayType->getRect().y() * sy,
- form->displayType->getRect().width() * sx,
- form->displayType->getRect().height() * sy);
-
qt5_window_width = widget->width();
qt5_window_height = widget->height();
switch(rotateAngle) {
case 90: /* Reverse Landscape */
absX = yy;
- absY = resolution.height() - xx;
+ absY = rect.height() - xx;
break;
case 180: /* Reverse Portrait */
- absX = resolution.width() - xx;
- absY = resolution.height() - yy;
+ absX = rect.width() - xx;
+ absY = rect.height() - yy;
break;
case 270: /* Landscape */
- absX = resolution.width() - yy;
+ absX = rect.width() - yy;
absY = xx;
break;
case 0:
do_mouse_event(0, eventType, clientX, clientY, absX, absY, 0);
}
+
+DisplayBase::~DisplayBase()
+{
+ qDebug("destroy display");
+}
class DisplayBase
{
public:
- void rotate(int angle);
- void scale(int scale);
+ void rotate(QRect rect, int angle);
+ void scale(qreal scaleFactor);
void update();
+ void updateGeometry();
protected:
- DisplayBase(QSize resolution, QWidget *w);
+ DisplayBase(QRect rect, int angle, qreal scaleFactor, QWidget *w);
virtual ~DisplayBase();
- void setRotate(int angle);
- void setScale(int scale);
-
void handlePaint(QPaintEvent *event);
void handleResize(QResizeEvent *event);
private:
void sendTouchEvent(int eventType, int clientX, int clientY);
- QSize resolution;
QWidget *widget;
+ QRect rect;
int rotateAngle;
qreal scaleFactor;
*
*/
-#include <QtWidgets>
-
#include "displayglwidget.h"
-DisplayGLWidget::DisplayGLWidget(QSize resolution, QGLContext *context, QWidget *parent) :
- QGLWidget(context, parent),
- DisplayBase(resolution, this)
+DisplayGLWidget::DisplayGLWidget(QWidget *parent,
+ QGLContext *context, QRect rect, int angle, qreal scaleFactor) :
+ QGLWidget(context, parent), DisplayBase(rect, angle, scaleFactor, this)
{
setAutoBufferSwap(false);
}
DisplayGLWidget::~DisplayGLWidget()
{
+ /* do nothing */
}
#ifndef DISPLAYGLWIDGET_H
#define DISPLAYGLWIDGET_H
-#include "displaybase.h"
#include <QGLWidget>
+#include "displaybase.h"
+
class DisplayGLWidget : public QGLWidget,
public DisplayBase
{
Q_OBJECT
public:
- DisplayGLWidget(QSize resolution, QGLContext *context, QWidget *parent = 0);
+ DisplayGLWidget(QWidget *parent,
+ QGLContext *context, QRect rect, int angle, qreal scaleFactor);
~DisplayGLWidget();
protected:
*
*/
-#include <QtWidgets>
-
#include "displayswwidget.h"
-DisplaySWWidget::DisplaySWWidget(QSize resolution, QWidget *parent) :
- QLabel(parent),
- DisplayBase(resolution, this)
+DisplaySWWidget::DisplaySWWidget(QWidget *parent,
+ QRect rect, int angle, qreal scaleFactor) :
+ QLabel(parent), DisplayBase(rect, angle, scaleFactor, this)
{
+ /* do nothing */
}
void DisplaySWWidget::paintEvent(QPaintEvent *event)
DisplaySWWidget::~DisplaySWWidget()
{
+ /* do nothing */
}
#ifndef DISPLAYSWWIDGET_H
#define DISPLAYSWWIDGET_H
-#include "displaybase.h"
#include <QLabel>
+#include "displaybase.h"
+
class DisplaySWWidget : public QLabel,
public DisplayBase
{
Q_OBJECT
public:
- DisplaySWWidget(QSize resolution, QWidget *parent = 0);
+ DisplaySWWidget(QWidget *parent,
+ QRect rect, int angle, qreal scaleFactor);
~DisplaySWWidget();
protected:
*/
context = new QGLContext(format);
- display = new DisplayGLWidget(uiInfo->resolution, context, skinView);
+ display = new DisplayGLWidget(skinView, context,
+ uiInfo->getMainFormDisplayType()->getRect(),
+ uiInfo->getMainFormDisplayType()->getAngle(),
+ getUIState()->getScaleFactor());
context->setFormat(format);
context->create(wrapperContext);
} else { /* off-screen rendering */
- DisplaySWWidget *w = new DisplaySWWidget(uiInfo->resolution, skinView);
+ DisplaySWWidget *w = new DisplaySWWidget(skinView,
+ uiInfo->getMainFormDisplayType()->getRect(),
+ uiInfo->getMainFormDisplayType()->getAngle(),
+ getUIState()->getScaleFactor());
display = w;
screenWidget = w;
/* update layout */
getUIState()->conState.conFormIndex = index;
- adjustSize();
+
+ resize(uiInfo->getUiSize());
/* arrange */
if (dockPos == -1) {
getUIState()->conState.dockingCon = NULL;
- adjustSize();
+ resize(uiInfo->getUiSize());
}
if (getFloatingCon() != NULL) {
{
qDebug("resize main window");
- resize(uiInfo->getUiSize());
-
setMask(uiInfo->getUiRegion());
+
+ QWidget::resizeEvent(event);
}
/* override */
qDebug("window switch : %d", index);
getUIState()->mainFormIndex = index;
-
skinView->update();
- display->rotate(uiInfo->getMainFormDisplayType()->getAngle());
- adjustSize();
+ display->rotate(
+ uiInfo->getMainFormDisplayType()->getRect(),
+ uiInfo->getMainFormDisplayType()->getAngle());
+
+ resize(uiInfo->getUiSize());
}
void MainWindow::scaleForm(int scale)
qDebug("window scale : %d", scale);
getUIState()->mainFormScale = scale;
+ skinView->update();
- skinView->adjustSize();
- display->scale(getUIState()->mainFormScale);
+ display->scale(getUIState()->getScaleFactor());
- adjustSize();
+ resize(uiInfo->getUiSize());
}
void MainWindow::capture(void)
</factorList>
</scaleItem>
<separator/>
+ <controllerItem/>
<advancedItem>
<menuList>
<screenShotItem name="Screen Shot">
</forceCloseItem>
</menuList>
</advancedItem>
- <controllerItem/>
<shellItem name="Shell">
<shortcut>Ctrl+F5</shortcut>
</shellItem>
<shortcut property="next">Ctrl+Num+9</shortcut>
</switchItem>
<separator/>
+ <controllerItem/>
<advancedItem>
<menuList>
<screenShotItem name="Screen Shot">
{
scene()->clear();
- createItems(win->uiInfo->getMainForm());
+ /* resizing */
+ resize(win->uiInfo->getUiSize());
+ scene()->setSceneRect(0, 0, size().width(), size().height());
- adjustSize();
+ createItems(win->uiInfo->getMainForm());
}
void SkinView::resizeEvent(QResizeEvent *event)
qDebug("resize skin view");
- /* geometry */
- const int width = win->uiInfo->getUiSize().width();
- const int height = win->uiInfo->getUiSize().height();
- setGeometry(0, 0, width, height);
-
/* scaling */
const qreal sx = win->getUIState()->getScaleFactor();
const qreal sy = win->getUIState()->getScaleFactor();
QTransform transform(sx, 0, 0, 0, sy, 0, 0, 0, 1);
setTransform(transform);
- //QGraphicsView::resizeEvent(event);
+ QGraphicsView::resizeEvent(event);
}
void SkinView::mousePressEvent(QMouseEvent *event)