summaryrefslogtreecommitdiffstats
path: root/src/widgets
diff options
context:
space:
mode:
authorSergio Ahumada <sergio.ahumada@digia.com>2013-07-11 15:14:13 +0200
committerOswald Buddenhagen <oswald.buddenhagen@digia.com>2013-07-11 16:42:01 +0200
commit3ef6cf060e984bca43956a23b61b32ec7347cfc7 (patch)
tree14810e4d0168c0cc3d69cb286574bf28375c07bc /src/widgets
parentb06304e164ba47351fa292662c1e6383c081b5ca (diff)
parent7b9d6cf844ece18fef884f51117e25ad4ac31db5 (diff)
Merge branch 'stable' into dev
Conflicts: qmake/generators/mac/pbuilder_pbx.cpp src/corelib/json/qjsonwriter.cpp src/corelib/kernel/qeventdispatcher_blackberry.cpp src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm Change-Id: I24df576c4cbd18fa51b03122f71e32bb83b9028f
Diffstat (limited to 'src/widgets')
-rw-r--r--src/widgets/dialogs/qcolordialog.cpp11
-rw-r--r--src/widgets/dialogs/qcolordialog.h1
-rw-r--r--src/widgets/dialogs/qcolordialog_p.h1
-rw-r--r--src/widgets/effects/qgraphicseffect.cpp4
-rw-r--r--src/widgets/graphicsview/qgraphicsanchorlayout_p.cpp14
-rw-r--r--src/widgets/graphicsview/qgraphicsitem.cpp2
-rw-r--r--src/widgets/graphicsview/qgraphicsscene.cpp4
-rw-r--r--src/widgets/kernel/qapplication.cpp2
-rw-r--r--src/widgets/kernel/qapplication_qpa.cpp2
-rw-r--r--src/widgets/kernel/qwidget.cpp2
-rw-r--r--src/widgets/kernel/qwidget_qpa.cpp8
-rw-r--r--src/widgets/styles/qfusionstyle.cpp4
-rw-r--r--src/widgets/util/qsystemtrayicon_x11.cpp8
-rw-r--r--src/widgets/widgets/qcombobox.cpp5
-rw-r--r--src/widgets/widgets/qdockarealayout.cpp1
-rw-r--r--src/widgets/widgets/qlineedit.cpp6
-rw-r--r--src/widgets/widgets/qmainwindowlayout.cpp13
17 files changed, 38 insertions, 50 deletions
diff --git a/src/widgets/dialogs/qcolordialog.cpp b/src/widgets/dialogs/qcolordialog.cpp
index 3d720e59e6..5da41aa0a5 100644
--- a/src/widgets/dialogs/qcolordialog.cpp
+++ b/src/widgets/dialogs/qcolordialog.cpp
@@ -136,6 +136,7 @@ public:
signals:
void selected(int row, int col);
+ void currentChanged(int row, int col);
protected:
virtual void paintCell(QPainter *, int row, int col, const QRect&);
@@ -311,6 +312,8 @@ void QWellArray::setCurrent(int row, int col)
updateCell(oldRow, oldCol);
updateCell(curRow, curCol);
+
+ emit currentChanged(curRow, curCol);
}
/*
@@ -344,6 +347,7 @@ void QWellArray::setSelected(int row, int col)
void QWellArray::focusInEvent(QFocusEvent*)
{
updateCell(curRow, curCol);
+ emit currentChanged(curRow, curCol);
}
void QWellArray::setCellBrush(int row, int col, const QBrush &b)
@@ -1493,11 +1497,15 @@ void QColorDialogPrivate::_q_newColorTypedIn(QRgb rgb)
}
}
+void QColorDialogPrivate::_q_nextCustom(int r, int c)
+{
+ nextCust = r + 2 * c;
+}
+
void QColorDialogPrivate::_q_newCustom(int r, int c)
{
const int i = r + 2 * c;
setCurrentColor(QColorDialogOptions::customColor(i));
- nextCust = i;
if (standard)
standard->setSelected(-1,-1);
}
@@ -1627,6 +1635,7 @@ void QColorDialogPrivate::initWidgets()
custom->setAcceptDrops(true);
q->connect(custom, SIGNAL(selected(int,int)), SLOT(_q_newCustom(int,int)));
+ q->connect(custom, SIGNAL(currentChanged(int,int)), SLOT(_q_nextCustom(int,int)));
lblCustomColors = new QLabel(q);
#ifndef QT_NO_SHORTCUT
lblCustomColors->setBuddy(custom);
diff --git a/src/widgets/dialogs/qcolordialog.h b/src/widgets/dialogs/qcolordialog.h
index e76a120c3a..c7a1d6f400 100644
--- a/src/widgets/dialogs/qcolordialog.h
+++ b/src/widgets/dialogs/qcolordialog.h
@@ -123,6 +123,7 @@ private:
Q_PRIVATE_SLOT(d_func(), void _q_addCustom())
Q_PRIVATE_SLOT(d_func(), void _q_newHsv(int h, int s, int v))
Q_PRIVATE_SLOT(d_func(), void _q_newColorTypedIn(QRgb rgb))
+ Q_PRIVATE_SLOT(d_func(), void _q_nextCustom(int, int))
Q_PRIVATE_SLOT(d_func(), void _q_newCustom(int, int))
Q_PRIVATE_SLOT(d_func(), void _q_newStandard(int, int))
Q_PRIVATE_SLOT(d_func(), void _q_pickScreenColor())
diff --git a/src/widgets/dialogs/qcolordialog_p.h b/src/widgets/dialogs/qcolordialog_p.h
index 71be0e61d3..08199cc7c1 100644
--- a/src/widgets/dialogs/qcolordialog_p.h
+++ b/src/widgets/dialogs/qcolordialog_p.h
@@ -100,6 +100,7 @@ public:
void _q_newHsv(int h, int s, int v);
void _q_newColorTypedIn(QRgb rgb);
+ void _q_nextCustom(int, int);
void _q_newCustom(int, int);
void _q_newStandard(int, int);
void _q_pickScreenColor();
diff --git a/src/widgets/effects/qgraphicseffect.cpp b/src/widgets/effects/qgraphicseffect.cpp
index ac873709e1..420392c0fb 100644
--- a/src/widgets/effects/qgraphicseffect.cpp
+++ b/src/widgets/effects/qgraphicseffect.cpp
@@ -864,8 +864,6 @@ void QGraphicsBlurEffect::draw(QPainter *painter)
}
PixmapPadMode mode = PadToEffectiveBoundingRect;
- if (painter->paintEngine()->type() == QPaintEngine::OpenGL2)
- mode = NoPad;
QPoint offset;
QPixmap pixmap = sourcePixmap(Qt::LogicalCoordinates, &offset, mode);
@@ -1057,8 +1055,6 @@ void QGraphicsDropShadowEffect::draw(QPainter *painter)
}
PixmapPadMode mode = PadToEffectiveBoundingRect;
- if (painter->paintEngine()->type() == QPaintEngine::OpenGL2)
- mode = NoPad;
// Draw pixmap in device coordinates to avoid pixmap scaling.
QPoint offset;
diff --git a/src/widgets/graphicsview/qgraphicsanchorlayout_p.cpp b/src/widgets/graphicsview/qgraphicsanchorlayout_p.cpp
index e281e4a7a3..93fb968d69 100644
--- a/src/widgets/graphicsview/qgraphicsanchorlayout_p.cpp
+++ b/src/widgets/graphicsview/qgraphicsanchorlayout_p.cpp
@@ -661,20 +661,6 @@ Qt::AnchorPoint QGraphicsAnchorLayoutPrivate::oppositeEdge(Qt::AnchorPoint edge)
/*!
- * \internal
- *
- * helper function in order to avoid overflowing anchor sizes
- * the returned size will never be larger than FLT_MAX
- *
- */
-inline static qreal checkAdd(qreal a, qreal b)
-{
- if (FLT_MAX - b < a)
- return FLT_MAX;
- return a + b;
-}
-
-/*!
\internal
Adds \a newAnchor to the graph.
diff --git a/src/widgets/graphicsview/qgraphicsitem.cpp b/src/widgets/graphicsview/qgraphicsitem.cpp
index 668436c1a2..1c15905ff0 100644
--- a/src/widgets/graphicsview/qgraphicsitem.cpp
+++ b/src/widgets/graphicsview/qgraphicsitem.cpp
@@ -2741,7 +2741,7 @@ QGraphicsEffect *QGraphicsItem::graphicsEffect() const
the new \a effect. You can delete an existing effect by calling
setGraphicsEffect(0).
- If \a effect is the installed on a different item, setGraphicsEffect() will remove
+ If \a effect is the installed effect on a different item, setGraphicsEffect() will remove
the effect from the item and install it on this item.
QGraphicsItem takes ownership of \a effect.
diff --git a/src/widgets/graphicsview/qgraphicsscene.cpp b/src/widgets/graphicsview/qgraphicsscene.cpp
index 88cccb5118..394c24d671 100644
--- a/src/widgets/graphicsview/qgraphicsscene.cpp
+++ b/src/widgets/graphicsview/qgraphicsscene.cpp
@@ -1810,10 +1810,6 @@ void QGraphicsScene::render(QPainter *painter, const QRectF &target, const QRect
.translate(-sourceRect.left(), -sourceRect.top());
painter->setWorldTransform(painterTransform, true);
- // Two unit vectors.
- QLineF v1(0, 0, 1, 0);
- QLineF v2(0, 0, 0, 1);
-
// Generate the style options
QStyleOptionGraphicsItem *styleOptionArray = new QStyleOptionGraphicsItem[numItems];
for (int i = 0; i < numItems; ++i)
diff --git a/src/widgets/kernel/qapplication.cpp b/src/widgets/kernel/qapplication.cpp
index cb2eab8468..27a152b706 100644
--- a/src/widgets/kernel/qapplication.cpp
+++ b/src/widgets/kernel/qapplication.cpp
@@ -556,7 +556,7 @@ void QApplicationPrivate::construct()
eventDispatcher->startingUp();
#ifdef QT_EVAL
- extern void qt_gui_eval_init(uint);
+ extern void qt_gui_eval_init(QCoreApplicationPrivate::Type);
qt_gui_eval_init(application_type);
#endif
diff --git a/src/widgets/kernel/qapplication_qpa.cpp b/src/widgets/kernel/qapplication_qpa.cpp
index f6a8a3af3d..0fc065e74b 100644
--- a/src/widgets/kernel/qapplication_qpa.cpp
+++ b/src/widgets/kernel/qapplication_qpa.cpp
@@ -126,6 +126,8 @@ bool QApplicationPrivate::modalState()
QWidget *qt_tlw_for_window(QWindow *wnd)
{
+ while (wnd && !wnd->isTopLevel()) // QTBUG-32177, wnd might be a QQuickView embedded via window container.
+ wnd = wnd->parent();
if (wnd)
foreach (QWidget *tlw, qApp->topLevelWidgets())
if (tlw->windowHandle() == wnd)
diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp
index 2d19175725..869362654c 100644
--- a/src/widgets/kernel/qwidget.cpp
+++ b/src/widgets/kernel/qwidget.cpp
@@ -4840,7 +4840,7 @@ QGraphicsEffect *QWidget::graphicsEffect() const
on this widget, QWidget will delete the existing effect before installing
the new \a effect.
- If \a effect is the installed on a different widget, setGraphicsEffect() will remove
+ If \a effect is the installed effect on a different widget, setGraphicsEffect() will remove
the effect from the widget and install it on this widget.
QWidget takes ownership of \a effect.
diff --git a/src/widgets/kernel/qwidget_qpa.cpp b/src/widgets/kernel/qwidget_qpa.cpp
index dafe7dc42a..f0846bea6b 100644
--- a/src/widgets/kernel/qwidget_qpa.cpp
+++ b/src/widgets/kernel/qwidget_qpa.cpp
@@ -887,6 +887,10 @@ void QWidgetPrivate::deleteSysExtra()
}
+#ifdef Q_OS_WIN
+static const char activeXNativeParentHandleProperty[] = "_q_embedded_native_parent_handle";
+#endif
+
void QWidgetPrivate::createTLSysExtra()
{
Q_Q(QWidget);
@@ -897,6 +901,10 @@ void QWidgetPrivate::createTLSysExtra()
if (extra->maxw != QWIDGETSIZE_MAX || extra->maxh != QWIDGETSIZE_MAX)
extra->topextra->window->setMaximumSize(QSize(extra->maxw, extra->maxh));
#ifdef Q_OS_WIN
+ // Pass on native parent handle for Widget embedded into Active X.
+ const QVariant activeXNativeParentHandle = q->property(activeXNativeParentHandleProperty);
+ if (activeXNativeParentHandle.isValid())
+ extra->topextra->window->setProperty(activeXNativeParentHandleProperty, activeXNativeParentHandle);
if (q->inherits("QTipLabel") || q->inherits("QAlphaWidget"))
extra->topextra->window->setProperty("_q_windowsDropShadow", QVariant(true));
#endif
diff --git a/src/widgets/styles/qfusionstyle.cpp b/src/widgets/styles/qfusionstyle.cpp
index 41046a1254..149a5c6674 100644
--- a/src/widgets/styles/qfusionstyle.cpp
+++ b/src/widgets/styles/qfusionstyle.cpp
@@ -1219,6 +1219,10 @@ void QFusionStyle::drawControl(ControlElement element, const QStyleOption *optio
- titleRect.bottom(),
r.top() + titleRect.left() - rect.left(),
titleRect.height(), titleRect.width());
+
+ painter->translate(r.left(), r.top() + r.width());
+ painter->rotate(-90);
+ painter->translate(-r.left(), -r.top());
}
if (!dwOpt->title.isEmpty()) {
diff --git a/src/widgets/util/qsystemtrayicon_x11.cpp b/src/widgets/util/qsystemtrayicon_x11.cpp
index e04656974d..5204b85a9a 100644
--- a/src/widgets/util/qsystemtrayicon_x11.cpp
+++ b/src/widgets/util/qsystemtrayicon_x11.cpp
@@ -153,16 +153,17 @@ private:
QSystemTrayIcon *q;
};
-QSystemTrayIconSys::QSystemTrayIconSys(QSystemTrayIcon *qIn) :
- q(qIn)
+QSystemTrayIconSys::QSystemTrayIconSys(QSystemTrayIcon *qIn)
+ : QWidget(0, Qt::Window | Qt::FramelessWindowHint | Qt::BypassWindowManagerHint)
+ , q(qIn)
{
+ setObjectName(QStringLiteral("QSystemTrayIconSys"));
setToolTip(q->toolTip());
QX11SystemTrayContext *context = qX11SystemTrayContext();
Q_ASSERT(context->isValid());
setAttribute(Qt::WA_AlwaysShowToolTips, true);
setAttribute(Qt::WA_TranslucentBackground, true);
setAttribute(Qt::WA_QuitOnClose, false);
- setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
const QSize size(22, 22); // Gnome, standard size
setGeometry(QRect(QPoint(0, 0), size));
setMinimumSize(size);
@@ -182,7 +183,6 @@ QSystemTrayIconSys::QSystemTrayIconSys(QSystemTrayIcon *qIn) :
ev.xclient.format = 32;
memcpy((char *)&ev.xclient.data, (const char *) l, sizeof(l));
XSendEvent(display, ev.xclient.window, False, 0, &ev);
- XSync(display, False);
show();
}
diff --git a/src/widgets/widgets/qcombobox.cpp b/src/widgets/widgets/qcombobox.cpp
index 6424ee41f1..b89067155d 100644
--- a/src/widgets/widgets/qcombobox.cpp
+++ b/src/widgets/widgets/qcombobox.cpp
@@ -1136,10 +1136,9 @@ Qt::MatchFlags QComboBoxPrivate::matchFlags() const
void QComboBoxPrivate::_q_editingFinished()
{
Q_Q(QComboBox);
- if (lineEdit && !lineEdit->text().isEmpty()) {
- //here we just check if the current item was entered
+ if (lineEdit && !lineEdit->text().isEmpty() && itemText(currentIndex) != lineEdit->text()) {
const int index = q_func()->findText(lineEdit->text(), matchFlags());
- if (index != -1 && itemText(currentIndex) != lineEdit->text()) {
+ if (index != -1) {
q->setCurrentIndex(index);
emitActivated(currentIndex);
}
diff --git a/src/widgets/widgets/qdockarealayout.cpp b/src/widgets/widgets/qdockarealayout.cpp
index ca831f5a39..ac061e7071 100644
--- a/src/widgets/widgets/qdockarealayout.cpp
+++ b/src/widgets/widgets/qdockarealayout.cpp
@@ -2577,7 +2577,6 @@ void QDockAreaLayout::remove(const QList<int> &path)
docks[index].remove(path.mid(1));
}
-static inline int qMin(int i1, int i2, int i3) { return qMin(i1, qMin(i2, i3)); }
static inline int qMax(int i1, int i2, int i3) { return qMax(i1, qMax(i2, i3)); }
void QDockAreaLayout::getGrid(QVector<QLayoutStruct> *_ver_struct_list,
diff --git a/src/widgets/widgets/qlineedit.cpp b/src/widgets/widgets/qlineedit.cpp
index 7cc783fecc..4254ef2b27 100644
--- a/src/widgets/widgets/qlineedit.cpp
+++ b/src/widgets/widgets/qlineedit.cpp
@@ -1808,9 +1808,9 @@ void QLineEdit::paintEvent(QPaintEvent *)
col.setAlpha(128);
QPen oldpen = p.pen();
p.setPen(col);
- lineRect.adjust(minLB, 0, 0, 0);
- QString elidedText = fm.elidedText(d->placeholderText, Qt::ElideRight, lineRect.width());
- p.drawText(lineRect, va, elidedText);
+ QRect ph = lineRect.adjusted(minLB, 0, 0, 0);
+ QString elidedText = fm.elidedText(d->placeholderText, Qt::ElideRight, ph.width());
+ p.drawText(ph, va, elidedText);
p.setPen(oldpen);
}
}
diff --git a/src/widgets/widgets/qmainwindowlayout.cpp b/src/widgets/widgets/qmainwindowlayout.cpp
index cfeb0e2c67..92a1274d7c 100644
--- a/src/widgets/widgets/qmainwindowlayout.cpp
+++ b/src/widgets/widgets/qmainwindowlayout.cpp
@@ -1016,19 +1016,6 @@ void QMainWindowLayout::toggleToolBarsVisible()
#ifndef QT_NO_DOCKWIDGET
-static inline void validateDockWidgetArea(Qt::DockWidgetArea &area)
-{
- switch (area) {
- case Qt::LeftDockWidgetArea:
- case Qt::RightDockWidgetArea:
- case Qt::TopDockWidgetArea:
- case Qt::BottomDockWidgetArea:
- break;
- default:
- area = Qt::LeftDockWidgetArea;
- }
-}
-
static QInternal::DockPosition toDockPos(Qt::DockWidgetArea area)
{
switch (area) {