DisplayBase::DisplayBase(DisplayType *displayForm, QSize resolution, qreal scaleFactor,
QWidget *w) : resolution(resolution), widget(w)
{
+ this->win = (MainWindow *)widget->parentWidget();
this->rect = displayForm->getRect();
this->maskImage = displayForm->getMask();
this->rotateAngle = displayForm->getAngle();
this->scaleFactor = scaleFactor;
this->isDragging = false;
- this->gImgState = false;
+
+ this->offGuide = NULL;
+ this->offGuideShown = false;
this->tsHelper = new TouchScreenHelper(this);
- this->gImg = new QImage();
- this->gPxmImg = new QPixmap();
isTouch = is_touchscreen_enabled();
if (!isTouch) {
mouseStatus = MOUSE_LEAVE;
}
- loadGuideImg();
-
- MainWindow *win = (MainWindow *)widget->parentWidget();
win->getMainView()->getKbdHelper()->setMtTracker(tsHelper->getMtTracker());
+ loadGuideImg();
+
updateGeometry();
/* update sensor */
void DisplayBase::loadGuideImg()
{
- QString guide_img_path(SDK_EMULATOR_IMAGES_PATH);
- guide_img_path.append(DISPLAY_OFF_GUIDE_IMAGE_FILE);
+ QString offImage = QDir(QCoreApplication::applicationDirPath() +
+ QDir::separator() + SDK_EMULATOR_IMAGES_PATH +
+ DISPLAY_OFF_GUIDE_IMAGE_FILE).absolutePath();
- bool ret = gImg->load(guide_img_path);
- if (ret == false) {
- qDebug() << guide_img_path << ": No such file";
- isGimgReady = false;
- } else {
- isGimgReady = true;
+ if (offGuideImg.load(offImage) == false) {
+ qWarning() << "failed to load image from" << offImage;
}
}
-void DisplayBase::startGuideImg()
+bool DisplayBase::isOffGuideReady()
{
- MainWindow *win = (MainWindow *)widget->parentWidget();
- int rWidth = rect.width() * scaleFactor;
- int rHeight = rect.height() * scaleFactor;
- int x = rect.x() * scaleFactor;
- int y = rect.y() * scaleFactor;
+ return !offGuideImg.isNull();
+}
- gLabel = new QLabel(win);
- gLabel->setAttribute(Qt::WA_DeleteOnClose);
- gLabel->setStyleSheet("background-color: black");
+void DisplayBase::showOffGuideImg()
+{
+ offGuideShown = true;
- *gPxmImg = QPixmap::fromImage(*gImg);
- *gPxmImg = gPxmImg->scaled(rWidth, rHeight, Qt::KeepAspectRatio, Qt::SmoothTransformation);
+ offGuide = new QLabel(win);
+ offGuide->setAttribute(Qt::WA_DeleteOnClose);
+ offGuide->setStyleSheet(
+ "background-color: black; border-style: none;");
+ offGuide->setAlignment(Qt::AlignCenter);
- gLabel->setPixmap(*gPxmImg);
- gLabel->setGeometry(x, y, rWidth, rHeight);
- gLabel->setAlignment(Qt::AlignCenter);
- gLabel->show();
+ offGuide->setGeometry(getGeometry());
+ offGuide->setPixmap(offGuideImg.scaled(
+ getGeometry().width(), getGeometry().height(),
+ Qt::KeepAspectRatio, Qt::SmoothTransformation));
- gImgState = true;
+ offGuide->show();
}
-void DisplayBase::stopGuideImg()
+void DisplayBase::hideOffGuideImg()
{
- gLabel->close();
- gImgState = false;
-}
+ if (offGuide != NULL) {
+ offGuide->close();
+ offGuide = NULL;
+ }
-bool DisplayBase::getIsGimgReady()
-{
- return isGimgReady;
+ offGuideShown = false;
}
-bool DisplayBase::getGimgState()
+bool DisplayBase::isOffGuideShown()
{
- return gImgState;
+ return offGuideShown;
}
void DisplayBase::switchForm(DisplayType *displayForm)
{
- qDebug() << "display switch angle :" << displayForm->getAngle();
+ qDebug() << "display switch angle:" << displayForm->getAngle();
qt5_window_angle = rotateAngle = displayForm->getAngle();
void DisplayBase::scaleForm(qreal scaleFactor)
{
- qDebug() << "display scale factor :" << scaleFactor;
+ qDebug() << "display scale factor:" << scaleFactor;
this->scaleFactor = scaleFactor;
void DisplayBase::updateGeometry()
{
+ if (isOffGuideShown() == true) {
+ hideOffGuideImg();
+ }
+
qreal sx = rect.x() * scaleFactor;
qreal sy = rect.y() * scaleFactor;
- widget->setGeometry( qRound(sx),
- qRound(sy),
+ widget->setGeometry(qRound(sx), qRound(sy),
rect.width() * scaleFactor,
rect.height() * scaleFactor);
}
void DisplayBase::handleResize(QResizeEvent *event)
{
- qDebug() << "resize display :" << event->size();
+ qDebug() << "resize display:" << event->size();
qt5_window_width = widget->width();
qt5_window_height = widget->height();
{
qDebug("destroy display");
+ hideOffGuideImg();
+
if (tsHelper != NULL) {
delete tsHelper;
}
static int argc = 0;
static char *argv[0];
-#define MAX_BLANK_FRAME_CNT 10
-static unsigned int blank_cnt;
+#define MAX_DPY_BLANK_FRAME_CNT 10
+static unsigned int dpy_blank_cnt;
static void *captureRequestListener;
static void (*captureRequestHandler)(void *);
{
qt5App->processEvents();
- DisplayBase *db = mainwindow->getDisplay();
- if (db) {
- if (db->getIsGimgReady()) {
- if (is_display_off()) {
- if (db->getGimgState() == false) {
- if (blank_cnt > MAX_BLANK_FRAME_CNT) {
- db->startGuideImg();
- blank_cnt = 0;
- } else {
- blank_cnt++;
- }
+ DisplayBase *display = mainwindow->getDisplay();
+ if (display && display->isOffGuideReady() == true) {
+ if (is_display_off() == true) {
+ /* show guide image for display off */
+ if (display->isOffGuideShown() == false) {
+ if (dpy_blank_cnt > MAX_DPY_BLANK_FRAME_CNT) {
+ display->showOffGuideImg();
+ dpy_blank_cnt = 0;
+ } else {
+ dpy_blank_cnt++;
}
- } else {
- if (db->getGimgState() == true) {
- db->stopGuideImg();
- }
-
- blank_cnt = 0;
}
+ } else {
+ if (display->isOffGuideShown() == true) {
+ display->hideOffGuideImg();
+ }
+
+ dpy_blank_cnt = 0;
}
- } else {
- qDebug() << "Display is not ready.";
}
}