Show a patch.

GET /api/1.1/patches/16662/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 16662,
    "url": "https://patchwork.libcamera.org/api/1.1/patches/16662/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/16662/",
    "project": {
        "id": 1,
        "url": "https://patchwork.libcamera.org/api/1.1/projects/1/?format=api",
        "name": "libcamera",
        "link_name": "libcamera",
        "list_id": "libcamera_core",
        "list_email": "libcamera-devel@lists.libcamera.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": ""
    },
    "msgid": "<20220715191400.890976-8-utkarsh02t@gmail.com>",
    "date": "2022-07-15T19:13:56",
    "name": "[libcamera-devel,07/11] qcam: Slider: Add SliderLayout to display value",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": false,
    "hash": "ea5716eafc65abf5253579ec41971c11456ea557",
    "submitter": {
        "id": 114,
        "url": "https://patchwork.libcamera.org/api/1.1/people/114/?format=api",
        "name": "Utkarsh Tiwari",
        "email": "utkarsh02t@gmail.com"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/16662/mbox/",
    "series": [
        {
            "id": 3292,
            "url": "https://patchwork.libcamera.org/api/1.1/series/3292/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=3292",
            "date": "2022-07-15T19:13:49",
            "name": "Introduce control interaction to qcam",
            "version": 1,
            "mbox": "https://patchwork.libcamera.org/series/3292/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/16662/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/16662/checks/",
    "tags": {},
    "headers": {
        "Return-Path": "<libcamera-devel-bounces@lists.libcamera.org>",
        "X-Original-To": "parsemail@patchwork.libcamera.org",
        "Delivered-To": "parsemail@patchwork.libcamera.org",
        "Received": [
            "from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 7A27DBE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 15 Jul 2022 19:14:21 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 2A3A963322;\n\tFri, 15 Jul 2022 21:14:21 +0200 (CEST)",
            "from mail-pj1-x1030.google.com (mail-pj1-x1030.google.com\n\t[IPv6:2607:f8b0:4864:20::1030])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 27F246331B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 15 Jul 2022 21:14:19 +0200 (CEST)",
            "by mail-pj1-x1030.google.com with SMTP id\n\to5-20020a17090a3d4500b001ef76490983so7020861pjf.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 15 Jul 2022 12:14:19 -0700 (PDT)",
            "from localhost.localdomain\n\t([2406:3003:2005:1c27:d8e8:f9ac:919c:9ac8])\n\tby smtp.gmail.com with ESMTPSA id\n\ts10-20020a170903214a00b0016be834d544sm3834315ple.237.2022.07.15.12.14.16\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tFri, 15 Jul 2022 12:14:17 -0700 (PDT)"
        ],
        "DKIM-Signature": [
            "v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1657912461;\n\tbh=ElMvh5HqKigp+v0NP59wRUksIO/4XokrGNUsbl0dO7U=;\n\th=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:\n\tFrom;\n\tb=TP1KdlYFyr8FV+p00FJ8TUElIX5CWtzCOJtXD5Y7aPur8ZU1WI+oDdzU4TQlcNKdb\n\tERCqSVLs9OR6ws3pY85jfeDmwpGNLH3BHQlKtw3eDqJ5J8MUf2C2sM1PjKPTVDp+IE\n\tShqT7ia6aBkoUqCj2fmp+ypOhttZ/fXCFq7aSC8HmisJBRqnZdMj0FgkUUAK3+WWcz\n\t2wE+A2ANL66pDaGeLziaQeofcvRooPsYZpKdIfopYrGXId2GcQ0vhm64B366Xgctvw\n\tjcM+M2L7jA7BHhCvnLPawzQnceT0BlEGJYmvKN3RJjA0xQKiFlBw0eNjvgwsdpuSxN\n\ttUDOdCu/wmtaQ==",
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;\n\th=from:to:cc:subject:date:message-id:in-reply-to:references\n\t:mime-version:content-transfer-encoding;\n\tbh=H6Q3a3MyWxu+j9oPQ0Vx1yJWr4fzvLodrhiRMAc7T4c=;\n\tb=kS3uw4GZYWL9laWZ3f8tdkQ/RtKOY2Rox2am7CIsJzdV22UcB5wf4pPZD0WRMHJc5p\n\tO4leo2S1qUEcoi32HCj94p7RGwgkwkGXUgmWuxBtC9lJg90wp4l+K+Z8ZRo7iwFwm9xL\n\t6rZBozu1QF2ZDiI9O1Be2BFZ/vVrnu732y5qRfC61JSd1Rp5pJVxsbvHlRRAeIZfUt7z\n\t8hy/hwz9LRAgyRXF2AL0b+u3c7xxHG47tgEV4OtANBzPCtbiZdTYbQS1896xux6xgPUn\n\tfyNt5xhZT+VFl7WQ+ZJb2uCeLbSsruQgvPhnU1+WqPEwNfYfDBHMKNmcKIEKwM5TiQJ2\n\tzH9A=="
        ],
        "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"kS3uw4GZ\"; dkim-atps=neutral",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n\t:references:mime-version:content-transfer-encoding;\n\tbh=H6Q3a3MyWxu+j9oPQ0Vx1yJWr4fzvLodrhiRMAc7T4c=;\n\tb=lxezBLcxja0uqkYe1NNflEnM/9kPHXyUmK8lTL5EUWCPBSFe86OrxTF1u+6fXMxbTp\n\t5fOUd4tj8uffyBzBylHlqimSEINH1sOzJRh613wnAzbDSGQ/sDMmR0ximvfHf+gt3Fw6\n\tjkNERuSTReZIp7LRfB4Cmsdc2IP81vEvyljoMYfmGLy9JBmhDdEHAjgd3kIZ3WtdhVXx\n\tPi/dq5+cJBtTbYa6XPlkHfNUUc/2IcVq+nDfAFzYe6Ieeo+bEEs953xi6UnMaFc8x2wO\n\t0n5s7IDJpFQQevyzEarwFpbdvMznSQK004Pn1zvlfywBefnvAKajLgkvgcO3D5L30vLl\n\txzzg==",
        "X-Gm-Message-State": "AJIora/IvcvPSlmeiRyL9kRprLNddBOwjQ2lZjSj5+FEUxTVkAyN10Kl\n\tLdLtv9SnTqcCv2Cuwztvl+bDmk5Bhk5ugw==",
        "X-Google-Smtp-Source": "AGRyM1srF8wBGx6y07Soqn5dwzWy1jugISSr3Ltb1SKajJ8qVREQMBdLjGGrw37NmQgVNZq658V3uw==",
        "X-Received": "by 2002:a17:903:120e:b0:16b:8167:e39e with SMTP id\n\tl14-20020a170903120e00b0016b8167e39emr14925490plh.165.1657912457431; \n\tFri, 15 Jul 2022 12:14:17 -0700 (PDT)",
        "To": "libcamera-devel@lists.libcamera.org",
        "Date": "Sat, 16 Jul 2022 03:13:56 +0800",
        "Message-Id": "<20220715191400.890976-8-utkarsh02t@gmail.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20220715191400.890976-1-utkarsh02t@gmail.com>",
        "References": "<20220715191400.890976-1-utkarsh02t@gmail.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[libcamera-devel] [PATCH 07/11] qcam: Slider: Add SliderLayout to\n\tdisplay value",
        "X-BeenThere": "libcamera-devel@lists.libcamera.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "<libcamera-devel.lists.libcamera.org>",
        "List-Unsubscribe": "<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>",
        "List-Archive": "<https://lists.libcamera.org/pipermail/libcamera-devel/>",
        "List-Post": "<mailto:libcamera-devel@lists.libcamera.org>",
        "List-Help": "<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>",
        "List-Subscribe": "<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>",
        "From": "Utkarsh Tiwari via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>",
        "Reply-To": "Utkarsh Tiwari <utkarsh02t@gmail.com>",
        "Errors-To": "libcamera-devel-bounces@lists.libcamera.org",
        "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"
    },
    "content": "Implement SliderLayout which displays minimum Value, maximum Value,\ncurrentValue of the slider. The currentValue may not reflect the\nimmediate current value of the control.\n\nThe SliderLayout is inherits the Slider type so it can support both\nfloatSlider and integer sliders.\n\nSigned-off-by: Utkarsh Tiwari <utkarsh02t@gmail.com>\n---\n src/qcam/settings/slider.h | 81 ++++++++++++++++++++++++++++++++++++--\n 1 file changed, 78 insertions(+), 3 deletions(-)",
    "diff": "diff --git a/src/qcam/settings/slider.h b/src/qcam/settings/slider.h\nindex f4a4825c..008c746c 100644\n--- a/src/qcam/settings/slider.h\n+++ b/src/qcam/settings/slider.h\n@@ -7,18 +7,46 @@\n \n #pragma once\n \n+#include <QHBoxLayout>\n+#include <QLabel>\n #include <QSlider>\n+#include <QVBoxLayout>\n #include <QWidget>\n \n-class FloatSlider : public QSlider\n+class Slider : public QSlider\n+{\n+\tQ_OBJECT\n+\n+public:\n+\tSlider(QWidget *parent = nullptr)\n+\t\t: QSlider(parent){};\n+\t~Slider() = default;\n+\n+\tvirtual QString maximumValueStr()\n+\t{\n+\t\treturn QString::number(maximum());\n+\t}\n+\n+\tvirtual QString minimumValueStr()\n+\t{\n+\t\treturn QString::number(minimum());\n+\t}\n+\n+\tvirtual QString currValueStr()\n+\t{\n+\t\treturn QString::number(value());\n+\t}\n+};\n+\n+class FloatSlider : public Slider\n {\n \tQ_OBJECT\n \n \tconst float INT_TO_FLOAT = 100.0;\n \n public:\n-\tFloatSlider(QWidget *parent)\n-\t\t: QSlider(parent)\n+\tFloatSlider(QWidget *parent = nullptr)\n+\t\t: Slider(parent)\n \t{\n \t\tconnect(this, &QSlider::valueChanged,\n \t\t\tthis, &FloatSlider::notifyValueChanged);\n@@ -51,6 +79,21 @@ public:\n \t\treturn QSlider::value() / INT_TO_FLOAT;\n \t}\n \n+\tQString maximumValueStr() override\n+\t{\n+\t\treturn QString::number(maximum());\n+\t}\n+\n+\tQString minimumValueStr() override\n+\t{\n+\t\treturn QString::number(minimum());\n+\t}\n+\n+\tQString currValueStr() override\n+\t{\n+\t\treturn QString::number(value());\n+\t}\n+\n Q_SIGNALS:\n \tvoid valueChanged(float value);\n \n@@ -61,3 +104,35 @@ public Q_SLOTS:\n \t\tQ_EMIT valueChanged(floatVal);\n \t}\n };\n+\n+class SliderLayout : public QWidget\n+{\n+\tQ_OBJECT\n+\n+public:\n+\tSliderLayout(Slider *slider, QWidget *parent = nullptr)\n+\t\t: QWidget(parent)\n+\t{\n+\t\tQVBoxLayout *mainVLayout = new QVBoxLayout(this);\n+\n+\t\tQHBoxLayout *labelHLayout = new QHBoxLayout;\n+\n+\t\tQLabel *minLabel = new QLabel(slider->minimumValueStr());\n+\t\tQLabel *currValueLabel = new QLabel(slider->currValueStr());\n+\t\tQLabel *maxLabel = new QLabel(slider->maximumValueStr());\n+\n+\t\tconnect(slider, &Slider::valueChanged,\n+\t\t\tthis, [currValueLabel, slider]() {\n+\t\t\t\tcurrValueLabel->setText(slider->currValueStr());\n+\t\t\t});\n+\n+\t\tlabelHLayout->addWidget(minLabel);\n+\t\tlabelHLayout->addStretch();\n+\t\tlabelHLayout->addWidget(currValueLabel);\n+\t\tlabelHLayout->addStretch();\n+\t\tlabelHLayout->addWidget(maxLabel);\n+\n+\t\tmainVLayout->addLayout(labelHLayout);\n+\t\tmainVLayout->addWidget(slider);\n+\t}\n+};\n",
    "prefixes": [
        "libcamera-devel",
        "07/11"
    ]
}