1 /* This file is part of the KDE project
2    Copyright (C) 2010 KO GmbH <ben.martin@kogmbh.com>
3 
4    This library is free software; you can redistribute it and/or
5    modify it under the terms of the GNU Library General Public
6    License as published by the Free Software Foundation; either
7    version 2 of the License, or (at your option) any later version.
8 
9    This library is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12    Library General Public License for more details.
13 
14    You should have received a copy of the GNU Library General Public License
15    along with this library; see the file COPYING.LIB.  If not, write to
16    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17  * Boston, MA 02110-1301, USA.
18 */
19 
20 #ifndef __rdf_KoSemanticStylesheetsEditor_h__
21 #define __rdf_KoSemanticStylesheetsEditor_h__
22 
23 #include "kordf_export.h"
24 #include "RdfForward.h"
25 // Calligra
26 #include <KoDialog.h>
27 // Qt
28 #include <QSharedPointer>
29 
30 class QTreeWidgetItem;
31 class QTableWidgetItem;
32 
33 /**
34  * @short A dialog to allow the user to see the system stylesheet definitions
35  *        and create and edit user stylesheets.
36  *
37  * @author Ben Martin <ben.martin@kogmbh.com>
38  * @see KoDocument
39  */
40 class KORDF_EXPORT KoSemanticStylesheetsEditor : public KoDialog
41 {
42     Q_OBJECT
43 public:
44     KoSemanticStylesheetsEditor(QWidget *parent, KoDocumentRdf *rdf);
45     ~KoSemanticStylesheetsEditor();
46 
47 protected Q_SLOTS:
48     void slotOk();
49     void currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous);
50     void newStylesheet();
51     void deleteStylesheet();
52     void onVariableActivated(QTableWidgetItem *item);
53     void definitionChanged();
54 
55 private:
56 
57     void setupStylesheetsItems(const QString &semanticClass,
58                                hKoRdfSemanticItem si,
59                                const QList<hKoSemanticStylesheet> &ssl,
60                                const QMap<QString, QTreeWidgetItem*> &m,
61                                bool editable = false);
62     void maskButtonsDependingOnCurrentItem(QTreeWidgetItem *current);
63 
64     class Private;
65     QSharedPointer<Private> d;
66 };
67 
68 #endif
69