]> git.sesse.net Git - kdenlive/blob - src/widgets/invaliddialog.cpp
ProjectList cleaningh
[kdenlive] / src / widgets / invaliddialog.cpp
1 /***************************************************************************
2  *   Copyright (C) 2007 by Jean-Baptiste Mardelle (jb@kdenlive.org)        *
3  *               2013 by Jean-Nicolas Artaud (jeannicolasartaud@gmail.com) *
4  *                                                                         *
5  *   This program is free software; you can redistribute it and/or modify  *
6  *   it under the terms of the GNU General Public License as published by  *
7  *   the Free Software Foundation; either version 2 of the License, or     *
8  *   (at your option) any later version.                                   *
9  *                                                                         *
10  *   This program is distributed in the hope that it will be useful,       *
11  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
12  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
13  *   GNU General Public License for more details.                          *
14  *                                                                         *
15  *   You should have received a copy of the GNU General Public License     *
16  *   along with this program; if not, write to the                         *
17  *   Free Software Foundation, Inc.,                                       *
18  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA          *
19  ***************************************************************************/
20
21 // Self
22 #include "invaliddialog.h"
23
24 // Qt
25 #include <QListWidget>
26 #include <QVBoxLayout>
27 #include <QBoxLayout>
28 #include <QLabel>
29
30 // KDE
31 #include <KDialog>
32
33 InvalidDialog::InvalidDialog(const QString &caption, const QString &message, bool infoOnly, QWidget *parent)
34     : KDialog(parent)
35 {
36     setCaption(caption);
37     // Info only means users can only click on ok
38     if (infoOnly) {
39         setButtons(KDialog::Ok);
40     } else {
41         setButtons(KDialog::Yes | KDialog::No);
42     }
43
44     QWidget *mainWidget = new QWidget(this);
45     QVBoxLayout *boxLayout = new QVBoxLayout;
46     boxLayout->addWidget(new QLabel(message));
47
48     m_clipList = new QListWidget();
49     boxLayout->addWidget(m_clipList);
50     mainWidget->setLayout(boxLayout);
51     setMainWidget(mainWidget);
52 }
53
54 InvalidDialog::~InvalidDialog()
55 {
56     delete m_clipList;
57 }
58
59 void InvalidDialog::addClip(const QString &id, const QString &path)
60 {
61     QListWidgetItem *item = new QListWidgetItem(path);
62     item->setData(Qt::UserRole, id);
63     m_clipList->addItem(item);
64 }
65
66 QStringList InvalidDialog::getIds() const
67 {
68     QStringList ids;
69     for (int i = 0; i < m_clipList->count(); ++i) {
70         ids << m_clipList->item(i)->data(Qt::UserRole).toString();
71     }
72     return ids;
73 }