summaryrefslogtreecommitdiffstats
path: root/tools/qmlviewer/qmlviewer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/qmlviewer/qmlviewer.cpp')
-rw-r--r--tools/qmlviewer/qmlviewer.cpp35
1 files changed, 27 insertions, 8 deletions
diff --git a/tools/qmlviewer/qmlviewer.cpp b/tools/qmlviewer/qmlviewer.cpp
index 4b0a83a..0417539 100644
--- a/tools/qmlviewer/qmlviewer.cpp
+++ b/tools/qmlviewer/qmlviewer.cpp
@@ -124,7 +124,7 @@ void PreviewDeviceSkin::slotPopupMenu()
QmlViewer::QmlViewer(QFxTestEngine::TestMode testMode, const QString &testDir, QWidget *parent, Qt::WindowFlags flags)
- : QMainWindow(parent, flags), frame_stream(0), scaleSkin(true)
+ : QWidget(parent, flags), frame_stream(0), scaleSkin(true), mb(0)
{
testEngine = 0;
devicemode = false;
@@ -133,12 +133,12 @@ QmlViewer::QmlViewer(QFxTestEngine::TestMode testMode, const QString &testDir, Q
record_autotime = 0;
record_period = 20;
- setAttribute(Qt::WA_OpaquePaintEvent);
- setAttribute(Qt::WA_NoSystemBackground);
if (!(flags & Qt::FramelessWindowHint))
createMenu(menuBar(),0);
canvas = new QFxView(this);
+ canvas->setAttribute(Qt::WA_OpaquePaintEvent);
+ canvas->setAttribute(Qt::WA_NoSystemBackground);
canvas->setContentResizable(!skin || !scaleSkin);
if(testMode != QFxTestEngine::NoTest)
@@ -146,17 +146,31 @@ QmlViewer::QmlViewer(QFxTestEngine::TestMode testMode, const QString &testDir, Q
QObject::connect(canvas, SIGNAL(sceneResized(QSize)), this, SLOT(sceneResized(QSize)));
- setCentralWidget(canvas);
+ QVBoxLayout *layout = new QVBoxLayout;
+ layout->setMargin(0);
+ layout->setSpacing(0);
+ setLayout(layout);
+ if (mb)
+ layout->addWidget(mb);
+ layout->addWidget(canvas);
+}
+
+QMenuBar *QmlViewer::menuBar() const
+{
+ if (!mb)
+ mb = new QMenuBar((QWidget*)this);
+
+ return mb;
}
QSize QmlViewer::sizeHint() const
{
if (skin)
- return QMainWindow::sizeHint();
+ return QWidget::sizeHint();
else {
// Kludge to force QMainWindow to be EXACTLY the right size for the canvas.
QSize sh = canvas->sizeHint();
- sh.setHeight(sh.height()+menuBar()->sizeHint().height()+1);
+ sh.setHeight(sh.height()+menuBar()->sizeHint().height());
return sh;
}
}
@@ -252,6 +266,8 @@ void QmlViewer::createMenu(QMenuBar *menu, QMenu *flatmenu)
connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
fileMenu->addSeparator();
fileMenu->addAction(quitAction);
+ if (menu)
+ menu->setFixedHeight(menu->sizeHint().height());
}
void QmlViewer::setScaleSkin()
@@ -419,7 +435,9 @@ void QmlViewer::setSkin(const QString& skinDirectory)
DeviceSkinParameters parameters;
if (!skinDirectory.isEmpty() && parameters.read(skinDirectory,DeviceSkinParameters::ReadAll,&err)) {
layout()->setEnabled(false);
- setMenuBar(0);
+ //setMenuBar(0);
+ if (mb)
+ mb->hide();
if (!err.isEmpty())
qWarning() << err;
skin = new PreviewDeviceSkin(parameters,this);
@@ -436,6 +454,7 @@ void QmlViewer::setSkin(const QString& skinDirectory)
menuBar()->clear();
canvas->setParent(this, Qt::SubWindow);
createMenu(menuBar(),0);
+ mb->show();
setMinimumSize(QSize(0,0));
setMaximumSize(QSize(16777215,16777215));
canvas->setMinimumSize(QSize(0,0));
@@ -443,7 +462,7 @@ void QmlViewer::setSkin(const QString& skinDirectory)
QRect g = geometry();
g.setSize(sizeHint());
setParent(0,windowFlags()); // recreate
- canvas->move(0,menuBar()->sizeHint().height()+1);
+ canvas->move(0,menuBar()->sizeHint().height());
setGeometry(g);
layout()->setEnabled(true);
show();