Collatinus  11.3
dicos.h
Aller à la documentation de ce fichier.
1 /* dicos.h
2  *
3  * This file is part of COLLATINUS.
4  *
5  * COLLATINUS 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  * COLLATINVS 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 COLLATINUS; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18  *
19  * © Yves Ouvrard, 2009 - 2016
20  */
21 
22 #ifndef LEWIS_H
23 #define LEWIS_H
24 
25 #include <QtCore>
26 
27 //typedef QPair<QString, qint64> pairL;
28 
35 typedef struct
36 {
37  QString article;
38  qint64 pos;
39  qint64 taille;
40 } llew;
41 // typedef QList <pairL> llew;
42 
47 class Dictionnaire : public QObject
48 {
49  Q_OBJECT
50 
51  private:
52  QString auteur;
53  QString chData; // chemin complet du fichier djvu ou xml
54  QString chopNum(const QString c);
55  QString cond_jv;
56  // Pour pouvoir lire l'index de dicos en Tchèque, par exemple,
57  // je dois pouvoir modifier l'ordre alphabétique.
58  QString alphabet;
59  // Dans le fichier cfg, la variable "alphabet" donne
60  // toutes les "lettres" utilisées, séparées par un point ".".
61  QStringList caracteres; // En Tchèque, le digraphe "ch" est entre le h et le i.
62  QList<int> indices;
63  // Les caractères ont dû être ordonnés, mais en conservant leur indice
64  // dans l'ordre alphabétique.
65  int compChaines(QString s1, QString s2);
66  int nbCar;
67  // Une fonction pour comparer deux chaines en tenant compte
68  // de l'ordre alphabétique donné par alphabet.
69  int debut;
70  bool djvu;
71  QString echelle; // échelle pour l'extraction d'une image d'un djvu
72  QStringList idxDjvu;
73  QString idxJv; // chemin de l'index jv
74  bool ji;
75  bool JI;
76  bool jv;
77  QStringList _liens;
78  QString ligneLiens;
79  QString linPrec(QTextStream *s, qint64 pos);
80  QString n; // nom
81  int pdj;
82  QString prec; // pages précédente et suivante
83  // QString readLineBack (QFile *f, int fois=1);
84  QString repertoire;
85  QString suiv;
86 // qint64 tailleprec;
87  QString url;
88  bool xml;
89  bool xsl;
90 
91  public:
92  Dictionnaire(QString cfg, QObject *parent = 0);
93  QString entree_pos(qint64 pos, qint64 taille);
94  bool estXml();
95 // QString indexIu(); // N'est pas définie dans dicos.cpp ?
96  QString indexJv();
97  bool lis_index_djvu();
98  QStringList liens(); // renvoie liens
99  QString nom();
100  int noPageDjvu();
101  QString page(QStringList req,
102  int no = 0); // lien si la requête vient d'un hyperlien djvu
103  QString pageDjvu(int p);
104  QString pageDjvu(QStringList req,
105  int no = 0); // surcharge avec calcul des no de page
106  QString pageXml(QStringList lReq);
107  QString pgPrec();
108  QString pgSuiv();
109  QString ramise(QString f);
110  void vide_index();
111  void vide_ligneLiens();
112 };
113 
138 class ListeDic : public QObject
139 {
140  Q_OBJECT
141 
142  private:
144  QMultiMap<QString, Dictionnaire *> liste;
149 
150  public:
151  Dictionnaire *dictionnaire_par_nom(QString nom);
152  void ajoute(Dictionnaire *d);
153  void change_courant(QString nom);
155  void change_courant2(QString nom);
157  // page renvoie le code html de la page
158  // du dictionnaire courant
159  // correspondant au lemme l.
160 };
161 // Revoir cette classe ListeDic : elle ne devrait pas contenir les dicos
162 // courants
163 
164 #endif
QString ligneLiens
Definition: dicos.h:78
qint64 pos
la position de l'article dans le fichier
Definition: dicos.h:38
QString nom()
Definition: dicos.cpp:173
QString pgSuiv()
Fonction de navigation, page suivante.
Definition: dicos.cpp:607
bool djvu
Definition: dicos.h:70
QString page(QStringList req, int no=0)
Fonction de relais qui oriente la requête req vers les fonctions spécialisées de consultation djvu ou...
Definition: dicos.cpp:579
Dictionnaire * dictionnaire_par_nom(QString nom)
trouve le dictionnaire dans la liste.
Definition: dicos.cpp:640
QString ramise(QString f)
Essaie de convertir la chaîne f pour qu'elle ait une graphie ramiste (avec des 'v' et des 'j')...
Definition: dicos.cpp:692
QString entree_pos(qint64 pos, qint64 taille)
Lit l'article du dictionnaire spécifié par pos et taille.
Definition: dicos.cpp:203
Dictionnaire * currens2
pointeur vers le dictionnaire de la 2e fenêtre
Definition: dicos.h:148
QString pageDjvu(int p)
Extrait du fichier djvu la page demandée au format TIF qui sera affichée dans le navigateur.
Definition: dicos.cpp:284
QString suiv
Definition: dicos.h:85
int pdj
Definition: dicos.h:81
QString chopNum(const QString c)
Renvoie une copie de c tronquée de tous les caractères numériques qui la terminent.
Definition: dicos.cpp:184
bool jv
Definition: dicos.h:76
QString auteur
Definition: dicos.h:52
La classe ListeDic gère l'ensemble des dictionnaires présents.
Definition: dicos.h:138
QStringList caracteres
Definition: dicos.h:61
bool xml
Definition: dicos.h:88
QString echelle
Definition: dicos.h:71
void change_courant(QString nom)
Déclare le dictionnaire de nom nom comme dictionnaire courant.
Definition: dicos.cpp:658
int compChaines(QString s1, QString s2)
Dictionnaire::compChaines.
Definition: dicos.cpp:132
bool estXml()
Renvoie vrai si le dictionnaire actif est au format xml, faux dans le cas contraire.
Definition: dicos.cpp:595
int nbCar
Definition: dicos.h:66
QString chData
Definition: dicos.h:53
QString url
Definition: dicos.h:87
int noPageDjvu()
Renvoie le numéro de la dernière page de dictionnaire djvu consultée.
Definition: dicos.cpp:614
void ajoute(Dictionnaire *d)
Ajoute le dictionnaire d à la liste des dictionnaires.
Definition: dicos.cpp:652
QStringList _liens
Definition: dicos.h:77
QMultiMap< QString, Dictionnaire * > liste
QMap associant le nom du dictionnaire avec un pointeur vers l'objet.
Definition: dicos.h:144
QString repertoire
Definition: dicos.h:84
QString pgPrec()
Fonction de navigation, page précédente.
Definition: dicos.cpp:601
QString alphabet
Definition: dicos.h:58
bool xsl
Definition: dicos.h:89
Dictionnaire * courant2()
Comme courant(), mais pour le dictionnaire supplémentaire.
Definition: dicos.cpp:684
void vide_ligneLiens()
Efface la ligne de liens vers les divers articles qui s'affichent dans une page xml.
Definition: dicos.cpp:242
QStringList idxDjvu
Definition: dicos.h:72
QString idxJv
Definition: dicos.h:73
QString n
Definition: dicos.h:80
QStringList liens()
Renvoie le code html des liens de la page de dictionnaire affichée.
Definition: dicos.cpp:628
QString cond_jv
Definition: dicos.h:55
QString pageXml(QStringList lReq)
Renvoie les entrées du dictionnaire xml actif demandées par lReq.
Definition: dicos.cpp:404
groupe le lemme de l'article, sa position dans le fichier et sa taille
Definition: dicos.h:35
bool lis_index_djvu()
Lit le fichier d'index du dico en djvu.
Definition: dicos.cpp:253
bool ji
Definition: dicos.h:74
QString linPrec(QTextStream *s, qint64 pos)
QString indexJv()
Renvoie le nom du fichier contenant l'index du dictionnaire djvu courant.
Definition: dicos.cpp:621
QString article
l'entrée du dictionnaire (souvent le lemme)
Definition: dicos.h:37
QString prec
Definition: dicos.h:82
bool JI
Definition: dicos.h:75
void change_courant2(QString nom)
Comme change_courant, mais pour le dictionnaire supplémentaire.
Definition: dicos.cpp:674
int debut
Definition: dicos.h:69
qint64 taille
la taille de l'article compressé
Definition: dicos.h:39
QList< int > indices
Definition: dicos.h:62
Dictionnaire(QString cfg, QObject *parent=0)
Initialise le dictionnaire avec les données trouvées dans le fichier cfg.
Definition: dicos.cpp:41
Dictionnaire * currens
pointeur vers le dictionnaire courant
Definition: dicos.h:146
La classe Dictionnaire contient l'information relative à un dictionnaire.
Definition: dicos.h:47
Dictionnaire * courant()
Renvoie l'ojet dictionnaire courant.
Definition: dicos.cpp:668
void vide_index()
Efface l'index du dictionnaire djvu.
Definition: dicos.cpp:233