1 /*
2 SPDX-FileCopyrightText: 2007 Jean-Baptiste Mardelle <jb@kdenlive.org>
3 SPDX-FileCopyrightText: 2013 Jean-Nicolas Artaud <jeannicolasartaud@gmail.com>
4
5 SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
6 */
7
8 // Self
9 #include "invaliddialog.h"
10
11 // Qt
12 #include <QLabel>
13 #include <QListWidget>
14 #include <QVBoxLayout>
15
16 // KDE
17 #include <QDialog>
18 #include <QDialogButtonBox>
19 #include <QPushButton>
20
InvalidDialog(const QString & caption,const QString & message,bool infoOnly,QWidget * parent)21 InvalidDialog::InvalidDialog(const QString &caption, const QString &message, bool infoOnly, QWidget *parent)
22 : QDialog(parent)
23 {
24 auto *mainLayout = new QVBoxLayout(this);
25 setWindowTitle(caption);
26 // Info only means users can only click on ok
27 QDialogButtonBox *buttonBox;
28 QPushButton *okButton;
29 if (infoOnly) {
30 buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok);
31 okButton = buttonBox->button(QDialogButtonBox::Ok);
32 } else {
33 buttonBox = new QDialogButtonBox(QDialogButtonBox::No | QDialogButtonBox::Yes);
34 okButton = buttonBox->button(QDialogButtonBox::Yes);
35 }
36 okButton->setDefault(true);
37 okButton->setShortcut(Qt::CTRL | Qt::Key_Return);
38 connect(buttonBox, &QDialogButtonBox::accepted, this, &InvalidDialog::accept);
39 connect(buttonBox, &QDialogButtonBox::rejected, this, &InvalidDialog::reject);
40
41 m_clipList = new QListWidget(this);
42 mainLayout->addWidget(new QLabel(message));
43 mainLayout->addWidget(m_clipList);
44 mainLayout->addWidget(buttonBox);
45 }
46
~InvalidDialog()47 InvalidDialog::~InvalidDialog()
48 {
49 delete m_clipList;
50 }
51
addClip(const QString & id,const QString & path)52 void InvalidDialog::addClip(const QString &id, const QString &path)
53 {
54 auto *item = new QListWidgetItem(path);
55 item->setData(Qt::UserRole, id);
56 m_clipList->addItem(item);
57 }
58
getIds() const59 QStringList InvalidDialog::getIds() const
60 {
61 QStringList ids;
62 ids.reserve(m_clipList->count());
63 for (int i = 0; i < m_clipList->count(); ++i) {
64 ids << m_clipList->item(i)->data(Qt::UserRole).toString();
65 }
66 return ids;
67 }
68