Show a patch.

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

{
    "id": 17103,
    "url": "https://patchwork.libcamera.org/api/1.1/patches/17103/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/17103/",
    "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": "<20220812124651.27496-8-utkarsh02t@gmail.com>",
    "date": "2022-08-12T12:46:47",
    "name": "[libcamera-devel,v2,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/17103/mbox/",
    "series": [
        {
            "id": 3410,
            "url": "https://patchwork.libcamera.org/api/1.1/series/3410/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=3410",
            "date": "2022-08-12T12:46:40",
            "name": "Introduce control interaction to qcam",
            "version": 2,
            "mbox": "https://patchwork.libcamera.org/series/3410/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/17103/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/17103/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 74659BE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 12 Aug 2022 12:47:20 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 4163C63337;\n\tFri, 12 Aug 2022 14:47:20 +0200 (CEST)",
            "from mail-pg1-x52e.google.com (mail-pg1-x52e.google.com\n\t[IPv6:2607:f8b0:4864:20::52e])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 82B976333C\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 12 Aug 2022 14:47:18 +0200 (CEST)",
            "by mail-pg1-x52e.google.com with SMTP id bh13so713459pgb.4\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 12 Aug 2022 05:47:18 -0700 (PDT)",
            "from localhost.localdomain ([2404:bd00:3:dc0d:d8e:96a2:2dbe:5a83])\n\tby smtp.gmail.com with ESMTPSA id\n\te6-20020a17090a728600b001f069352d73sm1431785pjg.25.2022.08.12.05.47.15\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tFri, 12 Aug 2022 05:47:16 -0700 (PDT)"
        ],
        "DKIM-Signature": [
            "v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1660308440;\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=U2gvreRBQ6Y3TpofvZHoVL2AVMbNIm93sJfyyfrirxF5CpXR6469dmCaCNVCBzauo\n\tB4U8JxXYddDExmMOC5nMVYrG4jOcBlDmP1CC1JfpyDnn/XYTybhQ+/XI3epDb0zSAK\n\tLM5SBkjLZrEY77DYyJgBnvX2FnM1c/F3TYF/UX/dHmeUtsoPtZx7bHjYcn8sYr/Rro\n\t+lwwquo4scLG+GAl7D8dIP2KOWUy2zOlnFHek/shckE4+VTBz9gYAsm0thh0FrP7yF\n\t5YVT+UHaIBDk9mifc7M2dJUoxX1r5TKXzklyKdcWx+N/3RLrAss+KgW0gojY04oyDs\n\tBUK6lenkQrkEw==",
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;\n\th=content-transfer-encoding:mime-version:references:in-reply-to\n\t:message-id:date:subject:cc:to:from:from:to:cc;\n\tbh=H6Q3a3MyWxu+j9oPQ0Vx1yJWr4fzvLodrhiRMAc7T4c=;\n\tb=Cy1uBZPGf7GqR7jCdBjyRsvw79AoSRWSaq3vK6udm8+PsF7euz4ia/m8GfCLyxSVzl\n\tWYdAo8YPt1oYvv6NV+ODvO7P3V/1W/Xn3rPE0Wto2hAOWytZQvBeNe6dq+CYeRIoyDaq\n\ttHKWRMRqykoyS1MHhUBgIzEmX9n1uijHT7cYfGINMUiENFfFJHQaDTQL4vref6+Q/QS3\n\tjMBy6OIZqhu6vHGu2qAPRa/lRUZbp/D2u7zvFdYBaT/hyCDF8SojfioccTE2bELq86D7\n\tDeB3LOWM9udupEMHTQO2SUbCAEQnZGGNn/kkVSBdIOKbKm/NIu0adVY2I8xUBlpPnur3\n\tRxKw=="
        ],
        "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"Cy1uBZPG\"; dkim-atps=neutral",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=content-transfer-encoding:mime-version:references:in-reply-to\n\t:message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc;\n\tbh=H6Q3a3MyWxu+j9oPQ0Vx1yJWr4fzvLodrhiRMAc7T4c=;\n\tb=BRoRrLpzowcYVfwdF6miJdkKYPs1Az/MAJqGAaieWgxcycjuifNnCB3pghwBaTRgZh\n\ti1mJV/x7VkE00xEkNfC8EKE6c3OUokYoN3jy8WIFjPJ4MK3coj48bGhjAlFNVcfKYqws\n\tQLNg3p9EangnFsfgLae+3LiufYeeYY4HmArPmzXppIYcKsQmIzMKhPF6mAyyPRAHEETC\n\t3u3p9sVu1garRHgLmhfTfilHgdM1rXvX/XetVV5JYoJfCfFx7mFMwGh8xPghN6j+X9fa\n\tNp3nDaZ+xkAe9hjkgaRlpKlKFp179Y0f0QaJceH4h4aZc0xSczJuzs5cVzyqLMNVjFea\n\trrEQ==",
        "X-Gm-Message-State": "ACgBeo3Atr0yol/xpRbgm1AIQN2uypSfcdv18TdYDgPTLcwgfndGmY5D\n\tGwpUFs3KAm7pcZnoEAu62znncM/RRNU=",
        "X-Google-Smtp-Source": "AA6agR7ca+fNGYa2rr9F2X5qwRaQ1jeN4B0Fp9R4jCD1OlCkSi3vAqkz5ve27pZn7C8ubJA349gb+w==",
        "X-Received": "by 2002:a63:a4f:0:b0:41d:e435:c857 with SMTP id\n\tz15-20020a630a4f000000b0041de435c857mr2994658pgk.433.1660308436940; \n\tFri, 12 Aug 2022 05:47:16 -0700 (PDT)",
        "To": "libcamera-devel@lists.libcamera.org",
        "Date": "Fri, 12 Aug 2022 18:16:47 +0530",
        "Message-Id": "<20220812124651.27496-8-utkarsh02t@gmail.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20220812124651.27496-1-utkarsh02t@gmail.com>",
        "References": "<20220812124651.27496-1-utkarsh02t@gmail.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[libcamera-devel] [PATCH v2 07/11] qcam: Slider: Add SliderLayout\n\tto display 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",
        "v2",
        "07/11"
    ]
}