File indexing completed on 2025-03-09 03:58:37

0001 /* ============================================================
0002  *
0003  * This file is a part of digiKam project
0004  * https://www.digikam.org
0005  *
0006  * Date        : 2003-01-28
0007  * Description : a dialog to display camera information.
0008  *
0009  * SPDX-FileCopyrightText: 2003-2005 by Renchi Raju <renchi dot raju at gmail dot com>
0010  * SPDX-FileCopyrightText: 2006-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
0011  *
0012  * SPDX-License-Identifier: GPL-2.0-or-later
0013  *
0014  * ============================================================ */
0015 
0016 #include "camerainfodialog.h"
0017 
0018 // Qt includes
0019 
0020 #include <QIcon>
0021 #include <QPushButton>
0022 #include <QVBoxLayout>
0023 #include <QTabWidget>
0024 #include <QTextEdit>
0025 #include <QDialogButtonBox>
0026 
0027 // KDE includes
0028 
0029 #include <klocalizedstring.h>
0030 
0031 // Local includes
0032 
0033 #include "digikam_globals.h"
0034 #include "dxmlguiwindow.h"
0035 
0036 namespace Digikam
0037 {
0038 
0039 CameraInfoDialog::CameraInfoDialog(QWidget* const parent,
0040                                    const QString& summary,
0041                                    const QString& manual,
0042                                    const QString& about)
0043     : QDialog(parent)
0044 {
0045     setModal(true);
0046     setWindowTitle(i18nc("@title:window", "Device Information"));
0047     QDialogButtonBox* const buttons = new QDialogButtonBox(QDialogButtonBox::Help | QDialogButtonBox::Ok, this);
0048     buttons->button(QDialogButtonBox::Ok)->setDefault(true);
0049     resize(500, 400);
0050 
0051     QTabWidget* const tab           = new QTabWidget(this);
0052 
0053     // ----------------------------------------------------------
0054 
0055     QTextEdit* const summaryView = new QTextEdit(this);
0056     summaryView->setWordWrapMode(QTextOption::WordWrap);
0057     summaryView->setPlainText(summary);
0058     summaryView->setReadOnly(true);
0059     tab->insertTab(0, summaryView, QIcon::fromTheme(QLatin1String("dialog-information")), i18nc("@title", "Device Summary"));
0060 
0061     // ----------------------------------------------------------
0062 
0063     QTextEdit* const manualView  = new QTextEdit(this);
0064     manualView->setWordWrapMode(QTextOption::WordWrap);
0065     manualView->setPlainText(manual);
0066     manualView->setReadOnly(true);
0067     tab->insertTab(1, manualView, QIcon::fromTheme(QLatin1String("help-contents")), i18nc("@title", "Device Manual"));
0068 
0069     // ----------------------------------------------------------
0070 
0071     QTextEdit* const aboutView   = new QTextEdit(this);
0072     aboutView->setWordWrapMode(QTextOption::WordWrap);
0073     aboutView->setPlainText(about);
0074     aboutView->setReadOnly(true);
0075     tab->insertTab(2, aboutView, QIcon::fromTheme(QLatin1String("camera-photo")), i18nc("@title", "About Driver"));
0076 
0077     // ----------------------------------------------------------
0078 
0079     QVBoxLayout* const vbx       = new QVBoxLayout(this);
0080     vbx->addWidget(tab);
0081     vbx->addWidget(buttons);
0082     setLayout(vbx);
0083 
0084     connect(buttons->button(QDialogButtonBox::Ok), SIGNAL(clicked()),
0085             this, SLOT(accept()));
0086 
0087     connect(buttons->button(QDialogButtonBox::Help), SIGNAL(clicked()),
0088             this, SLOT(slotHelp()));
0089 }
0090 
0091 CameraInfoDialog::~CameraInfoDialog()
0092 {
0093 }
0094 
0095 void CameraInfoDialog::slotHelp()
0096 {
0097     openOnlineDocumentation(QLatin1String("import_tools"), QLatin1String("camera_import"));
0098 }
0099 
0100 } // namespace Digikam
0101 
0102 #include "moc_camerainfodialog.cpp"