[{"id":24733,"web_url":"https://patchwork.libcamera.org/comment/24733/","msgid":"<166120770371.3484129.4427743445816835224@Monstersaurus>","date":"2022-08-22T22:35:03","subject":"Re: [libcamera-devel] [PATCH v8.1 7/8] qcam: CamSelectDialog:\n\tDisplay Capture script path","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Utkarsh Tiwari via libcamera-devel (2022-08-12 13:18:35)\n> Display the path of the selected capture script in a thinner font.\n> \n> Signed-off-by: Utkarsh Tiwari <utkarsh02t@gmail.com>\n> ---\n> Difference from v8:\n>         1. scriptPathLabel_ now removed when informScriptReset() is invoked.\n> Difference from v7:\n>         1. The scriptPathLabel_ has a fixed parent now captureWidget\n>  src/qcam/cam_select_dialog.cpp | 40 ++++++++++++++++++++++++++++------\n>  src/qcam/cam_select_dialog.h   |  7 +++++-\n>  src/qcam/main_window.cpp       |  3 ++-\n>  3 files changed, 41 insertions(+), 9 deletions(-)\n> \n> diff --git a/src/qcam/cam_select_dialog.cpp b/src/qcam/cam_select_dialog.cpp\n> index 58cbfc28..44fa3ce6 100644\n> --- a/src/qcam/cam_select_dialog.cpp\n> +++ b/src/qcam/cam_select_dialog.cpp\n> @@ -19,10 +19,12 @@\n>  #include <QFileDialog>\n>  #include <QFormLayout>\n>  #include <QString>\n> +#include <QVBoxLayout>\n>  \n>  CameraSelectorDialog::CameraSelectorDialog(libcamera::CameraManager *cameraManager,\n> -                                          bool isScriptRunning, QWidget *parent)\n> -       : QDialog(parent), cm_(cameraManager), isScriptRunning_(isScriptRunning)\n> +                                          bool isScriptRunning, std::string scriptPath, QWidget *parent)\n> +       : QDialog(parent), cm_(cameraManager),\n> +         isScriptRunning_(isScriptRunning), scriptPath_(scriptPath)\n\nI feel suspicous that we need to store copies of these state variables\nthat are (/were?) owned by the MainWindow and now are stored here...\n\n\n>  {\n>         /* Use a QFormLayout for the dialog. */\n>         QFormLayout *layout = new QFormLayout(this);\n> @@ -40,14 +42,31 @@ CameraSelectorDialog::CameraSelectorDialog(libcamera::CameraManager *cameraManag\n>         connect(cameraIdComboBox_, &QComboBox::currentTextChanged,\n>                 this, &CameraSelectorDialog::handleCameraChange);\n>  \n> +       /* Setup widget for capture script button. */\n> +       QWidget *captureWidget = new QWidget;\n> +       captureWidgetLayout_ = new QVBoxLayout(captureWidget);\n> +       captureWidgetLayout_->setMargin(0);\n> +\n>         captureScriptButton_ = new QPushButton;\n>         connect(captureScriptButton_, &QPushButton::clicked,\n>                 this, &CameraSelectorDialog::handleCaptureScriptButton);\n> +       captureWidgetLayout_->addWidget(captureScriptButton_);\n> +\n> +       /* Use a thinner font to indicate script info. */\n> +       QFont smallFont;\n> +       smallFont.setWeight(QFont::Thin);\n> +\n> +       scriptPathLabel_ = new QLabel(captureWidget);\n> +       scriptPathLabel_->setFont(smallFont);\n> +       scriptPathLabel_->setWordWrap(true);\n>  \n>         /* Display the action that would be performed when button is clicked. */\n> -       if (isScriptRunning_)\n> +       if (isScriptRunning_) {\n>                 captureScriptButton_->setText(\"Stop\");\n> -       else\n> +\n> +               scriptPathLabel_->setText(QString::fromStdString(scriptPath_));\n> +               captureWidgetLayout_->addWidget(scriptPathLabel_);\n> +       } else\n>                 captureScriptButton_->setText(\"Open\");\n>  \n>         /* Setup the QDialogButton Box */\n> @@ -64,7 +83,7 @@ CameraSelectorDialog::CameraSelectorDialog(libcamera::CameraManager *cameraManag\n>         layout->addRow(\"Camera:\", cameraIdComboBox_);\n>         layout->addRow(\"Location:\", cameraLocation_);\n>         layout->addRow(\"Model:\", cameraModel_);\n> -       layout->addRow(\"Capture Script:\", captureScriptButton_);\n> +       layout->addRow(\"Capture Script:\", captureWidget);\n>         layout->addWidget(buttonBox);\n>  }\n>  \n> @@ -139,16 +158,22 @@ void CameraSelectorDialog::handleCaptureScriptButton()\n>                 Q_EMIT stopCaptureScript();\n>                 isScriptRunning_ = false;\n>                 captureScriptButton_->setText(\"Open\");\n> +\n> +               captureWidgetLayout_->removeWidget(scriptPathLabel_);\n>         } else {\n>                 selectedScriptPath_ = QFileDialog::getOpenFileName(this,\n>                                                                    \"Run Capture Script\", QDir::currentPath(),\n>                                                                    \"Capture Script (*.yaml)\")\n>                                               .toStdString();\n>  \n> -               if (!selectedScriptPath_.empty())\n> +               if (!selectedScriptPath_.empty()) {\n>                         captureScriptButton_->setText(\"Loaded\");\n> -               else\n> +                       scriptPathLabel_->setText(QString::fromStdString(selectedScriptPath_));\n> +                       captureWidgetLayout_->addWidget(scriptPathLabel_);\n> +               } else {\n>                         captureScriptButton_->setText(\"Open\");\n> +                       captureWidgetLayout_->removeWidget(scriptPathLabel_);\n> +               }\n\nThis adding and removing of the label seems a bit awkward too.\n\nI think most dialog boxes would present a consistent view, and have the\nfields enabled or disabled for entry when available. Or always visible\npresenting an empty box.\n\nAs this is displaying a filename, I'd expect some sort of text entry box\nto be visible (always) in the layout that represents the path of the\ncapture script (or empty when there is none).\n\nI think this would all be squashed in the previous patch too...\n\n>         }\n>  }\n>  \n> @@ -170,6 +195,7 @@ void CameraSelectorDialog::informScriptReset()\n>         isScriptRunning_ = false;\n>         scriptPath_.clear();\n>         selectedScriptPath_.clear();\n> +       captureWidgetLayout_->removeWidget(scriptPathLabel_);\n>         captureScriptButton_->setText(\"Open\");\n>  }\n>  \n> diff --git a/src/qcam/cam_select_dialog.h b/src/qcam/cam_select_dialog.h\n> index bbdf897e..72dfbb14 100644\n> --- a/src/qcam/cam_select_dialog.h\n> +++ b/src/qcam/cam_select_dialog.h\n> @@ -18,13 +18,15 @@\n>  #include <QDialog>\n>  #include <QLabel>\n>  #include <QPushButton>\n> +#include <QVBoxLayout>\n> +#include <QWidget>\n>  \n>  class CameraSelectorDialog : public QDialog\n>  {\n>         Q_OBJECT\n>  public:\n>         CameraSelectorDialog(libcamera::CameraManager *cameraManager,\n> -                            bool isScriptRunning, QWidget *parent);\n> +                            bool isScriptRunning, std::string scriptPath, QWidget *parent);\n>  \n>         ~CameraSelectorDialog() = default;\n>  \n> @@ -62,5 +64,8 @@ private:\n>         QComboBox *cameraIdComboBox_;\n>         QLabel *cameraLocation_;\n>         QLabel *cameraModel_;\n> +\n> +       QVBoxLayout *captureWidgetLayout_;\n>         QPushButton *captureScriptButton_;\n> +       QLabel *scriptPathLabel_;\n>  };\n> diff --git a/src/qcam/main_window.cpp b/src/qcam/main_window.cpp\n> index 3c7c3173..753e1af9 100644\n> --- a/src/qcam/main_window.cpp\n> +++ b/src/qcam/main_window.cpp\n> @@ -339,7 +339,8 @@ std::string MainWindow::chooseCamera()\n>  \n>         /* Construct the selection dialog, only the first time. */\n>         if (!cameraSelectorDialog_)\n> -               cameraSelectorDialog_ = new CameraSelectorDialog(cm_, scriptRunning, this);\n> +               cameraSelectorDialog_ = new CameraSelectorDialog(cm_, scriptRunning,\n> +                                                                scriptPath_, this);\n>  \n>         connect(cameraSelectorDialog_, &CameraSelectorDialog::stopCaptureScript,\n>                 this, &MainWindow::stopCaptureScript);\n> -- \n> 2.25.1\n>","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 3075CC3272\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 22 Aug 2022 22:35:09 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 8DDBA61FC0;\n\tTue, 23 Aug 2022 00:35:08 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E4BE461FA3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 23 Aug 2022 00:35:06 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 7D1CB2B3;\n\tTue, 23 Aug 2022 00:35:06 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1661207708;\n\tbh=kemPYC5jAZmJNklBeOLkDTRbQKlowAjtZXnYLZvDRQs=;\n\th=In-Reply-To:References:To:Date:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:\n\tFrom;\n\tb=vTfaU4A88tiZLaG4XojblTmI4zpNnYcj8YLTzWXTNTyfCxIEq0d8WrBKQYh20bry9\n\trDRFV3wKeNNaphsblNaO0SiOzycjqxt3fmBhrjS/rMe9ENDNdgsituud5yZ2jqcyqw\n\tbE1LYJCYU1NKfR7O+Ttu2eDMi+fSGixYIJDSYhaoC90A+bzdv4fAS6jivWC65MXypq\n\tO7Y59rsh6cFE6s4lLzyT8NexCUiXpICTNqU3pXSLyO9QBU39QSJ7LKDpusvpiHGw2n\n\tvHfL8BQNlv6/ZoAfgSnPUPiiPPvfEFrcf9ZNzp6S9vDxq9TnMoN3pWsq9A8GZMrv5I\n\tF+PRVFJE9hySA==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1661207706;\n\tbh=kemPYC5jAZmJNklBeOLkDTRbQKlowAjtZXnYLZvDRQs=;\n\th=In-Reply-To:References:Subject:From:To:Date:From;\n\tb=Krh4trNkiWH6MSywmqAGetV+5OZAe7tMeg9xaQtgrP4DzZQLQx0rhk/WRis3NjScE\n\tGR+Kjp03Uh+N1tFNHq+0q+MWSf61EAeSUgBKnVh8RG1IDuB2osvfJqxrf2QiFtRbtP\n\tdEN97+WkYormwmUhPcph8YJoCPhXuXHMmIpJ3CAM="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"Krh4trNk\"; dkim-atps=neutral","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20220812121835.21974-1-utkarsh02t@gmail.com>","References":"<20220810150349.414043-8-utkarsh02t@gmail.com>\n\t<20220812121835.21974-1-utkarsh02t@gmail.com>","To":"Utkarsh Tiwari <utkarsh02t@gmail.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Mon, 22 Aug 2022 23:35:03 +0100","Message-ID":"<166120770371.3484129.4427743445816835224@Monstersaurus>","User-Agent":"alot/0.10","Subject":"Re: [libcamera-devel] [PATCH v8.1 7/8] qcam: CamSelectDialog:\n\tDisplay Capture script path","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":"Kieran Bingham via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":24743,"web_url":"https://patchwork.libcamera.org/comment/24743/","msgid":"<YwQ/KwqRkuHMdkId@pendragon.ideasonboard.com>","date":"2022-08-23T02:44:59","subject":"Re: [libcamera-devel] [PATCH v8.1 7/8] qcam: CamSelectDialog:\n\tDisplay Capture script path","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Mon, Aug 22, 2022 at 11:35:03PM +0100, Kieran Bingham via libcamera-devel wrote:\n> Quoting Utkarsh Tiwari via libcamera-devel (2022-08-12 13:18:35)\n> > Display the path of the selected capture script in a thinner font.\n\nThe rationale for this should be indicated in the commit message. I\nsuspect this is because the path can be long. This would be fixed by my\nUI proposal in patch 6/8, by displaying the file name without the path\nin the button.\n\n> > Signed-off-by: Utkarsh Tiwari <utkarsh02t@gmail.com>\n> > ---\n> > Difference from v8:\n> >         1. scriptPathLabel_ now removed when informScriptReset() is invoked.\n> > Difference from v7:\n> >         1. The scriptPathLabel_ has a fixed parent now captureWidget\n> >  src/qcam/cam_select_dialog.cpp | 40 ++++++++++++++++++++++++++++------\n> >  src/qcam/cam_select_dialog.h   |  7 +++++-\n> >  src/qcam/main_window.cpp       |  3 ++-\n> >  3 files changed, 41 insertions(+), 9 deletions(-)\n> > \n> > diff --git a/src/qcam/cam_select_dialog.cpp b/src/qcam/cam_select_dialog.cpp\n> > index 58cbfc28..44fa3ce6 100644\n> > --- a/src/qcam/cam_select_dialog.cpp\n> > +++ b/src/qcam/cam_select_dialog.cpp\n> > @@ -19,10 +19,12 @@\n> >  #include <QFileDialog>\n> >  #include <QFormLayout>\n> >  #include <QString>\n> > +#include <QVBoxLayout>\n> >  \n> >  CameraSelectorDialog::CameraSelectorDialog(libcamera::CameraManager *cameraManager,\n> > -                                          bool isScriptRunning, QWidget *parent)\n> > -       : QDialog(parent), cm_(cameraManager), isScriptRunning_(isScriptRunning)\n> > +                                          bool isScriptRunning, std::string scriptPath, QWidget *parent)\n> > +       : QDialog(parent), cm_(cameraManager),\n> > +         isScriptRunning_(isScriptRunning), scriptPath_(scriptPath)\n> \n> I feel suspicous that we need to store copies of these state variables\n> that are (/were?) owned by the MainWindow and now are stored here...\n\nAnd this change is unrelated to this patch, it seems to be done to\nsupport 8/8, and should move there.\n\n> >  {\n> >         /* Use a QFormLayout for the dialog. */\n> >         QFormLayout *layout = new QFormLayout(this);\n> > @@ -40,14 +42,31 @@ CameraSelectorDialog::CameraSelectorDialog(libcamera::CameraManager *cameraManag\n> >         connect(cameraIdComboBox_, &QComboBox::currentTextChanged,\n> >                 this, &CameraSelectorDialog::handleCameraChange);\n> >  \n> > +       /* Setup widget for capture script button. */\n> > +       QWidget *captureWidget = new QWidget;\n> > +       captureWidgetLayout_ = new QVBoxLayout(captureWidget);\n> > +       captureWidgetLayout_->setMargin(0);\n> > +\n> >         captureScriptButton_ = new QPushButton;\n> >         connect(captureScriptButton_, &QPushButton::clicked,\n> >                 this, &CameraSelectorDialog::handleCaptureScriptButton);\n> > +       captureWidgetLayout_->addWidget(captureScriptButton_);\n> > +\n> > +       /* Use a thinner font to indicate script info. */\n> > +       QFont smallFont;\n> > +       smallFont.setWeight(QFont::Thin);\n> > +\n> > +       scriptPathLabel_ = new QLabel(captureWidget);\n> > +       scriptPathLabel_->setFont(smallFont);\n> > +       scriptPathLabel_->setWordWrap(true);\n> >  \n> >         /* Display the action that would be performed when button is clicked. */\n> > -       if (isScriptRunning_)\n> > +       if (isScriptRunning_) {\n> >                 captureScriptButton_->setText(\"Stop\");\n> > -       else\n> > +\n> > +               scriptPathLabel_->setText(QString::fromStdString(scriptPath_));\n> > +               captureWidgetLayout_->addWidget(scriptPathLabel_);\n> > +       } else\n> >                 captureScriptButton_->setText(\"Open\");\n> >  \n> >         /* Setup the QDialogButton Box */\n> > @@ -64,7 +83,7 @@ CameraSelectorDialog::CameraSelectorDialog(libcamera::CameraManager *cameraManag\n> >         layout->addRow(\"Camera:\", cameraIdComboBox_);\n> >         layout->addRow(\"Location:\", cameraLocation_);\n> >         layout->addRow(\"Model:\", cameraModel_);\n> > -       layout->addRow(\"Capture Script:\", captureScriptButton_);\n> > +       layout->addRow(\"Capture Script:\", captureWidget);\n> >         layout->addWidget(buttonBox);\n> >  }\n> >  \n> > @@ -139,16 +158,22 @@ void CameraSelectorDialog::handleCaptureScriptButton()\n> >                 Q_EMIT stopCaptureScript();\n> >                 isScriptRunning_ = false;\n> >                 captureScriptButton_->setText(\"Open\");\n> > +\n> > +               captureWidgetLayout_->removeWidget(scriptPathLabel_);\n> >         } else {\n> >                 selectedScriptPath_ = QFileDialog::getOpenFileName(this,\n> >                                                                    \"Run Capture Script\", QDir::currentPath(),\n> >                                                                    \"Capture Script (*.yaml)\")\n> >                                               .toStdString();\n> >  \n> > -               if (!selectedScriptPath_.empty())\n> > +               if (!selectedScriptPath_.empty()) {\n> >                         captureScriptButton_->setText(\"Loaded\");\n> > -               else\n> > +                       scriptPathLabel_->setText(QString::fromStdString(selectedScriptPath_));\n> > +                       captureWidgetLayout_->addWidget(scriptPathLabel_);\n> > +               } else {\n> >                         captureScriptButton_->setText(\"Open\");\n> > +                       captureWidgetLayout_->removeWidget(scriptPathLabel_);\n> > +               }\n> \n> This adding and removing of the label seems a bit awkward too.\n> \n> I think most dialog boxes would present a consistent view, and have the\n> fields enabled or disabled for entry when available. Or always visible\n> presenting an empty box.\n> \n> As this is displaying a filename, I'd expect some sort of text entry box\n> to be visible (always) in the layout that represents the path of the\n> capture script (or empty when there is none).\n> \n> I think this would all be squashed in the previous patch too...\n\nI expect this patch to be heavily modified, or possibly dropped, with\nthe UI changes from 6/8.\n\n> >         }\n> >  }\n> >  \n> > @@ -170,6 +195,7 @@ void CameraSelectorDialog::informScriptReset()\n> >         isScriptRunning_ = false;\n> >         scriptPath_.clear();\n> >         selectedScriptPath_.clear();\n> > +       captureWidgetLayout_->removeWidget(scriptPathLabel_);\n> >         captureScriptButton_->setText(\"Open\");\n> >  }\n> >  \n> > diff --git a/src/qcam/cam_select_dialog.h b/src/qcam/cam_select_dialog.h\n> > index bbdf897e..72dfbb14 100644\n> > --- a/src/qcam/cam_select_dialog.h\n> > +++ b/src/qcam/cam_select_dialog.h\n> > @@ -18,13 +18,15 @@\n> >  #include <QDialog>\n> >  #include <QLabel>\n> >  #include <QPushButton>\n> > +#include <QVBoxLayout>\n> > +#include <QWidget>\n> >  \n> >  class CameraSelectorDialog : public QDialog\n> >  {\n> >         Q_OBJECT\n> >  public:\n> >         CameraSelectorDialog(libcamera::CameraManager *cameraManager,\n> > -                            bool isScriptRunning, QWidget *parent);\n> > +                            bool isScriptRunning, std::string scriptPath, QWidget *parent);\n> >  \n> >         ~CameraSelectorDialog() = default;\n> >  \n> > @@ -62,5 +64,8 @@ private:\n> >         QComboBox *cameraIdComboBox_;\n> >         QLabel *cameraLocation_;\n> >         QLabel *cameraModel_;\n> > +\n> > +       QVBoxLayout *captureWidgetLayout_;\n> >         QPushButton *captureScriptButton_;\n> > +       QLabel *scriptPathLabel_;\n> >  };\n> > diff --git a/src/qcam/main_window.cpp b/src/qcam/main_window.cpp\n> > index 3c7c3173..753e1af9 100644\n> > --- a/src/qcam/main_window.cpp\n> > +++ b/src/qcam/main_window.cpp\n> > @@ -339,7 +339,8 @@ std::string MainWindow::chooseCamera()\n> >  \n> >         /* Construct the selection dialog, only the first time. */\n> >         if (!cameraSelectorDialog_)\n> > -               cameraSelectorDialog_ = new CameraSelectorDialog(cm_, scriptRunning, this);\n> > +               cameraSelectorDialog_ = new CameraSelectorDialog(cm_, scriptRunning,\n> > +                                                                scriptPath_, this);\n> >  \n> >         connect(cameraSelectorDialog_, &CameraSelectorDialog::stopCaptureScript,\n> >                 this, &MainWindow::stopCaptureScript);","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 86E75C3272\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 23 Aug 2022 02:45:05 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B005A61FC0;\n\tTue, 23 Aug 2022 04:45:04 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 9EA7660E25\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 23 Aug 2022 04:45:03 +0200 (CEST)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id D66972B3;\n\tTue, 23 Aug 2022 04:45:02 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1661222704;\n\tbh=l6HULI+/ni0a79zPU7cwqacADg1J8EOkyMpN4fHx0KU=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=wo2QYdLt5kyRqux2THGF50izS8L8sXrxh1/+mwDL04wZYQIBjwXjhdAERKHoQXAag\n\t0FyOfPlgDk6UnlWqjrh91efGmoL8uToliR1q0cktfnBHPFuAiFBZogGQTbO/cRsfZ8\n\tolG2FTfe3dsil2hCc5OYbrA21GJb3ewWmiw00tj8FKgSpFYcQfiVhHBEZtXO7/PVR0\n\ttSHOXXN8IFLgpwV2rbdoYO8curDWKR/2lPlFVyDWMUKwcGumAxnksgKtouP5Wi/lhc\n\tYgM7tML6zKiv9YJoromAgokhZb9T72guB+pTJdumn5VvGpoadk2D2l15nzYH00Awak\n\tv8TPT8VGRKQ4w==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1661222703;\n\tbh=l6HULI+/ni0a79zPU7cwqacADg1J8EOkyMpN4fHx0KU=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=E9MOX8+t+E5+0Y8T9LdnvZZrJVIlVKDVFgdgjFPEBetubm2mzKvVmnjjyk3ystP6i\n\tqLyW2ZnrCGB0dd5IooZCrymMEqvBrPbe+qd7+hRyxugSl6MbA1y64eoPV+2bqxFKxr\n\tYagfv1NwCbGjbYtjtbjHSUKJPmKcPOz8lb+f+/Ig="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"E9MOX8+t\"; dkim-atps=neutral","Date":"Tue, 23 Aug 2022 05:44:59 +0300","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<YwQ/KwqRkuHMdkId@pendragon.ideasonboard.com>","References":"<20220810150349.414043-8-utkarsh02t@gmail.com>\n\t<20220812121835.21974-1-utkarsh02t@gmail.com>\n\t<166120770371.3484129.4427743445816835224@Monstersaurus>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<166120770371.3484129.4427743445816835224@Monstersaurus>","Subject":"Re: [libcamera-devel] [PATCH v8.1 7/8] qcam: CamSelectDialog:\n\tDisplay Capture script path","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":"Laurent Pinchart via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]