Maliit Plugins
0.92.5
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
maliit-keyboard
lib
parser
layoutparser.h
Go to the documentation of this file.
1
// -*- mode: C++; c-basic-offset: 4; indent-tabs-mode: nil; c-file-offsets: ((innamespace . 0)); -*-
2
/*
3
* This file is part of Maliit Plugins
4
*
5
* Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). All rights reserved.
6
*
7
* Contact: Mohammad Anwari <Mohammad.Anwari@nokia.com>
8
*
9
* Redistribution and use in source and binary forms, with or without modification,
10
* are permitted provided that the following conditions are met:
11
*
12
* Redistributions of source code must retain the above copyright notice, this list
13
* of conditions and the following disclaimer.
14
* Redistributions in binary form must reproduce the above copyright notice, this list
15
* of conditions and the following disclaimer in the documentation and/or other materials
16
* provided with the distribution.
17
* Neither the name of Nokia Corporation nor the names of its contributors may be
18
* used to endorse or promote products derived from this software without specific
19
* prior written permission.
20
*
21
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
22
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
23
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
24
* THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
29
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
*
31
*/
32
33
#ifndef MALIIT_KEYBOARD_LAYOUTPARSER_H
34
#define MALIIT_KEYBOARD_LAYOUTPARSER_H
35
36
#include <QXmlStreamReader>
37
#include <QStringList>
38
39
#include "
tagkeyboard.h
"
40
#include "
tagkey.h
"
41
#include "
tagspacer.h
"
42
43
namespace
MaliitKeyboard {
44
45
class
LayoutParser
46
{
47
public
:
48
explicit
LayoutParser
(QIODevice *device);
49
50
bool
parse
();
51
bool
isLanguageFile
();
52
53
const
QString
errorString
()
const
;
54
55
const
TagKeyboardPtr
keyboard
()
const
;
56
const
QStringList
imports
()
const
;
57
const
QStringList
symviews
()
const
;
58
const
QStringList
numbers
()
const
;
59
const
QStringList
phonenumbers
()
const
;
60
61
private
:
62
QXmlStreamReader
m_xml
;
63
TagKeyboardPtr
m_keyboard
;
64
QStringList
m_imports
;
65
QStringList
m_symviews
;
66
QStringList
m_numbers
;
67
QStringList
m_phonenumbers
;
68
TagLayoutPtr
m_last_layout
;
69
TagSectionPtr
m_last_section
;
70
TagRowPtr
m_last_row
;
71
TagKeyPtr
m_last_key
;
72
73
void
parseKeyboard
();
74
void
parseImport
();
75
void
parseNewStyleImport
();
76
void
parseImportChild
(QStringList *target_list);
77
bool
validateOldStyleImport
();
78
void
parseLayout
();
79
void
parseSection
();
80
void
parseRow
();
81
void
parseKey
();
82
void
parseBinding
();
83
void
parseSpacer
();
84
void
goToRootElement
();
85
void
readToEnd
();
86
87
void
error
(
const
QString &message);
88
89
bool
boolValue
(
const
QStringRef &value,
bool
defaultValue);
90
91
template
<
class
E>
92
E
enumValue
(
const
char
*
const
attribute,
const
QStringList &values, E defaultValue);
93
};
94
95
}
// namespace MaliitKeyboard
96
97
#endif // MALIIT_KEYBOARD_LAYOUTPARSER_H
Generated on Fri Nov 2 2012 06:51:44 for Maliit Plugins by
1.8.1.1