diff options
author | Liang Qi <liang.qi@qt.io> | 2016-11-26 12:56:09 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2016-11-26 12:56:09 +0100 |
commit | 1ba2796c6b32e33824230fe85300f4ee4d615ab5 (patch) | |
tree | 060c9a37abe5aa3a48b193f8f7f66fe64fb27bf5 /src | |
parent | d743e5a7583f242142bcab3ce927490228c5df29 (diff) | |
parent | 6f8bb3d4c5b2f19cbf161f9dfff81e86cd0e17ab (diff) | |
download | qttools-1ba2796c6b32e33824230fe85300f4ee4d615ab5.tar.gz |
Merge remote-tracking branch 'origin/5.7' into 5.8
Change-Id: I7d084d8f51a728f9a2521f89fd57ec604544169a
Diffstat (limited to 'src')
-rw-r--r-- | src/designer/src/components/widgetbox/widgetboxtreewidget.cpp | 1 | ||||
-rw-r--r-- | src/designer/src/designer/main.cpp | 3 | ||||
-rw-r--r-- | src/pixeltool/qpixeltool.cpp | 27 |
3 files changed, 24 insertions, 7 deletions
diff --git a/src/designer/src/components/widgetbox/widgetboxtreewidget.cpp b/src/designer/src/components/widgetbox/widgetboxtreewidget.cpp index 6b87e8131..4fa7222d0 100644 --- a/src/designer/src/components/widgetbox/widgetboxtreewidget.cpp +++ b/src/designer/src/components/widgetbox/widgetboxtreewidget.cpp @@ -67,7 +67,6 @@ static const char *defaultTypeValueC = "default"; static const char *customValueC = "custom"; static const char *iconPrefixC = "__qt_icon__"; static const char *scratchPadValueC = "scratchpad"; -static const char *qtLogoC = "qtlogo.png"; static const char *invisibleNameC = "[invisible]"; enum TopLevelRole { NORMAL_ITEM, SCRATCHPAD_ITEM, CUSTOM_ITEM }; diff --git a/src/designer/src/designer/main.cpp b/src/designer/src/designer/main.cpp index 46dc3817e..236f24138 100644 --- a/src/designer/src/designer/main.cpp +++ b/src/designer/src/designer/main.cpp @@ -38,6 +38,9 @@ int main(int argc, char *argv[]) { Q_INIT_RESOURCE(designer); + // required for QWebEngineView + QCoreApplication::setAttribute(Qt::AA_ShareOpenGLContexts); + QDesigner app(argc, argv); switch (app.parseCommandLineArguments()) { case QDesigner::ParseArgumentsSuccess: diff --git a/src/pixeltool/qpixeltool.cpp b/src/pixeltool/qpixeltool.cpp index cd39bdde4..e02fa0eb8 100644 --- a/src/pixeltool/qpixeltool.cpp +++ b/src/pixeltool/qpixeltool.cpp @@ -51,6 +51,18 @@ QT_BEGIN_NAMESPACE +static QPoint initialPos(const QSettings &settings, const QSize &initialSize) +{ + const QDesktopWidget *desktopWidget = QApplication::desktop(); + const QPoint defaultPos = desktopWidget->availableGeometry().topLeft(); + const QPoint savedPos = + settings.value(QLatin1String("position"), QVariant(defaultPos)).toPoint(); + const int savedScreen = desktopWidget->screenNumber(savedPos); + return savedScreen >= 0 + && desktopWidget->availableGeometry(savedScreen).intersects(QRect(savedPos, initialSize)) + ? savedPos : defaultPos; +} + QPixelTool::QPixelTool(QWidget *parent) : QWidget(parent) , m_freeze(false) @@ -70,7 +82,7 @@ QPixelTool::QPixelTool(QWidget *parent) m_zoom = settings.value(QLatin1String("zoom"), 4).toInt(); m_initialSize = settings.value(QLatin1String("initialSize"), QSize(250, 200)).toSize(); - move(settings.value(QLatin1String("position")).toPoint()); + move(initialPos(settings, m_initialSize)); setMouseTracking(true); setAttribute(Qt::WA_NoBackground); @@ -426,11 +438,14 @@ void QPixelTool::grabScreen() int x = mousePos.x() - w/2; int y = mousePos.y() - h/2; + const QBrush darkBrush = palette().color(QPalette::Dark); const QDesktopWidget *desktopWidget = QApplication::desktop(); - - QScreen *screen = QGuiApplication::screens().at(desktopWidget->screenNumber(this)); - m_buffer = screen->grabWindow(desktopWidget->winId(), x, y, w, h); - + if (QScreen *screen = QGuiApplication::screens().value(desktopWidget->screenNumber(this), Q_NULLPTR)) { + m_buffer = screen->grabWindow(desktopWidget->winId(), x, y, w, h); + } else { + m_buffer = QPixmap(w, h); + m_buffer.fill(darkBrush.color()); + } QRegion geom(x, y, w, h); QRect screenRect; for (int i = 0; i < desktopWidget->numScreens(); ++i) @@ -441,7 +456,7 @@ void QPixelTool::grabScreen() QPainter p(&m_buffer); p.translate(-x, -y); p.setPen(Qt::NoPen); - p.setBrush(palette().color(QPalette::Dark)); + p.setBrush(darkBrush); p.drawRects(rects); } |