HowManyAreAnalyzed(): use status_user_agent to report progress
[linguistica.git] / DLHistory.h
blobbc768a93184890c2e3fa36211be3089bc3be4256
1 // Description length log for display
2 // Copyright © 2009 The University of Chicago
3 #ifndef DLHISTORY_H
4 #define DLHISTORY_H
6 class CDLHistoryListViewItem;
7 class CDLHistory;
9 #include <Q3ListViewItem>
11 class CDLHistoryListViewItem : public Q3ListViewItem {
12 protected:
13 CDLHistory* m_dlhistory;
14 int m_index;
15 public:
16 CDLHistoryListViewItem(class Q3ListView* widget = 0);
17 CDLHistoryListViewItem(class Q3ListView* widget,
18 QString = QString(), CDLHistory* = 0, int index = 0);
19 CDLHistoryListViewItem(class Q3ListViewItem* widget,
20 QString = QString(), CDLHistory* = 0, int index = 0);
22 // list view item interface.
24 virtual QString text(int column) const;
25 virtual QString key(int column, bool ascending) const;
26 virtual int compare(class Q3ListViewItem* i, int col,
27 bool ascending) const;
29 int GetIndex() { return m_index;}
32 #include <cstddef>
33 #include <vector>
34 #include <limits>
35 #include <QString>
36 namespace linguistica { namespace ui { class status_user_agent; } }
38 class CDLHistory {
39 protected:
40 struct entry {
41 double stems_len;
42 double unanalyzed_words_len;
43 double affixes_len;
44 double signatures_len;
46 int num_stems;
47 int num_unanalyzed_words;
48 int num_analyzed_words;
50 QString remark;
51 QString mini_name;
54 std::vector<entry> log;
55 linguistica::ui::status_user_agent& s;
56 public:
57 // construction/destruction.
59 CDLHistory();
60 explicit CDLHistory(linguistica::ui::status_user_agent& status_display);
61 ~CDLHistory();
63 // output to GUI.
65 void DLHistoryListDisplay(class Q3ListView* widget);
67 // add to history.
69 /// calculate current description length and add it to the stack.
70 /// if the stack is too large, clear it first.
71 void append(QString mini_name, QString remark,
72 class CMiniLexicon* mini_lexicon);
74 /// number of entries
75 int count()
77 Q_ASSERT(log.size() <= static_cast<std::size_t>(
78 std::numeric_limits<int>::max()));
79 return static_cast<int>(log.size());
82 // read entries.
84 QString getMini(int i) { return log[i].mini_name; }
85 QString getRemark(int i) { return log[i].remark; }
86 double getStemDL(int i) { return log[i].stems_len; }
87 double getUnanalyzedWordDL(int i)
88 { return log[i].unanalyzed_words_len; }
89 double getAffixDL(int i) { return log[i].affixes_len; }
90 double getSigDL(int i) { return log[i].signatures_len; }
92 int getNumberOfStems(int i) { return log[i].num_stems; }
93 int getNumberOfAnalyzedWords(int i)
94 { return log[i].num_analyzed_words; }
95 int getNumberOfUnanalyzedWords(int i)
96 { return log[i].num_unanalyzed_words; }
99 #endif // DLHISTORY_H