Revision control

++ // Copyright (C) 2016 The Qt Company Ltd.
++ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
++
++ #include <QtWidgets>
++
++ #include "analogclock.h"
++
++ //! [analogclock-qtimer]
++
++ //! [0]
++ AnalogClock::AnalogClock(QWidget *parent)
++ //! [0] //! [2]
++ : QWidget(parent)
++ //! [2] //! [3]
++ {
++ //! [3] //! [4]
++ QTimer *timer = new QTimer(this);
++ //! [4] //! [5]
++ connect(timer, &QTimer::timeout, this, QOverload<>::of(&AnalogClock::update));
++ //! [5] //! [6]
++ timer->start(1000);
++ //! [6]
++
++ setWindowTitle(tr("Analog Clock"));
++ resize(200, 200);
++ //! [7]
++ }
++ //! [7]
++
++ //! [analogclock-qtimer]
++
++ void AnalogClock::paintEvent(QPaintEvent *)
++ {
++ static const QPoint hourHand[3] = {
++ QPoint(7, 8),
++ QPoint(-7, 8),
++ QPoint(0, -40)
++ };
++ static const QPoint minuteHand[3] = {
++ QPoint(7, 8),
++ QPoint(-7, 8),
++ QPoint(0, -70)
++ };
++
++ QColor hourColor(127, 0, 127);
++ QColor minuteColor(0, 127, 127, 191);
++
++ int side = qMin(width(), height());
++ QTime time = QTime::currentTime();
++
++ QPainter painter(this);
++ painter.setRenderHint(QPainter::Antialiasing);
++ painter.translate(width() / 2, height() / 2);
++ painter.scale(side / 200.0, side / 200.0);
++
++ painter.setPen(Qt::NoPen);
++ painter.setBrush(hourColor);
++
++ painter.save();
++ painter.rotate(30.0 * ((time.hour() + time.minute() / 60.0)));
++ painter.drawConvexPolygon(hourHand, 3);
++ painter.restore();
++
++ painter.setPen(hourColor);
++
++ for (int i = 0; i < 12; ++i) {
++ painter.drawLine(88, 0, 96, 0);
++ painter.rotate(30.0);
++ }
++
++ painter.setPen(Qt::NoPen);
++ painter.setBrush(minuteColor);
++
++ painter.save();
++ painter.rotate(6.0 * (time.minute() + time.second() / 60.0));
++ painter.drawConvexPolygon(minuteHand, 3);
++ painter.restore();
++
++ painter.setPen(minuteColor);
++
++ for (int j = 0; j < 60; ++j) {
++ if ((j % 5) != 0)
++ painter.drawLine(92, 0, 96, 0);
++ painter.rotate(6.0);
++ }
++ }