~ubuntu-branches/ubuntu/lucid/kdebase/lucid

« back to all changes in this revision

Viewing changes to khelpcenter/glossary.h

  • Committer: Bazaar Package Importer
  • Author(s): Ana Beatriz Guerrero Lopez
  • Date: 2009-04-05 05:22:13 UTC
  • mfrom: (0.4.2 experimental) (0.2.2 upstream)
  • mto: This revision was merged to the branch mainline in revision 235.
  • Revision ID: james.westby@ubuntu.com-20090405052213-39thr4l6p2ss07uj
Tags: 4:4.2.2-1
* New upstream release:
  - khtml fixes. (Closes: #290285, #359680)
  - Default konsole sessions can be deleted. (Closes: #286342)
  - Tag widget uses standard application palette. (Closes: #444800)
  - ... and surely many more but we have lost track...

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 *  glossary.h - part of the KDE Help Center
3
 
 *
4
 
 *  Copyright (C) 2002 Frerich Raabe (raabe@kde.org)
5
 
 *
6
 
 *  This program is free software; you can redistribute it and/or modify
7
 
 *  it under the terms of the GNU General Public License as published by
8
 
 *  the Free Software Foundation; either version 2 of the License, or
9
 
 *  (at your option) any later version.
10
 
 *
11
 
 *  This program is distributed in the hope that it will be useful,
12
 
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 
 *  GNU General Public License for more details.
15
 
 *
16
 
 *  You should have received a copy of the GNU General Public License
17
 
 *  along with this program; if not, write to the Free Software
18
 
 *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
19
 
 */
20
 
#ifndef KHC_GLOSSARY_H
21
 
#define KHC_GLOSSARY_H
22
 
 
23
 
#include <klistview.h>
24
 
 
25
 
#include <qdict.h>
26
 
#include <qdom.h>
27
 
#include <qstringlist.h>
28
 
 
29
 
class KConfig;
30
 
class KProcess;
31
 
 
32
 
class EntryItem;
33
 
 
34
 
namespace KHC {
35
 
 
36
 
class GlossaryEntryXRef
37
 
{
38
 
        friend QDataStream &operator>>( QDataStream &, GlossaryEntryXRef & );
39
 
        public:
40
 
                typedef QValueList<GlossaryEntryXRef> List;
41
 
 
42
 
                GlossaryEntryXRef() {}
43
 
                GlossaryEntryXRef( const QString &term, const QString &id ) :
44
 
                        m_term( term ),
45
 
                        m_id( id )
46
 
                {
47
 
                }
48
 
 
49
 
                QString term() const { return m_term; }
50
 
                QString id() const { return m_id; }
51
 
        
52
 
        private:
53
 
                QString m_term;
54
 
                QString m_id;
55
 
};
56
 
 
57
 
inline QDataStream &operator<<( QDataStream &stream, const GlossaryEntryXRef &e )
58
 
{
59
 
        return stream << e.term() << e.id();
60
 
}
61
 
 
62
 
inline QDataStream &operator>>( QDataStream &stream, GlossaryEntryXRef &e )
63
 
{
64
 
        return stream >> e.m_term >> e.m_id;
65
 
}
66
 
 
67
 
class GlossaryEntry
68
 
{
69
 
        friend QDataStream &operator>>( QDataStream &, GlossaryEntry & );
70
 
        public:
71
 
                GlossaryEntry() {}
72
 
                GlossaryEntry( const QString &term, const QString &definition,
73
 
                                const GlossaryEntryXRef::List &seeAlso ) :
74
 
                        m_term( term ),
75
 
                        m_definition( definition ),
76
 
                        m_seeAlso( seeAlso )
77
 
                        {
78
 
                        }
79
 
 
80
 
                QString term() const { return m_term; }
81
 
                QString definition() const { return m_definition; }
82
 
                GlossaryEntryXRef::List seeAlso() const { return m_seeAlso; }
83
 
        
84
 
        private:
85
 
                QString m_term;
86
 
                QString m_definition;
87
 
                GlossaryEntryXRef::List m_seeAlso;
88
 
};
89
 
 
90
 
inline QDataStream &operator<<( QDataStream &stream, const GlossaryEntry &e )
91
 
{
92
 
        return stream << e.term() << e.definition() << e.seeAlso();
93
 
}
94
 
 
95
 
inline QDataStream &operator>>( QDataStream &stream, GlossaryEntry &e )
96
 
{
97
 
        return stream >> e.m_term >> e.m_definition >> e.m_seeAlso;
98
 
}
99
 
 
100
 
class Glossary : public KListView
101
 
{
102
 
        Q_OBJECT
103
 
        public:
104
 
                Glossary( QWidget *parent );
105
 
                virtual ~Glossary();
106
 
 
107
 
                const GlossaryEntry &entry( const QString &id ) const;
108
 
 
109
 
    static QString entryToHtml( const GlossaryEntry &entry );
110
 
 
111
 
    virtual void show();
112
 
 
113
 
        public slots:
114
 
                void slotSelectGlossEntry( const QString &id );
115
 
 
116
 
        signals:
117
 
                void entrySelected( const GlossaryEntry &entry );
118
 
                
119
 
        private slots:
120
 
                void meinprocExited( KProcess *meinproc );
121
 
                void treeItemSelected( QListViewItem *item );
122
 
 
123
 
        private:
124
 
                enum CacheStatus { NeedRebuild, CacheOk };
125
 
 
126
 
                CacheStatus cacheStatus() const;
127
 
                int glossaryCTime() const;
128
 
                void rebuildGlossaryCache();
129
 
                void buildGlossaryTree();
130
 
                QDomElement childElement( const QDomElement &e, const QString &name );
131
 
 
132
 
                KConfig *m_config;
133
 
                QListViewItem *m_byTopicItem;
134
 
                QListViewItem *m_alphabItem;
135
 
                QString m_sourceFile;
136
 
                QString m_cacheFile;
137
 
                CacheStatus m_status;
138
 
                QDict<GlossaryEntry> m_glossEntries;
139
 
    QDict<EntryItem> m_idDict;
140
 
    bool m_initialized;
141
 
};
142
 
 
143
 
}
144
 
 
145
 
#endif // KHC_GLOSSARY_H
146
 
// vim:ts=2:sw=2:et