• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdesdk API Reference
  • KDE Home
  • Contact Us
 

okteta

  • sources
  • kde-4.12
  • kdesdk
  • okteta
  • kasten
  • controllers
  • view
  • structures
structuredefinitionfile.cpp
Go to the documentation of this file.
1 /*
2  * This file is part of the Okteta Kasten Framework, made within the KDE community.
3  *
4  * Copyright 2009, 2010, 2012 Alex Richardson <alex.richardson@gmx.de>
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) version 3, or any
10  * later version accepted by the membership of KDE e.V. (or its
11  * successor approved by the membership of KDE e.V.), which shall
12  * act as a proxy defined in Section 6 of version 3 of the license.
13  *
14  * This library is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17  * Lesser General Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public
20  * License along with this library. If not, see <http://www.gnu.org/licenses/>.
21  */
22 #include "structuredefinitionfile.h"
23 
24 #include <QFile>
25 #include <QDir>
26 #include <QStringList>
27 
28 #include <KDebug>
29 #include "datatypes/topleveldatainformation.h"
30 
31 #include "parsers/abstractstructureparser.h"
32 #include "parsers/osdparser.h"
33 #include "parsers/scriptfileparser.h"
34 
35 namespace Kasten2
36 {
37 StructureDefinitionFile::StructureDefinitionFile(KPluginInfo info)
38  : mPluginInfo(info)
39 {
40  const QFileInfo tmp(info.entryPath());
41  const QString absoluteDir = tmp.absolutePath();
42 
43  QString category = info.category();
44  if (category == QLatin1String("structure/js")) {
45  const QString filename = absoluteDir + QLatin1String("/main.js");
46  mParser.reset(new ScriptFileParser(mPluginInfo.pluginName(), filename));
47  }
48  else if (category == QLatin1String("structure")) {
49  //by default use main.osd, only if it doesn't exist fall back to old behaviour
50  QString filename = absoluteDir + QLatin1String("/main.osd");
51  if (!QFile::exists(filename))
52  filename = absoluteDir + QLatin1Char('/') + mPluginInfo.pluginName() + QLatin1String(".osd");
53  mParser.reset(new OsdParser(mPluginInfo.pluginName(), filename));
54  }
55  else
56  kWarning() << "no valid parser found for plugin category '" << category << "'";
57 }
58 
59 StructureDefinitionFile::~StructureDefinitionFile()
60 {
61 }
62 
63 QVector<TopLevelDataInformation*> StructureDefinitionFile::structures() const
64 {
65  Q_CHECK_PTR(mParser);
66  return mParser->parseStructures();
67 }
68 
69 TopLevelDataInformation* StructureDefinitionFile::structure(const QString& name) const
70 {
71  Q_CHECK_PTR(mParser);
72  QVector<TopLevelDataInformation*> list = mParser->parseStructures();
73  TopLevelDataInformation* ret = 0;
74  for (int i = 0; i < list.size(); ++i)
75  {
76  if (list.at(i)->actualDataInformation()->name() == name)
77  ret = list.at(i);
78  else
79  delete list.at(i); //we have no use for this element
80  }
81  if (!ret)
82  kWarning() << "could not find structure with name=" << name;
83  return ret; // not found
84 }
85 
86 QStringList StructureDefinitionFile::structureNames() const
87 {
88  Q_CHECK_PTR(mParser);
89  return mParser->parseStructureNames();
90 }
91 
92 }
Kasten2::StructureDefinitionFile::structures
QVector< TopLevelDataInformation * > structures() const
Definition: structuredefinitionfile.cpp:63
OsdParser
Definition: osdparser.h:53
abstractstructureparser.h
ScriptFileParser
Definition: scriptfileparser.h:34
osdparser.h
QVector
Definition: scriptvalueconverter.h:30
TopLevelDataInformation
Definition: topleveldatainformation.h:46
Kasten2::StructureDefinitionFile::structureNames
QStringList structureNames() const
Definition: structuredefinitionfile.cpp:86
Kasten2::StructureDefinitionFile::structure
TopLevelDataInformation * structure(const QString &name) const
Definition: structuredefinitionfile.cpp:69
Kasten2::StructureDefinitionFile::StructureDefinitionFile
StructureDefinitionFile(KPluginInfo info)
This class uses lazy parsing.
Definition: structuredefinitionfile.cpp:37
topleveldatainformation.h
scriptfileparser.h
structuredefinitionfile.h
Kasten2::StructureDefinitionFile::~StructureDefinitionFile
virtual ~StructureDefinitionFile()
Definition: structuredefinitionfile.cpp:59
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 23:04:09 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

okteta

Skip menu "okteta"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdesdk API Reference

Skip menu "kdesdk API Reference"
  • kapptemplate
  • kcachegrind
  • kompare
  • lokalize
  • okteta
  • umbrello
  •   umbrello

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal