HowManyAreAnalyzed(): use status_user_agent to report progress
[linguistica.git] / exportwizard.h
blob1da11bf08b03735be983c7f1847ca5d91cea1912
1 // “Linguistica Export Wizard” dialog for saving analysis to files
2 // Copyright © 2009 The University of Chicago
3 #ifndef EXPORTWIZARD_H
4 #define EXPORTWIZARD_H
6 #include <Q3Wizard>
7 #include "ui_exportwizardbase.h"
9 #include <QSettings>
10 #include <Qt>
11 #include "canvasdialog.h"
13 class CLexicon;
14 class CCorpusWord;
15 class CCompound;
16 class CLParse;
17 class CEdge;
19 const int PROJECT_INFO_PAGE = 0;
20 const int STYLE_SHEET_PAGE = 1;
21 const int CORPUS_WORDS_FILE_PAGE = 2;
22 const int COMPOUNDS_FILE_PAGE = 3;
23 const int LINKERS_FILE_PAGE = 4;
24 const int ALL_WORDS_FILE_PAGE = 5;
25 const int ALL_STEMS_FILE_PAGE = 6;
26 const int ALL_SUFFIXES_FILE_PAGE = 7;
27 const int ALL_SUFFIX_SIGNATURES_FILE_PAGE = 8;
28 const int ALL_PREFIXES_FILE_PAGE = 9;
29 const int ALL_PREFIX_SIGNATURES_FILE_PAGE = 10;
30 const int MINI_WORDS_FILE_PAGE = 11;
31 const int MINI_SIGNATURES_FILE_PAGE = 12;
32 const int MINI_STEMS_FILE_PAGE = 13;
33 const int MINI_SUFFIXES_FILE_PAGE = 14;
34 const int MINI_PREFIXES_FILE_PAGE = 15;
35 const int CONFIRMATION = 16;
37 // Field variables
38 const QString INDEX_FIELD = "%INDEX%";
39 const QString WORD_FIELD = "%WORD%";
40 const QString CORPUS_COUNT_FIELD = "%C_COUNT%";
41 const QString MORPHS_COUNT_FIELD = "%M_COUNT%";
42 const QString MORPHS_FIELD = "%MORPHS%";
43 const QString MINI_LEX_FIELD = "%MINI_LEX%";
44 const QString DESC_LENGTH_FIELD = "%DESC_LENGTH%";
45 const QString TYPE_FIELD = "%TYPE%";
46 const QString SIGNATURE_FIELD = "%SIGNATURE%";
47 const QString SOURCE_FIELD = "%SOURCE%";
48 const QString PREFIX_FIELD = "%PREFIX%";
49 const QString STEM_FIELD = "%STEM%";
50 const QString SUFFIX_FIELD = "%SUFFIX%";
51 const QString ORIGIN_FIELD = "%ORIGIN%";
52 const QString STEM_COUNT_FIELD = "%S_COUNT%";
53 const QString EXEMPLAR_FIELD = "%EXEMPLAR%";
54 const QString REMARKS_FIELD = "%REMARKS%";
55 const QString ROBUSTNESS_FIELD = "%ROBUSTNESS%";
56 const QString STEMS_FIELD = "%STEMS%";
57 const QString COMPOUND_FIELD = "%COMPOUND%";
58 const QString PARSE_FIELD = "%PARSE%";
59 const QString SUFFIXNESS_FIELD = "%SUFFIXNESS%";
60 const QString PREFIXNESS_FIELD = "%PREFIXNESS%";
61 const QString LINKER_FIELD = "%LINKER%";
62 const QString COMPOUND_COUNT_FIELD = "%COMP_COUNT%";
63 const QString COMPOUNDS_FIELD = "%COMPOUNDS%";
65 // Field titles
66 const QString INDEX_FIELD_TITLE = "Index";
67 const QString WORD_FIELD_TITLE = "Words";
68 const QString CORPUS_COUNT_FIELD_TITLE = "Corpus Count";
69 const QString MORPHS_COUNT_FIELD_TITLE = "Morph Count";
70 const QString MORPHS_FIELD_TITLE = "Morphs";
71 const QString MINI_LEX_FIELD_TITLE = "Mini-Lex";
72 const QString DESC_LENGTH_FIELD_TITLE = "Desc. Length";
73 const QString TYPE_FIELD_TITLE = "Type";
74 const QString SIGNATURE_FIELD_TITLE = "Signature";
75 const QString SOURCE_FIELD_TITLE = "Source";
76 const QString PREFIX_FIELD_TITLE = "Prefix";
77 const QString STEM_FIELD_TITLE = "Stem";
78 const QString SUFFIX_FIELD_TITLE = "Suffix";
79 const QString ORIGIN_FIELD_TITLE = "Origin";
80 const QString STEM_COUNT_FIELD_TITLE = "Stem Count";
81 const QString EXEMPLAR_FIELD_TITLE = "Exemplar";
82 const QString REMARKS_FIELD_TITLE = "Remarks";
83 const QString ROBUSTNESS_FIELD_TITLE = "Robustness";
84 const QString STEMS_FIELD_TITLE = "Stems";
85 const QString COMPOUND_FIELD_TITLE = "Compound";
86 const QString PARSE_FIELD_TITLE = "Parse";
87 const QString SUFFIXNESS_FIELD_TITLE = "Suffixness";
88 const QString PREFIXNESS_FIELD_TITLE = "Prefixness";
89 const QString LINKER_FIELD_TITLE = "Linker";
90 const QString COMPOUND_COUNT_FIELD_TITLE = "Compound Count";
91 const QString COMPOUNDS_FIELD_TITLE = "Compounds";
93 // File titles
94 const QString BROKEN_CORPUS_FILE_TITLE = "Broken Corpus";
95 const QString CORPUS_WORDS_FILE_TITLE = "Corpus Words";
96 const QString COMPOUNDS_FILE_TITLE = "Compounds";
97 const QString LINKERS_FILE_TITLE = "Linkers";
98 const QString ALL_WORDS_FILE_TITLE = "All Words";
99 const QString ALL_STEMS_FILE_TITLE = "All Stems";
100 const QString ALL_SUFFIX_SIGNATURES_FILE_TITLE = "All Suffix Signatures";
101 const QString ALL_PREFIX_SIGNATURES_FILE_TITLE = "All Prefix Signatures";
102 const QString ALL_SUFFIXES_FILE_TITLE = "All Suffixes";
103 const QString ALL_PREFIXES_FILE_TITLE = "All Prefixes";
104 const QString MINI_WORDS_FILE_TITLE = "Words";
105 const QString MINI_STEMS_FILE_TITLE = "Stems";
106 const QString MINI_SIGNATURES_FILE_TITLE = "Signatures";
107 const QString MINI_SUFFIXES_FILE_TITLE = "Suffixes";
108 const QString MINI_PREFIXES_FILE_TITLE = "Prefixes";
110 const QString SETTINGS = "/linguistica.uchicago.edu/Linguistica/Export/";
113 class ExportWizard : public Q3Wizard, private Ui::ExportWizardBase
115 Q_OBJECT
117 CLexicon* m_pLexicon;
118 QSettings* m_pSettings;
120 public:
121 ExportWizard( CLexicon* pLexicon, QWidget* parent = 0, Qt::WindowFlags fl = 0 );
123 void exportAll();
125 public slots:
126 void browseOutputDirSlot();
127 void corpusWordsCheckedSlot(bool);
128 void compoundsCheckedSlot(bool);
129 void allWordsCheckedSlot(bool);
130 void allSuffixSignaturesCheckedSlot(bool);
131 void allPrefixSignaturesCheckedSlot(bool);
132 void allStemsCheckedSlot(bool);
133 void allSuffixesCheckedSlot(bool);
134 void allPrefixesCheckedSlot(bool);
135 void wordsCheckedSlot(bool);
136 void signaturesCheckedSlot(bool);
137 void stemsCheckedSlot(bool);
138 void suffixesCheckedSlot(bool);
139 void prefixesCheckedSlot(bool);
141 //unused parameter (bool b)
142 //void simpleTextToggledSlot(bool);
143 void simpleTextToggledSlot( );
145 //void markUpToggledSlot(bool);
146 void markUpToggledSlot( );
148 //void bothToggledSlot(bool);
149 void bothToggledSlot( );
151 void validateProjectInformationSlot();
153 // Style
154 void changePrefixColorSlot();
155 void changeSignatureColorSlot();
156 void changeStemColorSlot();
157 void changeSuffixColorSlot();
158 void changeWordColorSlot();
159 void changeCompoundColorSlot();
160 void updateStylesSlot();
162 // Corpus words
163 void corpusWordsAddIndexButtonClickedSlot();
164 void corpusWordsAddWordButtonClickedSlot();
165 void corpusWordsAddCorpusCountButtonClickedSlot();
166 void corpusWordsAddMorphCountButtonClickedSlot();
167 void corpusWordsAddMorphsButtonClickedSlot();
168 void updateCorpusWordsExampleSlot();
170 // Compounds
171 void compoundsAddIndexButtonClickedSlot();
172 void compoundsAddCompoundButtonClickedSlot();
173 void compoundsAddCorpusCountButtonClickedSlot();
174 void compoundsAddMorphCountButtonClickedSlot();
175 void compoundsAddMorphsButtonClickedSlot();
176 void compoundsAddParseButtonClickedSlot();
177 void compoundsAddSuffixnessButtonClickedSlot();
178 void compoundsAddPrefixnessButtonClickedSlot();
179 void updateCompoundsExampleSlot();
181 // Linkers
182 void linkersAddIndexButtonClickedSlot();
183 void linkersAddLinkerButtonClickedSlot();
184 void linkersAddCorpusCountButtonClickedSlot();
185 void linkersAddCompoundCountButtonClickedSlot();
186 void updateLinkersExampleSlot();
188 // All words
189 void allWordsAddIndexButtonClickedSlot();
190 void allWordsAddWordButtonClickedSlot();
191 void allWordsAddMiniLexButtonClickedSlot();
192 void allWordsAddDescLengthButtonClickedSlot();
193 void allWordsAddCorpusCountButtonClickedSlot();
194 void allWordsAddTypeButtonClickedSlot();
195 void allWordsAddSignatureButtonClickedSlot();
196 void allWordsAddSourceButtonClickedSlot();
197 void allWordsAddPrefixButtonClickedSlot();
198 void allWordsAddStemButtonClickedSlot();
199 void allWordsAddSuffixButtonClickedSlot();
200 void updateAllWordsExampleSlot();
202 // All stems
203 void allStemsAddIndexButtonClickedSlot();
204 void allStemsAddStemButtonClickedSlot();
205 void allStemsAddMiniLexButtonClickedSlot();
206 void allStemsAddDescLengthButtonClickedSlot();
207 void allStemsAddCorpusCountButtonClickedSlot();
208 void allStemsAddTypeButtonClickedSlot();
209 void allStemsAddSignatureButtonClickedSlot();
210 void allStemsAddOriginButtonClickedSlot();
211 void updateAllStemsExampleSlot();
213 // All suffixes
214 void allSuffixesAddIndexButtonClickedSlot();
215 void allSuffixesAddSuffixButtonClickedSlot();
216 void allSuffixesAddMiniLexButtonClickedSlot();
217 void allSuffixesAddDescLengthButtonClickedSlot();
218 void allSuffixesAddCorpusCountButtonClickedSlot();
219 void allSuffixesAddStemCountButtonClickedSlot();
220 void updateAllSuffixesExampleSlot();
222 // All suffix signatures
223 void allSuffixSigsAddIndexButtonClickedSlot();
224 void allSuffixSigsAddSignatureButtonClickedSlot();
225 void allSuffixSigsAddMiniLexButtonClickedSlot();
226 void allSuffixSigsAddDescLengthButtonClickedSlot();
227 void allSuffixSigsAddCorpusCountButtonClickedSlot();
228 void allSuffixSigsAddExemplarButtonClickedSlot();
229 void allSuffixSigsAddStemCountButtonClickedSlot();
230 void allSuffixSigsAddRemarksButtonClickedSlot();
231 void allSuffixSigsAddRobustnessButtonClickedSlot();
232 void updateAllSuffixSigsExampleSlot();
234 // All prefixes
235 void allPrefixesAddIndexButtonClickedSlot();
236 void allPrefixesAddPrefixButtonClickedSlot();
237 void allPrefixesAddMiniLexButtonClickedSlot();
238 void allPrefixesAddDescLengthButtonClickedSlot();
239 void allPrefixesAddCorpusCountButtonClickedSlot();
240 void allPrefixesAddStemCountButtonClickedSlot();
241 void updateAllPrefixesExampleSlot();
243 // All prefix signatures
244 void allPrefixSigsAddIndexButtonClickedSlot();
245 void allPrefixSigsAddSignatureButtonClickedSlot();
246 void allPrefixSigsAddMiniLexButtonClickedSlot();
247 void allPrefixSigsAddDescLengthButtonClickedSlot();
248 void allPrefixSigsAddCorpusCountButtonClickedSlot();
249 void allPrefixSigsAddExemplarButtonClickedSlot();
250 void allPrefixSigsAddStemCountButtonClickedSlot();
251 void allPrefixSigsAddRemarksButtonClickedSlot();
252 void allPrefixSigsAddRobustnessButtonClickedSlot();
253 void updateAllPrefixSigsExampleSlot();
255 // Mini words
256 void miniWordsAddIndexButtonClickedSlot();
257 void miniWordsAddWordButtonClickedSlot();
258 void miniWordsAddDescLengthButtonClickedSlot();
259 void miniWordsAddCorpusCountButtonClickedSlot();
260 void miniWordsAddTypeButtonClickedSlot();
261 void miniWordsAddSignatureButtonClickedSlot();
262 void miniWordsAddSourceButtonClickedSlot();
263 void miniWordsAddPrefixButtonClickedSlot();
264 void miniWordsAddStemButtonClickedSlot();
265 void miniWordsAddSuffixButtonClickedSlot();
266 void updateMiniWordsExampleSlot();
268 // Mini stems
269 void miniStemsAddIndexButtonClickedSlot();
270 void miniStemsAddStemButtonClickedSlot();
271 void miniStemsAddDescLengthButtonClickedSlot();
272 void miniStemsAddCorpusCountButtonClickedSlot();
273 void miniStemsAddTypeButtonClickedSlot();
274 void miniStemsAddSignatureButtonClickedSlot();
275 void miniStemsAddOriginButtonClickedSlot();
276 void updateMiniStemsExampleSlot();
278 // Mini signatures
279 void miniSignaturesAddIndexButtonClickedSlot();
280 void miniSignaturesAddSignatureButtonClickedSlot();
281 void miniSignaturesAddDescLengthButtonClickedSlot();
282 void miniSignaturesAddCorpusCountButtonClickedSlot();
283 void miniSignaturesAddExemplarButtonClickedSlot();
284 void miniSignaturesAddStemCountButtonClickedSlot();
285 void miniSignaturesAddRemarksButtonClickedSlot();
286 void miniSignaturesAddRobustnessButtonClickedSlot();
287 void updateMiniSignaturesExampleSlot();
289 // Mini suffixes
290 void miniSuffixesAddIndexButtonClickedSlot();
291 void miniSuffixesAddSuffixButtonClickedSlot();
292 void miniSuffixesAddDescLengthButtonClickedSlot();
293 void miniSuffixesAddCorpusCountButtonClickedSlot();
294 void miniSuffixesAddStemCountButtonClickedSlot();
295 void updateMiniSuffixesExampleSlot();
297 // Mini prefixes
298 void miniPrefixesAddIndexButtonClickedSlot();
299 void miniPrefixesAddPrefixButtonClickedSlot();
300 void miniPrefixesAddDescLengthButtonClickedSlot();
301 void miniPrefixesAddCorpusCountButtonClickedSlot();
302 void miniPrefixesAddStemCountButtonClickedSlot();
303 void updateMiniPrefixesExampleSlot();
305 private:
306 void load();
307 void save();
309 QString getCorpusWordMorphsField( CCorpusWord*, bool markUpFlag = FALSE );
310 QString getCompoundMorphsField( CCompound*, bool markUpFlag = FALSE );
311 QString getHTMLHeader( QString, QString, QString language = QString::null, QString researchers = QString::null, int myMini = -1 );
312 QString getHTMLFooter();
313 QString getLParseText( CLParse*, bool markUpFlag = FALSE, bool noLinkFlag = FALSE, QString forcedType = QString::null, QString forcedURL = QString::null );
315 void exportIndex();
316 void exportStyleSheet();
317 void exportCorpusWords();
318 void exportBrokenCorpus();
319 void exportCompounds();
320 void exportLinkers();
321 void exportAllWords();
322 void exportAllSuffixes();
323 void exportAllSuffixSigs();
324 void exportAllPrefixes();
325 void exportAllPrefixSigs();
326 void exportAllStems();
327 void exportMiniWords();
328 void exportMiniSignatures();
329 void exportMiniStems();
330 void exportMiniSuffixes();
331 void exportMiniPrefixes();
333 void saveParseImage( CEdge*, QString, CanvasDialog* dlg = NULL );
336 #endif // EXPORTWIZARD_H