CMiniLexicon::FindMajorSignatures(): use log file routines
[linguistica.git] / StemListViewItem.h
blobc13ba42dde158be22ce36564bde629632c69d6fe
1 // Q3ListViewItem pointers to CStem in its two roles
2 // Copyright © 2009 The University of Chicago
3 #ifndef STEMLISTVIEWITEM_H
4 #define STEMLISTVIEWITEM_H
6 class CWordListViewItem;
7 class CStemListViewItem;
9 #include <Q3ListViewItem>
10 #include <QString>
11 class Q3ListView;
12 template<class K, class V> class QMap;
13 class CSignature;
14 class CStem;
16 /// A list view item for words.
17 /**
18 Contains all the necessary variables needed when displaying a
19 word and its data in a list view.
22 class CWordListViewItem : public Q3ListViewItem {
23 public:
24 enum display_mode {
25 MiniLexicon_MorphologyStuffFirst,
26 MiniLexicon_PhonologyStuffFirst,
27 Lexicon_Word,
29 private:
30 CStem* m_pWord;
31 int m_mini;
32 QMap<QString, QString>* m_filter;
33 enum display_mode m_DisplayMode;
34 int m_char_count;
35 double m_DL;
36 QString m_prefix;
37 QString m_stem;
38 QString m_suffix;
39 QString m_signature;
40 QString m_tier1;
41 QString m_tier1_skeleton;
42 QString m_tier2;
43 CSignature* m_pSig;
44 public:
45 // construction/destruction.
47 explicit CWordListViewItem(Q3ListView* parent = 0);
49 CWordListViewItem(Q3ListView* parent, QString word_text,
50 int mini_index = -1, CStem* word = 0,
51 QMap<QString, QString>* filter = 0,
52 enum display_mode format = MiniLexicon_MorphologyStuffFirst,
53 int char_count = 27);
55 CWordListViewItem(Q3ListViewItem* parent, QString word_text,
56 int mini_index = -1, CStem* word = 0,
57 QMap<QString, QString>* filter = 0,
58 enum display_mode format = MiniLexicon_MorphologyStuffFirst,
59 int char_count = 27);
61 // copy.
63 CWordListViewItem(const CWordListViewItem& x)
64 : Q3ListViewItem(x),
65 m_pWord(x.m_pWord),
66 m_mini(x.m_mini),
67 m_filter(x.m_filter),
68 m_DisplayMode(x.m_DisplayMode),
69 m_char_count(x.m_char_count),
70 m_DL(x.m_DL),
71 m_prefix(x.m_prefix),
72 m_stem(x.m_stem),
73 m_suffix(x.m_suffix),
74 m_signature(x.m_signature),
75 m_tier1(x.m_tier1),
76 m_tier1_skeleton(x.m_tier1_skeleton),
77 m_tier2(x.m_tier2),
78 m_pSig(x.m_pSig) { }
79 CWordListViewItem& operator=(const CWordListViewItem& x)
81 Q3ListViewItem::operator=(x);
82 m_pWord = x.m_pWord;
83 m_mini = x.m_mini;
84 m_filter = x.m_filter;
85 m_DisplayMode = x.m_DisplayMode;
86 m_char_count = x.m_char_count;
87 m_DL = x.m_DL;
88 m_prefix = x.m_prefix;
89 m_stem = x.m_stem;
90 m_suffix = x.m_suffix;
91 m_signature = x.m_signature;
92 m_tier1 = x.m_tier1;
93 m_tier1_skeleton = x.m_tier1_skeleton;
94 m_tier2 = x.m_tier2;
95 m_pSig = x.m_pSig;
96 return *this;
99 // Qt3 list view item interface.
101 virtual QString text(int column_index) const;
102 int compare(Q3ListViewItem* other, int column, bool ascending) const;
103 virtual QString key(int column, bool ascending) const;
105 // underlying stem object.
107 CStem* GetWord() { return m_pWord; }
108 void SetWord(CStem* pWord) { m_pWord = pWord; }
110 /// index of mini-lexicon containing this word (or -1 for none)
111 int GetMini() { return m_mini; }
113 /// description length
114 double GetDL() { return m_DL; }
116 bool isFullLex() { return false; }
119 /// A list view item for stems.
121 Contains all the necessary variables needed when displaying a
122 stem and its data in a list view.
125 class CStemListViewItem : public Q3ListViewItem {
126 CStem* m_Stem;
127 QMap<QString, QString>* m_filter;
128 int m_char_count;
129 int m_mini;
130 public:
131 // construction/destruction.
133 explicit CStemListViewItem(Q3ListView* parent = 0);
134 CStemListViewItem(Q3ListView* parent, QString stem_text,
135 int mini_index = -1, CStem* stem = 0,
136 QMap<QString, QString>* filter = 0,
137 int char_count = 27);
138 CStemListViewItem(Q3ListViewItem* parent, QString stem_text,
139 int mini_index = -1, CStem* stem = 0,
140 QMap<QString, QString>* filter = 0,
141 int char_count = 27);
143 // copy.
145 CStemListViewItem(const CStemListViewItem& x)
146 : Q3ListViewItem(x),
147 m_Stem(x.m_Stem),
148 m_filter(x.m_filter),
149 m_char_count(x.m_char_count),
150 m_mini(x.m_mini) { }
151 CStemListViewItem& operator=(const CStemListViewItem& x)
153 Q3ListViewItem::operator=(x);
154 m_Stem = x.m_Stem;
155 m_filter = x.m_filter;
156 m_char_count = x.m_char_count;
157 m_mini = x.m_mini;
158 return *this;
161 // Qt3 list view item interface.
163 virtual QString text(int column_index) const;
164 int compare(Q3ListViewItem* other, int column, bool ascending) const;
165 virtual QString key(int column, bool ascending) const;
167 // underlying stem object.
169 CStem* GetStem() { return m_Stem; }
170 void SetStem(CStem* pStem) { m_Stem = pStem; }
173 #endif // STEMLISTVIEWITEM_H