Ahmad Samir 11f94598da Replace qdebug.h includes in public headers with forward-declarations
qdebug.h includes many Qt and STL headers, so if you include a Qt header
you get all those transitive includes, which may affect build time.

- Where appropriate use the printf-like syntax of qDebug() and co.,
  these don't need the QDebug streaming operators
- qfloat16 is used in an inline member function, so include it
  explicitly

[ChangeLog][Potentially Source Incompatible Changes] Various Qt public
headers don't include QDebug any more; if you need QDebug's streaming
you'll have to include it in your code.

Task-number: QTBUG-132439
Change-Id: I750587e17a3b38fa226cd3af8eaccc8da580f436
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
(cherry picked from commit 185cba6e95a006d2548f20599f84390e5a3ad653)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-01-15 11:28:28 +00:00

61 lines
1.9 KiB
C++

// Copyright (C) 2024 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
#include "calendarBackendInterface.h"
#include <QApplication>
#include <QCalendar>
#include <QCalendarWidget>
#include <QCommandLineParser>
#include <QDebug>
#include <QPluginLoader>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QCoreApplication::setApplicationName("JulianGregorianCalendar");
QCommandLineParser parser;
parser.setApplicationDescription("Calendar Backend Plugin Example");
parser.addHelpOption();
parser.addPositionalArgument("date; names",
"Date of transition between "
"Julian and Gregorian calendars "
"as string in the format 'yyyy-MM-dd;'. Optionally, user can "
"provide names for the calendar separated with ';'");
parser.process(a);
const QStringList args = parser.positionalArguments();
if (args.isEmpty())
parser.showHelp(1);
if (args.at(0).isEmpty())
parser.showHelp(1);
//![0]
QPluginLoader loader;
loader.setFileName("../plugin/calendarPlugin");
loader.load();
if (!loader.isLoaded())
return 1;
auto *myplugin = qobject_cast<RequestedCalendarInterface*>(loader.instance());
//![0]
//![1]
const auto cid = myplugin->loadCalendar(args.at(0));
if (!cid.isValid()) {
qWarning() << "Invalid ID";
parser.showHelp(1);
}
const QCalendar calendar(cid);
//![1]
//![2]
QCalendarWidget widget;
widget.setCalendar(calendar);
widget.show();
QCalendar::YearMonthDay when = { 1582, 10, 4 };
QCalendar julian = QCalendar(QCalendar::System::Julian);
auto got = QDate::fromString(args.at(0).left(10), u"yyyy-MM-dd", julian);
if (got.isValid())
when = julian.partsFromDate(got);
widget.setCurrentPage(when.year, when.month);
//![2]
return a.exec();
}