From b6ee151c09e4066f0d6767bfd2e0d8aafd763cd1 Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Tue, 6 Apr 2010 09:36:36 +0200 Subject: qdoc: Added
elements to some html output for Fake nodes. Task: QTBUG-9504 --- tools/qdoc3/htmlgenerator.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp index fb9fa95..df9662f 100644 --- a/tools/qdoc3/htmlgenerator.cpp +++ b/tools/qdoc3/htmlgenerator.cpp @@ -1356,10 +1356,10 @@ void HtmlGenerator::generateClassLikeNode(const InnerNode *inner, if (!inner->doc().isEmpty()) { out() << "
\n" - << "
\n" + << "
\n" // QTBUG-9504 << "

" << "Detailed Description" << "

\n"; generateBody(inner, marker); - out() << "
\n"; + out() << "
\n"; // QTBUG-9504 generateAlsoList(inner, marker); } @@ -1368,7 +1368,7 @@ void HtmlGenerator::generateClassLikeNode(const InnerNode *inner, while (s != sections.end()) { out() << "
\n"; if (!(*s).divClass.isEmpty()) - out() << "
\n"; + out() << "
\n"; // QTBUG-9504 out() << "

" << protectEnc((*s).name) << "

\n"; NodeList::ConstIterator m = (*s).members.begin(); @@ -1419,7 +1419,7 @@ void HtmlGenerator::generateClassLikeNode(const InnerNode *inner, ++m; } if (!(*s).divClass.isEmpty()) - out() << "
\n"; + out() << "
\n"; // QTBUG-9504 ++s; } generateFooter(inner); @@ -1591,10 +1591,14 @@ void HtmlGenerator::generateFakeNode(const FakeNode *fake, CodeMarker *marker) Text brief = fake->doc().briefText(); if (fake->subType() == Node::Module && !brief.isEmpty()) { out() << "\n"; + out() << "
\n"; // QTBUG-9504 out() << "

" << "Detailed Description" << "

\n"; } + else + out() << "
\n"; // QTBUG-9504 generateBody(fake, marker); + out() << "
\n"; // QTBUG-9504 generateAlsoList(fake, marker); if (!fake->groupMembers().isEmpty()) { -- cgit v0.12 From c1ce854d745b28e2f14057d29e726b8327034e9b Mon Sep 17 00:00:00 2001 From: miniak Date: Wed, 7 Apr 2010 11:01:03 +0200 Subject: fix QMenu::popup() Merge-request: 551 Reviewed-by: Benjamin Poulain --- src/gui/widgets/qmenu.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/gui/widgets/qmenu.cpp b/src/gui/widgets/qmenu.cpp index 404d46e..42f3a15 100644 --- a/src/gui/widgets/qmenu.cpp +++ b/src/gui/widgets/qmenu.cpp @@ -1913,10 +1913,9 @@ void QMenu::popup(const QPoint &p, QAction *atAction) pos.setX(screen.left() + desktopFrame); } if (pos.y() + size.height() - 1 > screen.bottom() - desktopFrame) { - if(snapToMouse) - pos.setY(qMin(mouse.y() - (size.height() + desktopFrame), screen.bottom()-desktopFrame-size.height()+1)); - else - pos.setY(qMax(p.y() - (size.height() + desktopFrame), screen.bottom()-desktopFrame-size.height()+1)); + const int bestPos = (snapToMouse ? mouse.y() : p.y()) - desktopFrame - size.height() + 1; + const int fallbackPos = screen.bottom() - desktopFrame - size.height() + 1; + pos.setY(qMin(bestPos, fallbackPos)); } else if (pos.y() < screen.top() + desktopFrame) { pos.setY(screen.top() + desktopFrame); } -- cgit v0.12 From ee3a237262071721755075d6ae958aec744f5c87 Mon Sep 17 00:00:00 2001 From: miniak Date: Wed, 7 Apr 2010 11:01:04 +0200 Subject: QMenu::popup() code style fixes Merge-request: 551 Reviewed-by: Benjamin Poulain --- src/gui/widgets/qmenu.cpp | 50 +++++++++++++++++++++++------------------------ 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/src/gui/widgets/qmenu.cpp b/src/gui/widgets/qmenu.cpp index 42f3a15..b752ae2 100644 --- a/src/gui/widgets/qmenu.cpp +++ b/src/gui/widgets/qmenu.cpp @@ -1803,7 +1803,7 @@ QSize QMenu::sizeHint() const void QMenu::popup(const QPoint &p, QAction *atAction) { Q_D(QMenu); - if (d->scroll) { //reset scroll state from last popup + if (d->scroll) { // reset scroll state from last popup d->scroll->scrollOffset = 0; d->scroll->scrollFlags = QMenuPrivate::QMenuScroller::ScrollNone; } @@ -1858,9 +1858,9 @@ void QMenu::popup(const QPoint &p, QAction *atAction) } #endif if (d->ncols > 1) { - pos.setY(screen.top()+desktopFrame); + pos.setY(screen.top() + desktopFrame); } else if (atAction) { - for(int i = 0, above_height = 0; i < d->actions.count(); i++) { + for (int i = 0, above_height = 0; i < d->actions.count(); i++) { QAction *action = d->actions.at(i); if (action == atAction) { int newY = pos.y() - above_height; @@ -1875,7 +1875,7 @@ void QMenu::popup(const QPoint &p, QAction *atAction) if (d->scroll && d->scroll->scrollFlags != QMenuPrivate::QMenuScroller::ScrollNone && !style()->styleHint(QStyle::SH_Menu_FillScreenWithScroll, 0, this)) { int below_height = above_height + d->scroll->scrollOffset; - for(int i2 = i; i2 < d->actionRects.count(); i2++) + for (int i2 = i; i2 < d->actionRects.count(); i2++) below_height += d->actionRects.at(i2).height(); size.setHeight(below_height); } @@ -1888,28 +1888,28 @@ void QMenu::popup(const QPoint &p, QAction *atAction) QPoint mouse = QCursor::pos(); d->mousePopupPos = mouse; - const bool snapToMouse = (QRect(p.x()-3, p.y()-3, 6, 6).contains(mouse)); + const bool snapToMouse = (QRect(p.x() - 3, p.y() - 3, 6, 6).contains(mouse)); if (adjustToDesktop) { - //handle popup falling "off screen" + // handle popup falling "off screen" if (isRightToLeft()) { - if(snapToMouse) //position flowing left from the mouse - pos.setX(mouse.x()-size.width()); + if (snapToMouse) // position flowing left from the mouse + pos.setX(mouse.x() - size.width()); #ifndef QT_NO_MENUBAR - //if in a menubar, it should be right-aligned + // if in a menubar, it should be right-aligned if (qobject_cast(d->causedPopup.widget)) pos.rx() -= size.width(); #endif //QT_NO_MENUBAR - if (pos.x() < screen.left()+desktopFrame) - pos.setX(qMax(p.x(), screen.left()+desktopFrame)); - if (pos.x()+size.width()-1 > screen.right()-desktopFrame) - pos.setX(qMax(p.x()-size.width(), screen.right()-desktopFrame-size.width()+1)); + if (pos.x() < screen.left() + desktopFrame) + pos.setX(qMax(p.x(), screen.left() + desktopFrame)); + if (pos.x() + size.width() - 1 > screen.right() - desktopFrame) + pos.setX(qMax(p.x() - size.width(), screen.right() - desktopFrame - size.width() + 1)); } else { - if (pos.x()+size.width()-1 > screen.right()-desktopFrame) - pos.setX(screen.right()-desktopFrame-size.width()+1); - if (pos.x() < screen.left()+desktopFrame) + if (pos.x() + size.width() - 1 > screen.right() - desktopFrame) + pos.setX(screen.right() - desktopFrame - size.width() + 1); + if (pos.x() < screen.left() + desktopFrame) pos.setX(screen.left() + desktopFrame); } if (pos.y() + size.height() - 1 > screen.bottom() - desktopFrame) { @@ -1922,14 +1922,14 @@ void QMenu::popup(const QPoint &p, QAction *atAction) if (pos.y() < screen.top() + desktopFrame) pos.setY(screen.top() + desktopFrame); - if (pos.y()+size.height()-1 > screen.bottom() - desktopFrame) { + if (pos.y() + size.height() - 1 > screen.bottom() - desktopFrame) { if (d->scroll) { d->scroll->scrollFlags |= uint(QMenuPrivate::QMenuScroller::ScrollDown); int y = qMax(screen.y(),pos.y()); - size.setHeight(screen.bottom()-(desktopFrame*2)-y); + size.setHeight(screen.bottom() - (desktopFrame * 2) - y); } else { // Too big for screen, bias to see bottom of menu (for some reason) - pos.setY(screen.bottom()-size.height()+1); + pos.setY(screen.bottom() - size.height() + 1); } } } @@ -1938,19 +1938,19 @@ void QMenu::popup(const QPoint &p, QAction *atAction) int hGuess = isRightToLeft() ? QEffects::LeftScroll : QEffects::RightScroll; int vGuess = QEffects::DownScroll; if (isRightToLeft()) { - if ((snapToMouse && (pos.x() + size.width()/2 > mouse.x())) || - (qobject_cast(d->causedPopup.widget) && pos.x() + size.width()/2 > d->causedPopup.widget->x())) + if ((snapToMouse && (pos.x() + size.width() / 2 > mouse.x())) || + (qobject_cast(d->causedPopup.widget) && pos.x() + size.width() / 2 > d->causedPopup.widget->x())) hGuess = QEffects::RightScroll; } else { - if ((snapToMouse && (pos.x() + size.width()/2 < mouse.x())) || - (qobject_cast(d->causedPopup.widget) && pos.x() + size.width()/2 < d->causedPopup.widget->x())) + if ((snapToMouse && (pos.x() + size.width() / 2 < mouse.x())) || + (qobject_cast(d->causedPopup.widget) && pos.x() + size.width() / 2 < d->causedPopup.widget->x())) hGuess = QEffects::LeftScroll; } #ifndef QT_NO_MENUBAR - if ((snapToMouse && (pos.y() + size.height()/2 < mouse.y())) || + if ((snapToMouse && (pos.y() + size.height() / 2 < mouse.y())) || (qobject_cast(d->causedPopup.widget) && - pos.y() + size.width()/2 < d->causedPopup.widget->mapToGlobal(d->causedPopup.widget->pos()).y())) + pos.y() + size.width() / 2 < d->causedPopup.widget->mapToGlobal(d->causedPopup.widget->pos()).y())) vGuess = QEffects::UpScroll; #endif if (QApplication::isEffectEnabled(Qt::UI_AnimateMenu)) { -- cgit v0.12 From 6947390e5d331ae653e91acecad70108915328e7 Mon Sep 17 00:00:00 2001 From: miniak Date: Wed, 7 Apr 2010 11:01:05 +0200 Subject: Test case for QMenu::popup() Verifies that the menu shown is fully contained on the screen. The actual menu position on the screen is checked as well. Merge-request: 551 Reviewed-by: Benjamin Poulain --- tests/auto/qmenu/tst_qmenu.cpp | 56 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/tests/auto/qmenu/tst_qmenu.cpp b/tests/auto/qmenu/tst_qmenu.cpp index e10d7ee..4be6fdd 100644 --- a/tests/auto/qmenu/tst_qmenu.cpp +++ b/tests/auto/qmenu/tst_qmenu.cpp @@ -106,6 +106,8 @@ private slots: void pushButtonPopulateOnAboutToShow(); void QTBUG7907_submenus_autoselect(); void QTBUG7411_submenus_activate(); + void menuGeometry_data(); + void menuGeometry(); protected slots: void onActivated(QAction*); void onHighlighted(QAction*); @@ -967,6 +969,60 @@ void tst_QMenu::QTBUG7411_submenus_activate() QTRY_VERIFY(sub1.isVisible()); } +void tst_QMenu::menuGeometry_data() +{ + QTest::addColumn("screen"); + QTest::addColumn("pos"); + QTest::addColumn("expectedPos"); + + QMenu menu("Test Menu"); + for (int i = 0; i < 3; ++i) + menu.addAction("Hello World!"); + + menu.adjustSize(); + + const int screenCount = QApplication::desktop()->screenCount(); + const int desktopFrame = menu.style()->pixelMetric(QStyle::PM_MenuDesktopFrameWidth, 0, &menu); + + for (int i = 0; i < screenCount; ++i) { + const QRect screen = QApplication::desktop()->screenGeometry(i); + + if (screen.width() < menu.width() || screen.height() < menu.height()) + continue; + + QTest::newRow("topLeft") << screen << screen.topLeft() + << QPoint(screen.left() + desktopFrame, screen.top() + desktopFrame); + + QTest::newRow("topRight") << screen << screen.topRight() + << QPoint(screen.right() - desktopFrame - menu.width() + 1, screen.top() + desktopFrame); + + QTest::newRow("bottomLeft") << screen << screen.bottomLeft() + << QPoint(screen.left() + desktopFrame, screen.bottom() - desktopFrame - menu.height() + 1); + + QTest::newRow("bottomRight") << screen << screen.bottomRight() + << QPoint(screen.right() - desktopFrame - menu.width() + 1, screen.bottom() - desktopFrame - menu.height() + 1); + + const QPoint pos = QPoint(screen.right() - qMax(desktopFrame, 20), screen.bottom() - qMax(desktopFrame, 20)); + QTest::newRow("position") << screen << pos + << QPoint(screen.right() - menu.width() + 1, pos.y() - menu.height() + 1); + } +} + +void tst_QMenu::menuGeometry() +{ + QFETCH(QRect, screen); + QFETCH(QPoint, pos); + QFETCH(QPoint, expectedPos); + + QMenu menu("Test Menu"); + for (int i = 0; i < 3; ++i) + menu.addAction("Hello World!"); + + menu.popup(pos); + QTest::qWaitForWindowShown(&menu); + QVERIFY(screen.contains(menu.geometry())); + QCOMPARE(menu.pos(), expectedPos); +} QTEST_MAIN(tst_QMenu) -- cgit v0.12 From eeccdc0cec9a616e740e3b59a6f011bfe703ce09 Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Wed, 7 Apr 2010 11:47:20 +0200 Subject: qdoc: Added many png, js, and css files for new format. Coming soon! Task: QTBUG-9504 --- tools/qdoc3/htmlgenerator.cpp | 3 + tools/qdoc3/pagegenerator.cpp | 2 + tools/qdoc3/test/template/images/api_examples.png | Bin 0 -> 1302 bytes tools/qdoc3/test/template/images/api_lookup.png | Bin 0 -> 1879 bytes tools/qdoc3/test/template/images/api_topics.png | Bin 0 -> 1216 bytes tools/qdoc3/test/template/images/bg_l.png | Bin 0 -> 139 bytes tools/qdoc3/test/template/images/bg_l_blank.png | Bin 0 -> 123 bytes tools/qdoc3/test/template/images/bg_ll.png | Bin 0 -> 514 bytes tools/qdoc3/test/template/images/bg_ll_blank.png | Bin 0 -> 320 bytes tools/qdoc3/test/template/images/bg_lr.png | Bin 0 -> 458 bytes tools/qdoc3/test/template/images/bg_r.png | Bin 0 -> 136 bytes tools/qdoc3/test/template/images/bg_ul.png | Bin 0 -> 516 bytes tools/qdoc3/test/template/images/bg_ul_blank.png | Bin 0 -> 304 bytes tools/qdoc3/test/template/images/bg_ur.png | Bin 0 -> 437 bytes tools/qdoc3/test/template/images/bg_ur_blank.png | Bin 0 -> 437 bytes tools/qdoc3/test/template/images/box_bg.png | Bin 0 -> 129 bytes tools/qdoc3/test/template/images/breadcrumb.png | Bin 0 -> 195 bytes tools/qdoc3/test/template/images/bullet_gt.png | Bin 0 -> 185 bytes tools/qdoc3/test/template/images/bullet_sq.png | Bin 0 -> 117 bytes tools/qdoc3/test/template/images/content_bg.png | Bin 0 -> 1498 bytes .../qdoc3/test/template/images/feedbackground.png | Bin 0 -> 263 bytes tools/qdoc3/test/template/images/form_bg.png | Bin 0 -> 390 bytes tools/qdoc3/test/template/images/horBar.png | Bin 0 -> 2807 bytes tools/qdoc3/test/template/images/page_bg.png | Bin 0 -> 126 bytes tools/qdoc3/test/template/images/print.png | Bin 0 -> 575 bytes tools/qdoc3/test/template/images/qt_guide.png | Bin 0 -> 12685 bytes tools/qdoc3/test/template/images/qt_icon.png | Bin 0 -> 4775 bytes tools/qdoc3/test/template/images/qt_ref_doc.png | Bin 0 -> 2600 bytes tools/qdoc3/test/template/images/qt_tools.png | Bin 0 -> 17508 bytes tools/qdoc3/test/template/images/sep.png | Bin 0 -> 120 bytes .../test/template/images/sprites-combined.png | Bin 0 -> 18070 bytes tools/qdoc3/test/template/scripts/functions.js | 58 + tools/qdoc3/test/template/scripts/jquery.js | 152 +++ tools/qdoc3/test/template/style/style.css | 1150 ++++++++++++++++++++ tools/qdoc3/test/template/style/style_ie6.css | 54 + tools/qdoc3/test/template/style/style_ie7.css | 19 + tools/qdoc3/test/template/style/style_ie8.css | 0 37 files changed, 1438 insertions(+) create mode 100755 tools/qdoc3/test/template/images/api_examples.png create mode 100755 tools/qdoc3/test/template/images/api_lookup.png create mode 100755 tools/qdoc3/test/template/images/api_topics.png create mode 100755 tools/qdoc3/test/template/images/bg_l.png create mode 100755 tools/qdoc3/test/template/images/bg_l_blank.png create mode 100755 tools/qdoc3/test/template/images/bg_ll.png create mode 100755 tools/qdoc3/test/template/images/bg_ll_blank.png create mode 100755 tools/qdoc3/test/template/images/bg_lr.png create mode 100755 tools/qdoc3/test/template/images/bg_r.png create mode 100755 tools/qdoc3/test/template/images/bg_ul.png create mode 100755 tools/qdoc3/test/template/images/bg_ul_blank.png create mode 100755 tools/qdoc3/test/template/images/bg_ur.png create mode 100755 tools/qdoc3/test/template/images/bg_ur_blank.png create mode 100755 tools/qdoc3/test/template/images/box_bg.png create mode 100755 tools/qdoc3/test/template/images/breadcrumb.png create mode 100755 tools/qdoc3/test/template/images/bullet_gt.png create mode 100755 tools/qdoc3/test/template/images/bullet_sq.png create mode 100755 tools/qdoc3/test/template/images/content_bg.png create mode 100755 tools/qdoc3/test/template/images/feedbackground.png create mode 100755 tools/qdoc3/test/template/images/form_bg.png create mode 100755 tools/qdoc3/test/template/images/horBar.png create mode 100755 tools/qdoc3/test/template/images/page_bg.png create mode 100755 tools/qdoc3/test/template/images/print.png create mode 100755 tools/qdoc3/test/template/images/qt_guide.png create mode 100755 tools/qdoc3/test/template/images/qt_icon.png create mode 100755 tools/qdoc3/test/template/images/qt_ref_doc.png create mode 100755 tools/qdoc3/test/template/images/qt_tools.png create mode 100755 tools/qdoc3/test/template/images/sep.png create mode 100755 tools/qdoc3/test/template/images/sprites-combined.png create mode 100755 tools/qdoc3/test/template/scripts/functions.js create mode 100755 tools/qdoc3/test/template/scripts/jquery.js create mode 100755 tools/qdoc3/test/template/style/style.css create mode 100755 tools/qdoc3/test/template/style/style_ie6.css create mode 100755 tools/qdoc3/test/template/style/style_ie7.css create mode 100755 tools/qdoc3/test/template/style/style_ie8.css diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp index df9662f..8d06e11 100644 --- a/tools/qdoc3/htmlgenerator.cpp +++ b/tools/qdoc3/htmlgenerator.cpp @@ -1861,6 +1861,9 @@ void HtmlGenerator::generateIncludes(const InnerNode *inner, CodeMarker *marker) } } +/*! + Generates a table of contents begining at \a node. + */ void HtmlGenerator::generateTableOfContents(const Node *node, CodeMarker *marker, Doc::SectioningUnit sectioningUnit, diff --git a/tools/qdoc3/pagegenerator.cpp b/tools/qdoc3/pagegenerator.cpp index f0f14fe..b701565 100644 --- a/tools/qdoc3/pagegenerator.cpp +++ b/tools/qdoc3/pagegenerator.cpp @@ -217,6 +217,8 @@ void PageGenerator::generateInnerNode(const InnerNode *node, if (node->parent() != 0) { beginSubPage(node->location(), fileName(node)); + // + //generateTableOfContents(node,marker,Doc::Section4,1,relative); if (node->type() == Node::Namespace || node->type() == Node::Class) { generateClassLikeNode(node, marker); } diff --git a/tools/qdoc3/test/template/images/api_examples.png b/tools/qdoc3/test/template/images/api_examples.png new file mode 100755 index 0000000..1fcbc96 Binary files /dev/null and b/tools/qdoc3/test/template/images/api_examples.png differ diff --git a/tools/qdoc3/test/template/images/api_lookup.png b/tools/qdoc3/test/template/images/api_lookup.png new file mode 100755 index 0000000..1cffd5e Binary files /dev/null and b/tools/qdoc3/test/template/images/api_lookup.png differ diff --git a/tools/qdoc3/test/template/images/api_topics.png b/tools/qdoc3/test/template/images/api_topics.png new file mode 100755 index 0000000..a76a6c3 Binary files /dev/null and b/tools/qdoc3/test/template/images/api_topics.png differ diff --git a/tools/qdoc3/test/template/images/bg_l.png b/tools/qdoc3/test/template/images/bg_l.png new file mode 100755 index 0000000..95470c7 Binary files /dev/null and b/tools/qdoc3/test/template/images/bg_l.png differ diff --git a/tools/qdoc3/test/template/images/bg_l_blank.png b/tools/qdoc3/test/template/images/bg_l_blank.png new file mode 100755 index 0000000..e0eca3f Binary files /dev/null and b/tools/qdoc3/test/template/images/bg_l_blank.png differ diff --git a/tools/qdoc3/test/template/images/bg_ll.png b/tools/qdoc3/test/template/images/bg_ll.png new file mode 100755 index 0000000..99796e7 Binary files /dev/null and b/tools/qdoc3/test/template/images/bg_ll.png differ diff --git a/tools/qdoc3/test/template/images/bg_ll_blank.png b/tools/qdoc3/test/template/images/bg_ll_blank.png new file mode 100755 index 0000000..95a1c45 Binary files /dev/null and b/tools/qdoc3/test/template/images/bg_ll_blank.png differ diff --git a/tools/qdoc3/test/template/images/bg_lr.png b/tools/qdoc3/test/template/images/bg_lr.png new file mode 100755 index 0000000..fef1d17 Binary files /dev/null and b/tools/qdoc3/test/template/images/bg_lr.png differ diff --git a/tools/qdoc3/test/template/images/bg_r.png b/tools/qdoc3/test/template/images/bg_r.png new file mode 100755 index 0000000..42a35a5 Binary files /dev/null and b/tools/qdoc3/test/template/images/bg_r.png differ diff --git a/tools/qdoc3/test/template/images/bg_ul.png b/tools/qdoc3/test/template/images/bg_ul.png new file mode 100755 index 0000000..303181f Binary files /dev/null and b/tools/qdoc3/test/template/images/bg_ul.png differ diff --git a/tools/qdoc3/test/template/images/bg_ul_blank.png b/tools/qdoc3/test/template/images/bg_ul_blank.png new file mode 100755 index 0000000..7051261 Binary files /dev/null and b/tools/qdoc3/test/template/images/bg_ul_blank.png differ diff --git a/tools/qdoc3/test/template/images/bg_ur.png b/tools/qdoc3/test/template/images/bg_ur.png new file mode 100755 index 0000000..bfa51a4 Binary files /dev/null and b/tools/qdoc3/test/template/images/bg_ur.png differ diff --git a/tools/qdoc3/test/template/images/bg_ur_blank.png b/tools/qdoc3/test/template/images/bg_ur_blank.png new file mode 100755 index 0000000..5779961 Binary files /dev/null and b/tools/qdoc3/test/template/images/bg_ur_blank.png differ diff --git a/tools/qdoc3/test/template/images/box_bg.png b/tools/qdoc3/test/template/images/box_bg.png new file mode 100755 index 0000000..232655a Binary files /dev/null and b/tools/qdoc3/test/template/images/box_bg.png differ diff --git a/tools/qdoc3/test/template/images/breadcrumb.png b/tools/qdoc3/test/template/images/breadcrumb.png new file mode 100755 index 0000000..f0571ce Binary files /dev/null and b/tools/qdoc3/test/template/images/breadcrumb.png differ diff --git a/tools/qdoc3/test/template/images/bullet_gt.png b/tools/qdoc3/test/template/images/bullet_gt.png new file mode 100755 index 0000000..8875925 Binary files /dev/null and b/tools/qdoc3/test/template/images/bullet_gt.png differ diff --git a/tools/qdoc3/test/template/images/bullet_sq.png b/tools/qdoc3/test/template/images/bullet_sq.png new file mode 100755 index 0000000..db85ee3 Binary files /dev/null and b/tools/qdoc3/test/template/images/bullet_sq.png differ diff --git a/tools/qdoc3/test/template/images/content_bg.png b/tools/qdoc3/test/template/images/content_bg.png new file mode 100755 index 0000000..416397d Binary files /dev/null and b/tools/qdoc3/test/template/images/content_bg.png differ diff --git a/tools/qdoc3/test/template/images/feedbackground.png b/tools/qdoc3/test/template/images/feedbackground.png new file mode 100755 index 0000000..3a38d99 Binary files /dev/null and b/tools/qdoc3/test/template/images/feedbackground.png differ diff --git a/tools/qdoc3/test/template/images/form_bg.png b/tools/qdoc3/test/template/images/form_bg.png new file mode 100755 index 0000000..bf2ee54 Binary files /dev/null and b/tools/qdoc3/test/template/images/form_bg.png differ diff --git a/tools/qdoc3/test/template/images/horBar.png b/tools/qdoc3/test/template/images/horBar.png new file mode 100755 index 0000000..100fe91 Binary files /dev/null and b/tools/qdoc3/test/template/images/horBar.png differ diff --git a/tools/qdoc3/test/template/images/page_bg.png b/tools/qdoc3/test/template/images/page_bg.png new file mode 100755 index 0000000..fb7d051 Binary files /dev/null and b/tools/qdoc3/test/template/images/page_bg.png differ diff --git a/tools/qdoc3/test/template/images/print.png b/tools/qdoc3/test/template/images/print.png new file mode 100755 index 0000000..4581da1 Binary files /dev/null and b/tools/qdoc3/test/template/images/print.png differ diff --git a/tools/qdoc3/test/template/images/qt_guide.png b/tools/qdoc3/test/template/images/qt_guide.png new file mode 100755 index 0000000..9f53a05 Binary files /dev/null and b/tools/qdoc3/test/template/images/qt_guide.png differ diff --git a/tools/qdoc3/test/template/images/qt_icon.png b/tools/qdoc3/test/template/images/qt_icon.png new file mode 100755 index 0000000..fbaee35 Binary files /dev/null and b/tools/qdoc3/test/template/images/qt_icon.png differ diff --git a/tools/qdoc3/test/template/images/qt_ref_doc.png b/tools/qdoc3/test/template/images/qt_ref_doc.png new file mode 100755 index 0000000..141488b Binary files /dev/null and b/tools/qdoc3/test/template/images/qt_ref_doc.png differ diff --git a/tools/qdoc3/test/template/images/qt_tools.png b/tools/qdoc3/test/template/images/qt_tools.png new file mode 100755 index 0000000..cc24179 Binary files /dev/null and b/tools/qdoc3/test/template/images/qt_tools.png differ diff --git a/tools/qdoc3/test/template/images/sep.png b/tools/qdoc3/test/template/images/sep.png new file mode 100755 index 0000000..c895646 Binary files /dev/null and b/tools/qdoc3/test/template/images/sep.png differ diff --git a/tools/qdoc3/test/template/images/sprites-combined.png b/tools/qdoc3/test/template/images/sprites-combined.png new file mode 100755 index 0000000..4186022 Binary files /dev/null and b/tools/qdoc3/test/template/images/sprites-combined.png differ diff --git a/tools/qdoc3/test/template/scripts/functions.js b/tools/qdoc3/test/template/scripts/functions.js new file mode 100755 index 0000000..c510410 --- /dev/null +++ b/tools/qdoc3/test/template/scripts/functions.js @@ -0,0 +1,58 @@ + +/* START non link areas where cursor should change to pointing hand */ +$('.t_button').mouseover(function() { + $(this).css('cursor','pointer'); + /*document.getElementById(this.id).style.cursor='pointer';*/ +}); + +/* END non link areas */ +$('#smallA').click(function() { + $('.content .heading,.content h1, .content h2, .content h3, .content p, .content li, .content table').css('font-size','smaller'); + $('.t_button').removeClass('active') + $(this).addClass('active') +}); + +$('#medA').click(function() { + $('.content .heading').css('font','600 16px/1 Arial'); + $('.content h1').css('font','600 18px/1.2 Arial'); + $('.content h2').css('font','600 16px/1.2 Arial'); + $('.content h3').css('font','600 14px/1.2 Arial'); + $('.content p').css('font','13px/1.2 Verdana'); + $('.content li').css('font','600 10pt/1 Verdana'); + $('.content li').css('line-height','14px'); + $('.content table').css('font','13px/1.2 Verdana'); + $('.t_button').removeClass('active') + $(this).addClass('active') +}); + +$('#bigA').click(function() { + $('.content .heading,.content h1, .content h2, .content h3, .content p, .content li, .content table').css('font-size','large'); + $('.content li').css('line-height','14px'); + $('.t_button').removeClass('active') + $(this).addClass('active') +}); + +function doSearch(str){ + +if (str.length>3) + { + alert('start search'); + // document.getElementById("refWrapper").innerHTML=""; + return; + } + else + return; + +// var url="indexSearch.php"; +// url=url+"?q="+str; + // url=url+"&sid="+Math.random(); + // var url="http://localhost:8983/solr/select?"; + // url=url+"&q="+str; + // url=url+"&fq=&start=0&rows=10&fl=&qt=&wt=&explainOther=&hl.fl="; + + // $.get(url, function(data){ + // alert(data); + // document.getElementById("refWrapper").innerHTML=data; + //}); + +} \ No newline at end of file diff --git a/tools/qdoc3/test/template/scripts/jquery.js b/tools/qdoc3/test/template/scripts/jquery.js new file mode 100755 index 0000000..0c7294c --- /dev/null +++ b/tools/qdoc3/test/template/scripts/jquery.js @@ -0,0 +1,152 @@ +/*! + * jQuery JavaScript Library v1.4.1 + * http://jquery.com/ + * + * Copyright 2010, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2010, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Mon Jan 25 19:43:33 2010 -0500 + */ +(function(z,v){function la(){if(!c.isReady){try{r.documentElement.doScroll("left")}catch(a){setTimeout(la,1);return}c.ready()}}function Ma(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,i){var j=a.length;if(typeof b==="object"){for(var n in b)X(a,n,b[n],f,e,d);return a}if(d!==v){f=!i&&f&&c.isFunction(d);for(n=0;n-1){i=j.data;i.beforeFilter&&i.beforeFilter[a.type]&&!i.beforeFilter[a.type](a)||f.push(j.selector)}else delete x[o]}i=c(a.target).closest(f, +a.currentTarget);m=0;for(s=i.length;m)[^>]*$|^#([\w-]+)$/,Qa=/^.[^:#\[\.,]*$/,Ra=/\S/,Sa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Ta=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,O=navigator.userAgent, +va=false,P=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,Q=Array.prototype.slice,wa=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(typeof a==="string")if((d=Pa.exec(a))&&(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:r;if(a=Ta.exec(a))if(c.isPlainObject(b)){a=[r.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=ra([d[1]], +[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}}else{if(b=r.getElementById(d[2])){if(b.id!==d[2])return S.find(a);this.length=1;this[0]=b}this.context=r;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=r;a=r.getElementsByTagName(a)}else return!b||b.jquery?(b||S).find(a):c(b).find(a);else if(c.isFunction(a))return S.ready(a);if(a.selector!==v){this.selector=a.selector;this.context=a.context}return c.isArray(a)?this.setArray(a):c.makeArray(a, +this)},selector:"",jquery:"1.4.1",length:0,size:function(){return this.length},toArray:function(){return Q.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){a=c(a||null);a.prevObject=this;a.context=this.context;if(b==="find")a.selector=this.selector+(this.selector?" ":"")+d;else if(b)a.selector=this.selector+"."+b+"("+d+")";return a},setArray:function(a){this.length=0;ba.apply(this,a);return this},each:function(a,b){return c.each(this, +a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(r,c);else P&&P.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(Q.apply(this,arguments),"slice",Q.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this,function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice}; +c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,i,j,n;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b
a";var e=d.getElementsByTagName("*"),i=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!i)){c.support= +{leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(i.getAttribute("style")),hrefNormalized:i.getAttribute("href")==="/a",opacity:/^0.55$/.test(i.style.opacity),cssFloat:!!i.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:r.createElement("select").appendChild(r.createElement("option")).selected,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null}; +b.type="text/javascript";try{b.appendChild(r.createTextNode("window."+f+"=1;"))}catch(j){}a.insertBefore(b,a.firstChild);if(z[f]){c.support.scriptEval=true;delete z[f]}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function n(){c.support.noCloneEvent=false;d.detachEvent("onclick",n)});d.cloneNode(true).fireEvent("onclick")}d=r.createElement("div");d.innerHTML="";a=r.createDocumentFragment();a.appendChild(d.firstChild); +c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var n=r.createElement("div");n.style.width=n.style.paddingLeft="1px";r.body.appendChild(n);c.boxModel=c.support.boxModel=n.offsetWidth===2;r.body.removeChild(n).style.display="none"});a=function(n){var o=r.createElement("div");n="on"+n;var m=n in o;if(!m){o.setAttribute(n,"return;");m=typeof o[n]==="function"}return m};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=i=null}})();c.props= +{"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ua=0,xa={},Va={};c.extend({cache:{},expando:G,noData:{embed:true,object:true,applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==z?xa:a;var f=a[G],e=c.cache;if(!b&&!f)return null;f||(f=++Ua);if(typeof b==="object"){a[G]=f;e=e[f]=c.extend(true, +{},b)}else e=e[f]?e[f]:typeof d==="undefined"?Va:(e[f]={});if(d!==v){a[G]=f;e[b]=d}return typeof b==="string"?e[b]:e}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==z?xa:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{try{delete a[G]}catch(i){a.removeAttribute&&a.removeAttribute(G)}delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this, +a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===v){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===v&&this.length)f=c.data(this[0],a);return f===v&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this,a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d); +return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===v)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]|| +a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var ya=/[\n\t]/g,ca=/\s+/,Wa=/\r/g,Xa=/href|src|style/,Ya=/(button|input)/i,Za=/(button|input|object|select|textarea)/i,$a=/^(a|area)$/i,za=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(o){var m= +c(this);m.addClass(a.call(this,o,m.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d-1)return true;return false},val:function(a){if(a===v){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value|| +{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var i=b?d:0;for(d=b?d+1:e.length;i=0;else if(c.nodeName(this,"select")){var x=c.makeArray(s);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),x)>=0});if(!x.length)this.selectedIndex=-1}else this.value=s}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return v;if(f&&b in c.attrFn)return c(a)[b](d); +f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==v;b=f&&c.props[b]||b;if(a.nodeType===1){var i=Xa.test(b);if(b in a&&f&&!i){if(e){b==="type"&&Ya.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:Za.test(a.nodeName)||$a.test(a.nodeName)&&a.href?0:v;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText= +""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&i?a.getAttribute(b,2):a.getAttribute(b);return a===null?v:a}return c.style(a,b,d)}});var ab=function(a){return a.replace(/[^\w\s\.\|`]/g,function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==z&&!a.frameElement)a=z;if(!d.guid)d.guid=c.guid++;if(f!==v){d=c.proxy(d);d.data=f}var e=c.data(a,"events")||c.data(a,"events",{}),i=c.data(a,"handle"),j;if(!i){j= +function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(j.elem,arguments):v};i=c.data(a,"handle",j)}if(i){i.elem=a;b=b.split(/\s+/);for(var n,o=0;n=b[o++];){var m=n.split(".");n=m.shift();if(o>1){d=c.proxy(d);if(f!==v)d.data=f}d.type=m.slice(0).sort().join(".");var s=e[n],x=this.special[n]||{};if(!s){s=e[n]={};if(!x.setup||x.setup.call(a,f,m,d)===false)if(a.addEventListener)a.addEventListener(n,i,false);else a.attachEvent&&a.attachEvent("on"+n,i)}if(x.add)if((m=x.add.call(a, +d,f,m,s))&&c.isFunction(m)){m.guid=m.guid||d.guid;m.data=m.data||d.data;m.type=m.type||d.type;d=m}s[d.guid]=d;this.global[n]=true}a=null}}},global:{},remove:function(a,b,d){if(!(a.nodeType===3||a.nodeType===8)){var f=c.data(a,"events"),e,i,j;if(f){if(b===v||typeof b==="string"&&b.charAt(0)===".")for(i in f)this.remove(a,i+(b||""));else{if(b.type){d=b.handler;b=b.type}b=b.split(/\s+/);for(var n=0;i=b[n++];){var o=i.split(".");i=o.shift();var m=!o.length,s=c.map(o.slice(0).sort(),ab);s=new RegExp("(^|\\.)"+ +s.join("\\.(?:.*\\.)?")+"(\\.|$)");var x=this.special[i]||{};if(f[i]){if(d){j=f[i][d.guid];delete f[i][d.guid]}else for(var A in f[i])if(m||s.test(f[i][A].type))delete f[i][A];x.remove&&x.remove.call(a,o,j);for(e in f[i])break;if(!e){if(!x.teardown||x.teardown.call(a,o)===false)if(a.removeEventListener)a.removeEventListener(i,c.data(a,"handle"),false);else a.detachEvent&&a.detachEvent("on"+i,c.data(a,"handle"));e=null;delete f[i]}}}}for(e in f)break;if(!e){if(A=c.data(a,"handle"))A.elem=null;c.removeData(a, +"events");c.removeData(a,"handle")}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type=e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();this.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return v;a.result=v;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d, +b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(i){}if(!a.isPropagationStopped()&&f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){d=a.target;var j;if(!(c.nodeName(d,"a")&&e==="click")&&!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()])){try{if(d[e]){if(j=d["on"+e])d["on"+e]=null;this.triggered=true;d[e]()}}catch(n){}if(j)d["on"+e]=j;this.triggered=false}}},handle:function(a){var b, +d;a=arguments[0]=c.event.fix(a||z.event);a.currentTarget=this;d=a.type.split(".");a.type=d.shift();b=!d.length&&!a.exclusive;var f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)");d=(c.data(this,"events")||{})[a.type];for(var e in d){var i=d[e];if(b||f.test(i.type)){a.handler=i;a.data=i.data;i=i.apply(this,arguments);if(i!==v){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), +fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||r;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=r.documentElement;d=r.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop|| +d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==v)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a,b){c.extend(a,b||{});a.guid+=b.selector+b.live;b.liveProxy=a;c.event.add(this,b.live,na,b)},remove:function(a){if(a.length){var b= +0,d=new RegExp("(^|\\.)"+a[0]+"(\\.|$)");c.each(c.data(this,"events").live||{},function(){d.test(this.type)&&b++});b<1&&c.event.remove(this,a[0],na)}},special:{}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true}; +c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y,isImmediatePropagationStopped:Y};var Aa=function(a){for(var b= +a.relatedTarget;b&&b!==this;)try{b=b.parentNode}catch(d){break}if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}},Ba=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ba:Aa,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ba:Aa)}}});if(!c.support.submitBubbles)c.event.special.submit={setup:function(a,b,d){if(this.nodeName.toLowerCase()!== +"form"){c.event.add(this,"click.specialSubmit."+d.guid,function(f){var e=f.target,i=e.type;if((i==="submit"||i==="image")&&c(e).closest("form").length)return ma("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit."+d.guid,function(f){var e=f.target,i=e.type;if((i==="text"||i==="password")&&c(e).closest("form").length&&f.keyCode===13)return ma("submit",this,arguments)})}else return false},remove:function(a,b){c.event.remove(this,"click.specialSubmit"+(b?"."+b.guid:""));c.event.remove(this, +"keypress.specialSubmit"+(b?"."+b.guid:""))}};if(!c.support.changeBubbles){var da=/textarea|input|select/i;function Ca(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d}function ea(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Ca(d);if(a.type!=="focusout"|| +d.type!=="radio")c.data(d,"_change_data",e);if(!(f===v||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}}c.event.special.change={filters:{focusout:ea,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return ea.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return ea.call(this,a)},beforeactivate:function(a){a= +a.target;a.nodeName.toLowerCase()==="input"&&a.type==="radio"&&c.data(a,"_change_data",Ca(a))}},setup:function(a,b,d){for(var f in T)c.event.add(this,f+".specialChange."+d.guid,T[f]);return da.test(this.nodeName)},remove:function(a,b){for(var d in T)c.event.remove(this,d+".specialChange"+(b?"."+b.guid:""),T[d]);return da.test(this.nodeName)}};var T=c.event.special.change.filters}r.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this, +f)}c.event.special[b]={setup:function(){this.addEventListener(a,d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var i in d)this[b](i,f,d[i],e);return this}if(c.isFunction(f)){e=f;f=v}var j=b==="one"?c.proxy(e,function(n){c(this).unbind(n,j);return e.apply(this,arguments)}):e;return d==="unload"&&b!=="one"?this.one(d,f,e):this.each(function(){c.event.add(this,d,j,f)})}});c.fn.extend({unbind:function(a, +b){if(typeof a==="object"&&!a.preventDefault){for(var d in a)this.unbind(d,a[d]);return this}return this.each(function(){c.event.remove(this,a,b)})},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}},toggle:function(a){for(var b=arguments,d=1;d0){y=t;break}}t=t[g]}l[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,i=Object.prototype.toString,j=false,n=true;[0,0].sort(function(){n=false;return 0});var o=function(g,h,k,l){k=k||[];var q=h=h||r;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g|| +typeof g!=="string")return k;for(var p=[],u,t,y,R,H=true,M=w(h),I=g;(f.exec(""),u=f.exec(I))!==null;){I=u[3];p.push(u[1]);if(u[2]){R=u[3];break}}if(p.length>1&&s.exec(g))if(p.length===2&&m.relative[p[0]])t=fa(p[0]+p[1],h);else for(t=m.relative[p[0]]?[h]:o(p.shift(),h);p.length;){g=p.shift();if(m.relative[g])g+=p.shift();t=fa(g,t)}else{if(!l&&p.length>1&&h.nodeType===9&&!M&&m.match.ID.test(p[0])&&!m.match.ID.test(p[p.length-1])){u=o.find(p.shift(),h,M);h=u.expr?o.filter(u.expr,u.set)[0]:u.set[0]}if(h){u= +l?{expr:p.pop(),set:A(l)}:o.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=u.expr?o.filter(u.expr,u.set):u.set;if(p.length>0)y=A(t);else H=false;for(;p.length;){var D=p.pop();u=D;if(m.relative[D])u=p.pop();else D="";if(u==null)u=h;m.relative[D](y,u,M)}}else y=[]}y||(y=t);y||o.error(D||g);if(i.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))k.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&& +y[g].nodeType===1&&k.push(t[g]);else k.push.apply(k,y);else A(y,k);if(R){o(R,q,k,l);o.uniqueSort(k)}return k};o.uniqueSort=function(g){if(C){j=n;g.sort(C);if(j)for(var h=1;h":function(g,h){var k=typeof h==="string";if(k&&!/\W/.test(h)){h=h.toLowerCase();for(var l=0,q=g.length;l=0))k||l.push(u);else if(k)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&& +"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,k,l,q,p){h=g[1].replace(/\\/g,"");if(!p&&m.attrMap[h])g[1]=m.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,k,l,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=o(g[3],null,null,h);else{g=o.filter(g[3],h,k,true^q);k||l.push.apply(l,g);return false}else if(m.match.POS.test(g[0])||m.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true); +return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,k){return!!o(k[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"=== +g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,h){return h===0},last:function(g,h,k,l){return h===l.length-1},even:function(g,h){return h%2=== +0},odd:function(g,h){return h%2===1},lt:function(g,h,k){return hk[3]-0},nth:function(g,h,k){return k[3]-0===h},eq:function(g,h,k){return k[3]-0===h}},filter:{PSEUDO:function(g,h,k,l){var q=h[1],p=m.filters[q];if(p)return p(g,k,h,l);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h=h[3];k=0;for(l=h.length;k= +0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var k=h[1];g=m.attrHandle[k]?m.attrHandle[k](g):g[k]!=null?g[k]:g.getAttribute(k);k=g+"";var l=h[2];h=h[4];return g==null?l==="!=":l==="="?k===h:l==="*="?k.indexOf(h)>=0:l==="~="?(" "+k+" ").indexOf(h)>=0:!h?k&&g!==false:l==="!="?k!==h:l==="^="? +k.indexOf(h)===0:l==="$="?k.substr(k.length-h.length)===h:l==="|="?k===h||k.substr(0,h.length+1)===h+"-":false},POS:function(g,h,k,l){var q=m.setFilters[h[2]];if(q)return q(g,k,h,l)}}},s=m.match.POS;for(var x in m.match){m.match[x]=new RegExp(m.match[x].source+/(?![^\[]*\])(?![^\(]*\))/.source);m.leftMatch[x]=new RegExp(/(^(?:.|\r|\n)*?)/.source+m.match[x].source.replace(/\\(\d+)/g,function(g,h){return"\\"+(h-0+1)}))}var A=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g}; +try{Array.prototype.slice.call(r.documentElement.childNodes,0)}catch(B){A=function(g,h){h=h||[];if(i.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var k=0,l=g.length;k";var k=r.documentElement;k.insertBefore(g,k.firstChild);if(r.getElementById(h)){m.find.ID=function(l,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(l[1]))?q.id===l[1]||typeof q.getAttributeNode!=="undefined"&&q.getAttributeNode("id").nodeValue===l[1]?[q]:v:[]};m.filter.ID=function(l,q){var p=typeof l.getAttributeNode!=="undefined"&&l.getAttributeNode("id"); +return l.nodeType===1&&p&&p.nodeValue===q}}k.removeChild(g);k=g=null})();(function(){var g=r.createElement("div");g.appendChild(r.createComment(""));if(g.getElementsByTagName("*").length>0)m.find.TAG=function(h,k){k=k.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var l=0;k[l];l++)k[l].nodeType===1&&h.push(k[l]);k=h}return k};g.innerHTML="";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")m.attrHandle.href=function(h){return h.getAttribute("href", +2)};g=null})();r.querySelectorAll&&function(){var g=o,h=r.createElement("div");h.innerHTML="

";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){o=function(l,q,p,u){q=q||r;if(!u&&q.nodeType===9&&!w(q))try{return A(q.querySelectorAll(l),p)}catch(t){}return g(l,q,p,u)};for(var k in g)o[k]=g[k];h=null}}();(function(){var g=r.createElement("div");g.innerHTML="
";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length=== +0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){m.order.splice(1,0,"CLASS");m.find.CLASS=function(h,k,l){if(typeof k.getElementsByClassName!=="undefined"&&!l)return k.getElementsByClassName(h[1])};g=null}}})();var E=r.compareDocumentPosition?function(g,h){return g.compareDocumentPosition(h)&16}:function(g,h){return g!==h&&(g.contains?g.contains(h):true)},w=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},fa=function(g,h){var k=[], +l="",q;for(h=h.nodeType?[h]:h;q=m.match.PSEUDO.exec(g);){l+=q[0];g=g.replace(m.match.PSEUDO,"")}g=m.relative[g]?g+"*":g;q=0;for(var p=h.length;q=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f0)for(var i=d;i0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,i={},j;if(f&&a.length){e=0;for(var n=a.length;e +-1:c(f).is(e)){d.push({selector:j,elem:f});delete i[j]}}f=f.parentNode}}return d}var o=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(m,s){for(;s&&s.ownerDocument&&s!==b;){if(o?o.index(s)>-1:c(s).is(a))return s;s=s.parentNode}return null})},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(), +a);return this.pushStack(pa(a[0])||pa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")}, +nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);bb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e): +e;if((this.length>1||db.test(f))&&cb.test(a))e=e.reverse();return this.pushStack(e,a,Q.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===v||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!== +b&&d.push(a);return d}});var Fa=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ga=/(<([\w:]+)[^>]*?)\/>/g,eb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,Ha=/<([\w:]+)/,fb=/"},F={option:[1,""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"], +col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div
","
"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==v)return this.empty().append((this[0]&&this[0].ownerDocument||r).createTextNode(a));return c.getText(this)}, +wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length? +d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments, +false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&& +!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Fa,"").replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){qa(this,b);qa(this.find("*"),b.find("*"))}return b},html:function(a){if(a===v)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Fa,""):null;else if(typeof a==="string"&&!/ + + +#endif + void HtmlGenerator::generateHeader(const QString& title, const Node *node, CodeMarker *marker, bool mainPage) { out() << QString("\n").arg(outputEncoding); - + out() << "\n"; + out() << "\n"; + out() << "\n"; + out() << " \n"; + QString shortVersion; + shortVersion = project + " " + shortVersion + ": "; + if (node && !node->doc().location().isEmpty()) + out() << "\n"; + + shortVersion = myTree->version(); + if (shortVersion.count(QChar('.')) == 2) + shortVersion.truncate(shortVersion.lastIndexOf(QChar('.'))); + if (!shortVersion.isEmpty()) { + if (project == "QSA") + shortVersion = "QSA " + shortVersion + ": "; + else + shortVersion = "Qt " + shortVersion + ": "; + } + + out() << " " << shortVersion << protectEnc(title) << "\n"; + + //out() << " Qt Reference Documentation"; + out() << " \n"; + out() << " \n"; + out() << " \n"; + out() << " \n"; + out() << " \n"; + out() << " \n"; + out() << " \n"; + out() << "\n"; + +#if 0 out() << "\n"; out() << QString("\n").arg(naturalLanguage); @@ -1795,14 +1862,16 @@ void HtmlGenerator::generateHeader(const QString& title, } out() << "\n" - "\n"; + #endif + out() << "\n"; if (mainPage) generateMacRef(node, marker); out() << QString(postHeader).replace("\\" + COMMAND_VERSION, myTree->version()); - +#if 0 if (node && !node->links().empty()) out() << "

\n" << navigationLinks << "

\n"; +#endif } void HtmlGenerator::generateTitle(const QString& title, @@ -2179,7 +2248,7 @@ void HtmlGenerator::generateCompactList(const Node *relative, QString commonPrefix) { const int NumParagraphs = 37; // '0' to '9', 'A' to 'Z', '_' - const int NumColumns = 4; // number of columns in the result + const int NumColumns = 2; // number of columns in the result if (classMap.isEmpty()) return; diff --git a/tools/qdoc3/location.cpp b/tools/qdoc3/location.cpp index 19625da..dee87d1 100644 --- a/tools/qdoc3/location.cpp +++ b/tools/qdoc3/location.cpp @@ -265,6 +265,8 @@ void Location::error(const QString& message, const QString& details) const void Location::fatal(const QString& message, const QString& details) const { emitMessage(Error, message, details); + information(message); + information(details); information("Aborting"); exit(EXIT_FAILURE); } diff --git a/tools/qdoc3/test/assistant.qdocconf b/tools/qdoc3/test/assistant.qdocconf index 63455f1..5308afd 100644 --- a/tools/qdoc3/test/assistant.qdocconf +++ b/tools/qdoc3/test/assistant.qdocconf @@ -40,6 +40,7 @@ exampledirs = $QT_SOURCE_TREE \ $QT_SOURCE_TREE/examples \ $QT_SOURCE_TREE/doc/src -imagedirs = $QT_SOURCE_TREE/doc/src/images +imagedirs = $QT_SOURCE_TREE/doc/src/images \ + $QT_SOURCE_TREE/doc/src/template/images outputdir = $QT_BUILD_TREE/doc-build/html-assistant base = file:$QT_BUILD_TREE/doc-build/html-assistant diff --git a/tools/qdoc3/test/designer.qdocconf b/tools/qdoc3/test/designer.qdocconf index b0c88f1..2eb3d96 100644 --- a/tools/qdoc3/test/designer.qdocconf +++ b/tools/qdoc3/test/designer.qdocconf @@ -46,6 +46,7 @@ exampledirs = $QT_SOURCE_TREE \ $QT_SOURCE_TREE/examples \ $QT_SOURCE_TREE/doc/src -imagedirs = $QT_SOURCE_TREE/doc/src/images +imagedirs = $QT_SOURCE_TREE/doc/src/images \ + $QT_SOURCE_TREE/doc/src/template/images outputdir = $QT_BUILD_TREE/doc-build/html-designer base = file:$QT_BUILD_TREE/doc-build/html-designer diff --git a/tools/qdoc3/test/jambi.qdocconf b/tools/qdoc3/test/jambi.qdocconf index 04bb51b..aa87826 100644 --- a/tools/qdoc3/test/jambi.qdocconf +++ b/tools/qdoc3/test/jambi.qdocconf @@ -16,7 +16,8 @@ outputdir = $JAMBI/doc/html/com/trolltech/qt imagedirs = $QTDIR/doc/src/images \ $QTDIR/examples \ $JAMBI/doc/src/images \ - ../doc/src/images + ../doc/src/images \ + $QTDIR/doc/src/template/images extraimages.javadoc = qt-logo \ qt-logo.png diff --git a/tools/qdoc3/test/linguist.qdocconf b/tools/qdoc3/test/linguist.qdocconf index 6acd2c6..ac536be 100644 --- a/tools/qdoc3/test/linguist.qdocconf +++ b/tools/qdoc3/test/linguist.qdocconf @@ -42,6 +42,7 @@ exampledirs = $QT_SOURCE_TREE \ $QT_SOURCE_TREE/examples \ $QT_SOURCE_TREE/doc/src -imagedirs = $QT_SOURCE_TREE/doc/src/images +imagedirs = $QT_SOURCE_TREE/doc/src/images \ + $QT_SOURCE_TREE/doc/src/template/images outputdir = $QT_BUILD_TREE/doc-build/html-linguist base = file:$QT_BUILD_TREE/doc-build/html-linguist diff --git a/tools/qdoc3/test/qdeclarative.qdocconf b/tools/qdoc3/test/qdeclarative.qdocconf index e5b883a..03514c1 100644 --- a/tools/qdoc3/test/qdeclarative.qdocconf +++ b/tools/qdoc3/test/qdeclarative.qdocconf @@ -58,7 +58,8 @@ exampledirs = $QT_SOURCE_TREE/doc/src \ $QT_SOURCE_TREE/src/3rdparty/webkit/WebKit/qt/docs imagedirs = $QT_SOURCE_TREE/doc/src/images \ $QT_SOURCE_TREE/examples \ - $QT_SOURCE_TREE/doc/src/declarative/pics + $QT_SOURCE_TREE/doc/src/declarative/pics \ + $QT_SOURCE_TREE/doc/src/template/images outputdir = $QT_BUILD_TREE/doc-build/html-qml tagfile = $QT_BUILD_TREE/doc-build/html-qml/qt.tags base = file:$QT_BUILD_TREE/doc/html-qml diff --git a/tools/qdoc3/test/qmake.qdocconf b/tools/qdoc3/test/qmake.qdocconf index 76e7012..bd47028 100644 --- a/tools/qdoc3/test/qmake.qdocconf +++ b/tools/qdoc3/test/qmake.qdocconf @@ -35,6 +35,7 @@ exampledirs = $QT_SOURCE_TREE \ $QT_SOURCE_TREE/examples \ $QT_SOURCE_TREE/doc/src -imagedirs = $QT_SOURCE_TREE/doc/src/images +imagedirs = $QT_SOURCE_TREE/doc/src/images \ + $QT_SOURCE_TREE/doc/src/template/images outputdir = $QT_BUILD_TREE/doc-build/html-qmake base = file:$QT_BUILD_TREE/doc-build/html-qmake diff --git a/tools/qdoc3/test/qt-build-docs.qdocconf b/tools/qdoc3/test/qt-build-docs.qdocconf index fb2c3c1..c9392c0 100644 --- a/tools/qdoc3/test/qt-build-docs.qdocconf +++ b/tools/qdoc3/test/qt-build-docs.qdocconf @@ -106,7 +106,8 @@ exampledirs = $QT_SOURCE_TREE/doc/src \ $QT_SOURCE_TREE/src/3rdparty/webkit/WebKit/qt/docs imagedirs = $QT_SOURCE_TREE/doc/src/images \ $QT_SOURCE_TREE/examples \ - $QT_SOURCE_TREE/doc/src/declarative/pics + $QT_SOURCE_TREE/doc/src/declarative/pics \ + $QT_SOURCE_TREE/doc/src/template/images outputdir = $QT_BUILD_TREE/doc/html tagfile = $QT_BUILD_TREE/doc/html/qt.tags base = file:$QT_BUILD_TREE/doc/html diff --git a/tools/qdoc3/test/qt-build-docs_zh_CN.qdocconf b/tools/qdoc3/test/qt-build-docs_zh_CN.qdocconf index 7a77f54..19db8a9 100644 --- a/tools/qdoc3/test/qt-build-docs_zh_CN.qdocconf +++ b/tools/qdoc3/test/qt-build-docs_zh_CN.qdocconf @@ -76,7 +76,8 @@ exampledirs = $QT_SOURCE_TREE/doc/src \ $QT_SOURCE_TREE/qmake/examples \ $QT_SOURCE_TREE/src/3rdparty/webkit/WebKit/qt/docs imagedirs = $QT_SOURCE_TREE/doc/src/images \ - $QT_SOURCE_TREE/examples + $QT_SOURCE_TREE/examples \ + $QT_SOURCE_TREE/doc/src/template/images outputdir = $QT_BUILD_TREE/doc/html_zh_CN tagfile = $QT_BUILD_TREE/doc/html_zh_CN/qt.tags base = file:$QT_BUILD_TREE/doc/html_zh_CN diff --git a/tools/qdoc3/test/qt-defines.qdocconf b/tools/qdoc3/test/qt-defines.qdocconf index b22727f..e1a008e 100644 --- a/tools/qdoc3/test/qt-defines.qdocconf +++ b/tools/qdoc3/test/qt-defines.qdocconf @@ -19,8 +19,48 @@ codeindent = 1 # See also qhp.Qt.extraFiles extraimages.HTML = qt-logo \ trolltech-logo \ + api_examples.png \ + bg_ll.png \ + bg_ul_blank.png \ + bullet_gt.png \ + horBar.png \ + qt_ref_doc.png \ + api_lookup.png \ + bg_ll_blank.png \ + bg_ur.png \ + bullet_sq.png \ + page_bg.png \ + qt_tools.png \ + api_topics.png \ + bg_lr.png \ + bg_ur_blank.png \ + content_bg.png \ + print.png \ + sep.png \ + bg_l.png \ + bg_r.png \ + box_bg.png \ + feedbackground.png \ + qt_guide.png \ + sprites-combined.png \ + bg_l_blank.png \ + bg_ul.png \ + breadcrumb.png \ + form_bg.png \ + qt_icon.png \ taskmenuextension-example.png \ coloreditorfactoryimage.png \ dynamiclayouts-example.png \ stylesheet-coffee-plastique.png - \ No newline at end of file + +# This stuff is used by the new doc format. +scriptdirs = $QTDIR/doc/src/template/scripts +styledirs = $QTDIR/doc/src/template/style + +scripts.HTML = functions.js \ + jquery.js + +styles.HTML = style.css \ + style_ie6.css \ + style_ie7.css \ + style_ie8.css diff --git a/tools/qdoc3/test/qt-html-templates.qdocconf b/tools/qdoc3/test/qt-html-templates.qdocconf index 60d6b61..5bb4382 100644 --- a/tools/qdoc3/test/qt-html-templates.qdocconf +++ b/tools/qdoc3/test/qt-html-templates.qdocconf @@ -1,25 +1,145 @@ -HTML.stylesheets = classic.css -HTML.postheader = "\n" \ - "\n" \ - "\n" \ - "" \ - "" \ - "
" \ - "" \ - "  " \ - "" \ - "Home ·" \ - " " \ - "All Classes ·" \ - " " \ - "All Functions ·" \ - " " \ - "Overviews" \ - "
" +HTML.stylesheets = style/style.css +HTML.postheader = "
\n" \ + "
\n" \ + " Home
\n" \ + " Qt Reference Documentation\n" \ + "
\n" \ + " \n" \ + "
\n" \ + "
\n" \ + " \n" \ + "
\n" \ + "
\n" \ + "
\n" \ + "
\n" \ + " \n" \ + "
\n" \ + "
\n" \ + "
\n" \ + "
\n" \ + " Search index:
\n" \ + "
\n" \ + "
\n" \ + "
\n" \ + " \n" \ + "
\n" \ + "
\n" \ + "
\n" \ + "
\n" \ + "

\n" \ + " API Lookup

\n" \ + "
\n" \ + " \n" \ + "
\n" \ + "
\n" \ + "
\n" \ + "
\n" \ + "
\n" \ + "

\n" \ + " API Topics

\n" \ + "
\n" \ + " \n" \ + "
\n" \ + "
\n" \ + "
\n" \ + "
\n" \ + "
\n" \ + "

\n" \ + " API Examples

\n" \ + "
\n" \ + " \n" \ + "
\n" \ + "
\n" \ + "
\n" \ + "
\n" \ + "
\n" \ + "
\n" \ + "
\n" \ + "
\n" \ + "
    \n" \ + "
  • Home
  • \n" \ + " \n" \ + "
\n" \ + "
\n" \ + "
\n" \ + "
    \n" \ + "
  • A
  • \n" \ + "
  • A
  • \n" \ + "
  • A
  • \n" \ + "
  • \n" \ + " \"Print
  • \n" \ + "
\n" \ + "
\n" \ + "
\n" \ + "
\n" -HTML.footer = "


\n" \ - "\n" \ - "\n" \ - "\n" \ - "\n" \ - "
Copyright © 2010 Nokia Corporation and/or its subsidiary(-ies)Trademarks
Qt \\version
" +HTML.footer = "
\n" \ + "
\n" \ + " [+] Documentation Feedback
\n" \ + "
\n" \ + "
\n" \ + "
\n" \ + " \n" \ + "
\n" \ + "
\n" \ + "
\n" \ + "

\n" \ + " © 2008-2010 Nokia Corporation and/or its>\n" \ + " subsidiaries. Nokia, Qt and their respective logos are trademarks of Nokia Corporation>\n" \ + " in Finland and/or other countries worldwide.

\n" \ + "

\n" \ + " All other trademarks are property of their respective owners. \n" \ + " href=\"http://qt.nokia.com/about/privacy-policy\">Privacy Policy

\n" \ + "
\n" \ + "
\n" \ + "
\n" \ + "
\n" \ + " X\n" \ + "
\n" \ + " \n" \ + " \n" \ + " name=\"feedback\" />\n" \ + "
\n" \ + "
\n" \ + "
\n" \ + "
\n" \ + " \n" \ + "\n" diff --git a/tools/qdoc3/test/qt-webxml.qdocconf b/tools/qdoc3/test/qt-webxml.qdocconf index 3ad0457..80ced42 100644 --- a/tools/qdoc3/test/qt-webxml.qdocconf +++ b/tools/qdoc3/test/qt-webxml.qdocconf @@ -2,7 +2,8 @@ include(qt.qdocconf) quotinginformation = true imagedirs = $QTDIR/doc/src/images \ - $QTDIR/examples + $QTDIR/examples \ + $QTDIR/doc/src/template/images outputdir = $QTDIR/doc/webxml outputformats = WebXML diff --git a/tools/qdoc3/test/qt.qdocconf b/tools/qdoc3/test/qt.qdocconf index d8b9136..29b49e2 100644 --- a/tools/qdoc3/test/qt.qdocconf +++ b/tools/qdoc3/test/qt.qdocconf @@ -108,7 +108,8 @@ exampledirs = $QTDIR/doc/src \ $QTDIR/src/3rdparty/webkit/WebKit/qt/docs imagedirs = $QTDIR/doc/src/images \ $QTDIR/examples \ - $QTDIR/doc/src/declarative/pics + $QTDIR/doc/src/declarative/pics \ + $QTDIR/doc/src/template/images outputdir = $QTDIR/doc/html tagfile = $QTDIR/doc/html/qt.tags base = file:$QTDIR/doc/html diff --git a/tools/qdoc3/test/qt_zh_CN.qdocconf b/tools/qdoc3/test/qt_zh_CN.qdocconf index 8c7e64a..980c542 100644 --- a/tools/qdoc3/test/qt_zh_CN.qdocconf +++ b/tools/qdoc3/test/qt_zh_CN.qdocconf @@ -78,7 +78,8 @@ exampledirs = $QTDIR/doc/src \ $QTDIR/qmake/examples \ $QTDIR/src/3rdparty/webkit/WebKit/qt/docs imagedirs = $QTDIR/doc/src/images \ - $QTDIR/examples + $QTDIR/examples \ + $QTDIR/doc/src/template/images outputdir = $QTDIR/doc/html_zh_CN tagfile = $QTDIR/doc/html_zh_CN/qt.tags base = file:$QTDIR/doc/html_zh_CN -- cgit v0.12 From f176759fc41abc4cb901c2cbaa15264f2a9ac85b Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Fri, 9 Apr 2010 15:27:35 +0200 Subject: the _setmode() prototype is different on win ce ... both from windows and the wince doc ... Reviewed-by: joerg --- tools/linguist/shared/translator.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tools/linguist/shared/translator.cpp b/tools/linguist/shared/translator.cpp index ae7728e..826004e 100644 --- a/tools/linguist/shared/translator.cpp +++ b/tools/linguist/shared/translator.cpp @@ -218,7 +218,11 @@ bool Translator::load(const QString &filename, ConversionData &cd, const QString if (filename.isEmpty() || filename == QLatin1String("-")) { #ifdef Q_OS_WIN // QFile is broken for text files +# ifdef Q_OS_WINCE + ::_setmode(stdin, _O_BINARY); +# else ::_setmode(0, _O_BINARY); +# endif #endif if (!file.open(stdin, QIODevice::ReadOnly)) { cd.appendError(QString::fromLatin1("Cannot open stdin!? (%1)") -- cgit v0.12 From 513bc742b8591711b04d4e2e77512a634d9e4b0b Mon Sep 17 00:00:00 2001 From: Tasuku Suzuki Date: Thu, 18 Mar 2010 22:37:51 +0900 Subject: Fix compile error with QT_NO_LIBRARY in QtMultimedia Merge-request: 2328 Reviewed-by: Andreas Kling --- src/multimedia/base/qmediapluginloader.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/multimedia/base/qmediapluginloader.cpp b/src/multimedia/base/qmediapluginloader.cpp index 24c5aba..eaf6218 100644 --- a/src/multimedia/base/qmediapluginloader.cpp +++ b/src/multimedia/base/qmediapluginloader.cpp @@ -98,6 +98,7 @@ void QMediaPluginLoader::load() } } } else { +#ifndef QT_NO_LIBRARY QStringList paths = QCoreApplication::libraryPaths(); foreach (QString const &path, paths) { @@ -126,6 +127,7 @@ void QMediaPluginLoader::load() loader.unload(); } } +#endif } } -- cgit v0.12 From 6bc7b6b2598e767363591b48ca10f868454519d7 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Sat, 10 Apr 2010 10:06:28 +0200 Subject: Autotest: fix the fix for the rounding error. --- tests/auto/qelapsedtimer/tst_qelapsedtimer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/qelapsedtimer/tst_qelapsedtimer.cpp b/tests/auto/qelapsedtimer/tst_qelapsedtimer.cpp index 9ea422c..498d4d7 100644 --- a/tests/auto/qelapsedtimer/tst_qelapsedtimer.cpp +++ b/tests/auto/qelapsedtimer/tst_qelapsedtimer.cpp @@ -118,7 +118,7 @@ void tst_QElapsedTimer::basics() // However, since QElapsedTimer keeps internally the full resolution, // we have here a rounding error due to integer division - QVERIFY(qAbs(elapsed - qint64(value2 - value1)) < 1); + QVERIFY(qAbs(elapsed - qint64(value2 - value1)) <= 1); } void tst_QElapsedTimer::elapsed() -- cgit v0.12 From b31da7012a6f675b69e1ef8d6f5aec612337a2ea Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Sat, 10 Apr 2010 10:08:07 +0200 Subject: Autotest: add some debugging, just in case there's something wrong --- tests/auto/qelapsedtimer/tst_qelapsedtimer.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tests/auto/qelapsedtimer/tst_qelapsedtimer.cpp b/tests/auto/qelapsedtimer/tst_qelapsedtimer.cpp index 498d4d7..87df57d 100644 --- a/tests/auto/qelapsedtimer/tst_qelapsedtimer.cpp +++ b/tests/auto/qelapsedtimer/tst_qelapsedtimer.cpp @@ -46,6 +46,17 @@ static const int minResolution = 50; // the minimum resolution for the tests +QDebug operator<<(QDebug s, const QElapsedTimer &t) +{ + union { + QElapsedTimer t; + struct { qint64 t1, t2; } i; + } copy; + copy.t = t; + s.nospace() << "(" << copy.i.t1 << ", " << copy.i.t2 << ")"; + return s.space(); +} + class tst_QElapsedTimer : public QObject { Q_OBJECT @@ -110,10 +121,12 @@ void tst_QElapsedTimer::basics() #endif quint64 value1 = t1.msecsSinceReference(); + qDebug() << value1 << t1; qint64 elapsed = t1.restart(); QVERIFY(elapsed < minResolution); quint64 value2 = t1.msecsSinceReference(); + qDebug() << value2 << t1 << elapsed; // in theory, elapsed == value2 - value1 // However, since QElapsedTimer keeps internally the full resolution, -- cgit v0.12 From cda5742493b48c53ae2255a01759a72026d2aeaf Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Sat, 10 Apr 2010 10:19:16 +0200 Subject: Apply f176759fc41abc4cb901c2cbaa15264f2a9ac85b to stdout too. Ossi is right: on WinCE, _setmode is different from regular Windows and the docs... Reviewed-by: ossi --- tools/linguist/shared/translator.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tools/linguist/shared/translator.cpp b/tools/linguist/shared/translator.cpp index 826004e..c86a9dd 100644 --- a/tools/linguist/shared/translator.cpp +++ b/tools/linguist/shared/translator.cpp @@ -262,7 +262,11 @@ bool Translator::save(const QString &filename, ConversionData &cd, const QString if (filename.isEmpty() || filename == QLatin1String("-")) { #ifdef Q_OS_WIN // QFile is broken for text files +# ifdef Q_OS_WINCE + ::_setmode(stdout, _O_BINARY); +# else ::_setmode(1, _O_BINARY); +# endif #endif if (!file.open(stdout, QIODevice::WriteOnly)) { cd.appendError(QString::fromLatin1("Cannot open stdout!? (%1)") -- cgit v0.12 From f96470898c11ac2dfc0111925cc1843348e72f19 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Mon, 12 Apr 2010 09:43:57 +0200 Subject: Partially revert MR 543 changes to Linguist. Whatever this is doing, it breaks the build on Windows CE/Mobile. This has stopped oslo-staging-1 from integrating for over a week now. Not reviewed. This patch is a blind attempt at fixing the issue. --- tools/linguist/linguist.pro | 2 +- tools/tools.pro | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/tools/linguist/linguist.pro b/tools/linguist/linguist.pro index 248c89e..85ecd5a 100644 --- a/tools/linguist/linguist.pro +++ b/tools/linguist/linguist.pro @@ -1,6 +1,6 @@ TEMPLATE = subdirs SUBDIRS = \ + linguist \ lrelease \ lupdate \ lconvert -!no-png:!contains(QT_CONFIG, no-gui):SUBDIRS += linguist diff --git a/tools/tools.pro b/tools/tools.pro index 99a965d..47ad0d7 100644 --- a/tools/tools.pro +++ b/tools/tools.pro @@ -14,6 +14,7 @@ TEMPLATE = subdirs } else { SUBDIRS += designer } + SUBDIRS += linguist symbian: SUBDIRS = designer wince*: SUBDIRS = qtestlib designer unix:!mac:!embedded:contains(QT_CONFIG, qt3support):SUBDIRS += qtconfig @@ -22,8 +23,6 @@ TEMPLATE = subdirs contains(QT_CONFIG, declarative):SUBDIRS += qml } -SUBDIRS += linguist - mac { SUBDIRS += macdeployqt } -- cgit v0.12 From 05d2c47c4266808b9683b78aa5082dbda0c02871 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Fri, 9 Apr 2010 19:42:47 +0200 Subject: fix build from top level even more fallout from MR 543. qt3support needs to be added after qtgui, as a build from top level is ordered, not dependency based. as i was at it, i cleaned up the platform conditionals some more. Reviewed-by: joerg --- src/src.pro | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/src/src.pro b/src/src.pro index ea65e25..70beb46 100644 --- a/src/src.pro +++ b/src/src.pro @@ -3,22 +3,15 @@ TEMPLATE = subdirs # this order is important unset(SRC_SUBDIRS) win32:SRC_SUBDIRS += src_winmain -wince*:{ - SRC_SUBDIRS += src_corelib src_xml src_sql src_network src_testlib -} else:symbian { - SRC_SUBDIRS += src_s60main src_corelib src_xml src_network src_sql src_testlib - !symbian-abld:!symbian-sbsv2 { - include(tools/tools.pro) - } -} else { - SRC_SUBDIRS += src_corelib src_xml src_network src_sql src_testlib - !vxworks:contains(QT_CONFIG, qt3support): SRC_SUBDIRS += src_qt3support - include(tools/tools.pro) -} +symbian:SRC_SUBDIRS += src_s60main +SRC_SUBDIRS += src_corelib src_xml src_network src_sql src_testlib win32:SRC_SUBDIRS += src_activeqt - !symbian:contains(QT_CONFIG, dbus):SRC_SUBDIRS += src_dbus !contains(QT_CONFIG, no-gui): SRC_SUBDIRS += src_gui +!wince*:!symbian:!vxworks:contains(QT_CONFIG, qt3support): SRC_SUBDIRS += src_qt3support + +!wince*:!symbian-abld:!symbian-sbsv2:include(tools/tools.pro) + contains(QT_CONFIG, opengl)|contains(QT_CONFIG, opengles1)|contains(QT_CONFIG, opengles2): SRC_SUBDIRS += src_opengl contains(QT_CONFIG, openvg): SRC_SUBDIRS += src_openvg contains(QT_CONFIG, xmlpatterns): SRC_SUBDIRS += src_xmlpatterns -- cgit v0.12 From a5fa6f3e2a7376428f5508336a8678723cbc3e94 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Mon, 12 Apr 2010 11:10:56 +0200 Subject: make the code less of a trap it's not very wise to use += first, and then to overwrite everything with =. use proper scoping instead. Reviewed-by: joerg --- tools/tools.pro | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/tools/tools.pro b/tools/tools.pro index 47ad0d7..c512e11 100644 --- a/tools/tools.pro +++ b/tools/tools.pro @@ -4,21 +4,25 @@ TEMPLATE = subdirs no-png { message("Some graphics-related tools are unavailable without PNG support") } else { - SUBDIRS += assistant \ - pixeltool \ - porting \ - qtestlib \ - qttracereplay - contains(QT_EDITION, Console) { - SUBDIRS += designer/src/uitools # Linguist depends on this - } else { - SUBDIRS += designer - } - SUBDIRS += linguist - symbian: SUBDIRS = designer - wince*: SUBDIRS = qtestlib designer - unix:!mac:!embedded:contains(QT_CONFIG, qt3support):SUBDIRS += qtconfig - win32:!wince*:SUBDIRS += activeqt + symbian { + SUBDIRS = designer + } else:wince* { + SUBDIRS = qtestlib designer + } else { + SUBDIRS = assistant \ + linguist \ + pixeltool \ + porting \ + qtestlib \ + qttracereplay + contains(QT_EDITION, Console) { + SUBDIRS += designer/src/uitools # Linguist depends on this + } else { + SUBDIRS += designer + } + } + unix:!mac:!embedded:contains(QT_CONFIG, qt3support):SUBDIRS += qtconfig + win32:!wince*:SUBDIRS += activeqt } contains(QT_CONFIG, declarative):SUBDIRS += qml } -- cgit v0.12 From 0c9e624ead81aea836f3b65d9e719b6147a5115c Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Mon, 12 Apr 2010 11:11:22 +0200 Subject: make a partial build of linguist in no-gui config --- tools/linguist/linguist.pro | 2 +- tools/tools.pro | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/linguist/linguist.pro b/tools/linguist/linguist.pro index 85ecd5a..248c89e 100644 --- a/tools/linguist/linguist.pro +++ b/tools/linguist/linguist.pro @@ -1,6 +1,6 @@ TEMPLATE = subdirs SUBDIRS = \ - linguist \ lrelease \ lupdate \ lconvert +!no-png:!contains(QT_CONFIG, no-gui):SUBDIRS += linguist diff --git a/tools/tools.pro b/tools/tools.pro index c512e11..7598962 100644 --- a/tools/tools.pro +++ b/tools/tools.pro @@ -10,7 +10,6 @@ TEMPLATE = subdirs SUBDIRS = qtestlib designer } else { SUBDIRS = assistant \ - linguist \ pixeltool \ porting \ qtestlib \ @@ -27,6 +26,8 @@ TEMPLATE = subdirs contains(QT_CONFIG, declarative):SUBDIRS += qml } +!wince*:!symbian:SUBDIRS += linguist + mac { SUBDIRS += macdeployqt } -- cgit v0.12 From 9aa4538b219ed759a47e8d1f93c2797bf07b5e2f Mon Sep 17 00:00:00 2001 From: "Bradley T. Hughes" Date: Mon, 12 Apr 2010 14:13:35 +0200 Subject: Fix a race where QThread::exit() is "lost" when called after start() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit QThread::exit() tries to stop all running event loops, but does nothing if the eventloop has not started yet. This is often the case for short- exit method on an object that has affinity to the thread. This ensures that the exit is called from the running eventloop, meaning the exit() will never be lost. Task-number: QTBUG-1184 Reviewed-by: Morten Sørvig --- src/corelib/thread/qthread.cpp | 25 +++++++++++++++++++- src/corelib/thread/qthread_p.h | 10 ++++++++ tests/auto/qthread/tst_qthread.cpp | 47 +++++++++++++++++++++++++++++--------- 3 files changed, 70 insertions(+), 12 deletions(-) diff --git a/src/corelib/thread/qthread.cpp b/src/corelib/thread/qthread.cpp index cb84538..c35eb28 100644 --- a/src/corelib/thread/qthread.cpp +++ b/src/corelib/thread/qthread.cpp @@ -174,7 +174,7 @@ void QAdoptedThread::run() QThreadPrivate::QThreadPrivate(QThreadData *d) : QObjectPrivate(), running(false), finished(false), terminated(false), - stackSize(0), priority(QThread::InheritPriority), data(d) + stackSize(0), priority(QThread::InheritPriority), data(d), object(0) { #if defined (Q_OS_UNIX) thread_id = 0; @@ -377,6 +377,9 @@ QThread::QThread(QObject *parent) Q_D(QThread); // fprintf(stderr, "QThreadData %p created for thread %p\n", d->data, this); d->data->thread = this; + + d->object = new QThreadPrivateInternalObject; + d->object->moveToThread(this); } /*! \internal @@ -387,6 +390,8 @@ QThread::QThread(QThreadPrivate &dd, QObject *parent) Q_D(QThread); // fprintf(stderr, "QThreadData %p taken from private data for thread %p\n", d->data, this); d->data->thread = this; + + // do not create the internal object for adopted threads } /*! @@ -408,6 +413,9 @@ QThread::~QThread() d->data->thread = 0; } + + delete d->object; + d->object = 0; } /*! @@ -510,6 +518,21 @@ int QThread::exec() void QThread::exit(int returnCode) { Q_D(QThread); + if (d->object) { + QMetaObject::invokeMethod(d->object, "exit", Q_ARG(int, returnCode)); + } else { + QMutexLocker locker(&d->mutex); + d->data->quitNow = true; + for (int i = 0; i < d->data->eventLoops.size(); ++i) { + QEventLoop *eventLoop = d->data->eventLoops.at(i); + eventLoop->exit(returnCode); + } + } +} + +void QThreadPrivateInternalObject::exit(int returnCode) +{ + QThreadPrivate *d = static_cast(QObjectPrivate::get(thread())); QMutexLocker locker(&d->mutex); d->data->quitNow = true; for (int i = 0; i < d->data->eventLoops.size(); ++i) { diff --git a/src/corelib/thread/qthread_p.h b/src/corelib/thread/qthread_p.h index 6825718..54ffd80 100644 --- a/src/corelib/thread/qthread_p.h +++ b/src/corelib/thread/qthread_p.h @@ -112,6 +112,15 @@ public: }; #ifndef QT_NO_THREAD + +class QThreadPrivateInternalObject : public QObject +{ + Q_OBJECT + +public slots: + void exit(int); +}; + class QThreadPrivate : public QObjectPrivate { Q_DECLARE_PUBLIC(QThread) @@ -156,6 +165,7 @@ public: bool terminationEnabled, terminatePending; # endif QThreadData *data; + QThreadPrivateInternalObject *object; static void createEventDispatcher(QThreadData *data); }; diff --git a/tests/auto/qthread/tst_qthread.cpp b/tests/auto/qthread/tst_qthread.cpp index bd1bc53..871578e 100644 --- a/tests/auto/qthread/tst_qthread.cpp +++ b/tests/auto/qthread/tst_qthread.cpp @@ -168,16 +168,18 @@ public slots: class Exit_Thread : public Simple_Thread { public: + Exit_Object *object; int code; int result; void run() { - Simple_Thread::run(); - Exit_Object o; - o.thread = this; - o.code = code; - QTimer::singleShot(100, &o, SLOT(slot())); + if (object) { + Simple_Thread::run(); + object->thread = this; + object->code = code; + QTimer::singleShot(100, object, SLOT(slot())); + } result = exec(); } }; @@ -211,17 +213,16 @@ public slots: class Quit_Thread : public Simple_Thread { public: + Quit_Object *object; int result; void run() { - { - QMutexLocker locker(&mutex); - cond.wakeOne(); + if (object) { + Simple_Thread::run(); + object->thread = this; + QTimer::singleShot(100, object, SLOT(slot())); } - Quit_Object o; - o.thread = this; - QTimer::singleShot(100, &o, SLOT(slot())); result = exec(); } }; @@ -420,6 +421,8 @@ void tst_QThread::stackSize() void tst_QThread::exit() { Exit_Thread thread; + thread.object = new Exit_Object; + thread.object->moveToThread(&thread); thread.code = 42; thread.result = 0; QVERIFY(!thread.isFinished()); @@ -433,6 +436,16 @@ void tst_QThread::exit() QVERIFY(thread.isFinished()); QVERIFY(!thread.isRunning()); QCOMPARE(thread.result, thread.code); + delete thread.object; + + Exit_Thread thread2; + thread2.object = 0; + thread2.code = 53; + thread2.result = 0; + thread2.start(); + thread2.exit(thread.code); + QVERIFY(thread2.wait(five_minutes)); + QCOMPARE(thread.result, thread.code); } void tst_QThread::start() @@ -480,6 +493,9 @@ void tst_QThread::terminate() void tst_QThread::quit() { Quit_Thread thread; + thread.object = new Quit_Object; + thread.object->moveToThread(&thread); + thread.result = -1; QVERIFY(!thread.isFinished()); QVERIFY(!thread.isRunning()); QMutexLocker locker(&thread.mutex); @@ -491,6 +507,15 @@ void tst_QThread::quit() QVERIFY(thread.isFinished()); QVERIFY(!thread.isRunning()); QCOMPARE(thread.result, 0); + delete thread.object; + + Quit_Thread thread2; + thread2.object = 0; + thread2.result = -1; + thread2.start(); + thread2.quit(); + QVERIFY(thread2.wait(five_minutes)); + QCOMPARE(thread.result, 0); } void tst_QThread::wait() -- cgit v0.12 From ca8928b78185688ef8e31615ddad4a5c9e2972a7 Mon Sep 17 00:00:00 2001 From: Erik Verbruggen Date: Mon, 12 Apr 2010 15:28:52 +0200 Subject: Fixed scroll area size calculation on Mac. This fixes the case where the scroll area was not tall enough, which happened when the fractional font metrics are returned. Reviewed-by: mae --- src/gui/widgets/qplaintextedit.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gui/widgets/qplaintextedit.cpp b/src/gui/widgets/qplaintextedit.cpp index ef9fac3..2734fba 100644 --- a/src/gui/widgets/qplaintextedit.cpp +++ b/src/gui/widgets/qplaintextedit.cpp @@ -944,8 +944,8 @@ void QPlainTextEditPrivate::_q_adjustScrollbars() int vSliderLength = 0; if (!centerOnScroll && q->isVisible()) { QTextBlock block = doc->lastBlock(); - const int visible = static_cast(viewport->rect().height() - margin - 1); - int y = 0; + const qreal visible = viewport->rect().height() - margin - 1; + qreal y = 0; int visibleFromBottom = 0; while (block.isValid()) { @@ -953,7 +953,7 @@ void QPlainTextEditPrivate::_q_adjustScrollbars() block = block.previous(); continue; } - y += int(documentLayout->blockBoundingRect(block).height()); + y += documentLayout->blockBoundingRect(block).height(); QTextLayout *layout = block.layout(); int layoutLineCount = layout->lineCount(); @@ -962,7 +962,7 @@ void QPlainTextEditPrivate::_q_adjustScrollbars() while (lineNumber < layoutLineCount) { QTextLine line = layout->lineAt(lineNumber); const QRectF lr = line.naturalTextRect(); - if (int(lr.top()) >= y - visible) + if (lr.top() >= y - visible) break; ++lineNumber; } -- cgit v0.12 From 9f0884773a451a4feef80812e015266bd487dcdc Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Mon, 12 Apr 2010 20:55:03 +0200 Subject: Revert Merge Request 551. This introduces regressions to Qt. The regressions noticed were: Mac OS X: qmenu::menuGeometry line 1024 (new test) QWS and Win32: qmenubar::check_menuPosition line 1508 This reverts commits 6947390 and c1ce854. --- src/gui/widgets/qmenu.cpp | 7 +++--- tests/auto/qmenu/tst_qmenu.cpp | 56 ------------------------------------------ 2 files changed, 4 insertions(+), 59 deletions(-) diff --git a/src/gui/widgets/qmenu.cpp b/src/gui/widgets/qmenu.cpp index b752ae2..3ea783f 100644 --- a/src/gui/widgets/qmenu.cpp +++ b/src/gui/widgets/qmenu.cpp @@ -1913,9 +1913,10 @@ void QMenu::popup(const QPoint &p, QAction *atAction) pos.setX(screen.left() + desktopFrame); } if (pos.y() + size.height() - 1 > screen.bottom() - desktopFrame) { - const int bestPos = (snapToMouse ? mouse.y() : p.y()) - desktopFrame - size.height() + 1; - const int fallbackPos = screen.bottom() - desktopFrame - size.height() + 1; - pos.setY(qMin(bestPos, fallbackPos)); + if(snapToMouse) + pos.setY(qMin(mouse.y() - (size.height() + desktopFrame), screen.bottom()-desktopFrame-size.height()+1)); + else + pos.setY(qMax(p.y() - (size.height() + desktopFrame), screen.bottom()-desktopFrame-size.height()+1)); } else if (pos.y() < screen.top() + desktopFrame) { pos.setY(screen.top() + desktopFrame); } diff --git a/tests/auto/qmenu/tst_qmenu.cpp b/tests/auto/qmenu/tst_qmenu.cpp index 4be6fdd..e10d7ee 100644 --- a/tests/auto/qmenu/tst_qmenu.cpp +++ b/tests/auto/qmenu/tst_qmenu.cpp @@ -106,8 +106,6 @@ private slots: void pushButtonPopulateOnAboutToShow(); void QTBUG7907_submenus_autoselect(); void QTBUG7411_submenus_activate(); - void menuGeometry_data(); - void menuGeometry(); protected slots: void onActivated(QAction*); void onHighlighted(QAction*); @@ -969,60 +967,6 @@ void tst_QMenu::QTBUG7411_submenus_activate() QTRY_VERIFY(sub1.isVisible()); } -void tst_QMenu::menuGeometry_data() -{ - QTest::addColumn("screen"); - QTest::addColumn("pos"); - QTest::addColumn("expectedPos"); - - QMenu menu("Test Menu"); - for (int i = 0; i < 3; ++i) - menu.addAction("Hello World!"); - - menu.adjustSize(); - - const int screenCount = QApplication::desktop()->screenCount(); - const int desktopFrame = menu.style()->pixelMetric(QStyle::PM_MenuDesktopFrameWidth, 0, &menu); - - for (int i = 0; i < screenCount; ++i) { - const QRect screen = QApplication::desktop()->screenGeometry(i); - - if (screen.width() < menu.width() || screen.height() < menu.height()) - continue; - - QTest::newRow("topLeft") << screen << screen.topLeft() - << QPoint(screen.left() + desktopFrame, screen.top() + desktopFrame); - - QTest::newRow("topRight") << screen << screen.topRight() - << QPoint(screen.right() - desktopFrame - menu.width() + 1, screen.top() + desktopFrame); - - QTest::newRow("bottomLeft") << screen << screen.bottomLeft() - << QPoint(screen.left() + desktopFrame, screen.bottom() - desktopFrame - menu.height() + 1); - - QTest::newRow("bottomRight") << screen << screen.bottomRight() - << QPoint(screen.right() - desktopFrame - menu.width() + 1, screen.bottom() - desktopFrame - menu.height() + 1); - - const QPoint pos = QPoint(screen.right() - qMax(desktopFrame, 20), screen.bottom() - qMax(desktopFrame, 20)); - QTest::newRow("position") << screen << pos - << QPoint(screen.right() - menu.width() + 1, pos.y() - menu.height() + 1); - } -} - -void tst_QMenu::menuGeometry() -{ - QFETCH(QRect, screen); - QFETCH(QPoint, pos); - QFETCH(QPoint, expectedPos); - - QMenu menu("Test Menu"); - for (int i = 0; i < 3; ++i) - menu.addAction("Hello World!"); - - menu.popup(pos); - QTest::qWaitForWindowShown(&menu); - QVERIFY(screen.contains(menu.geometry())); - QCOMPARE(menu.pos(), expectedPos); -} QTEST_MAIN(tst_QMenu) -- cgit v0.12