1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
3
4#ifndef PHRASEVIEW_H
5#define PHRASEVIEW_H
6
7#include <QList>
8#include <QTreeView>
9#include "phrase.h"
10
11QT_BEGIN_NAMESPACE
12
13static const int DefaultMaxCandidates = 5;
14
15class MultiDataModel;
16class PhraseModel;
17
18class PhraseView : public QTreeView
19{
20 Q_OBJECT
21
22public:
23 PhraseView(MultiDataModel *model, QList<QHash<QString, QList<Phrase *> > > *phraseDict, QWidget *parent = 0);
24 ~PhraseView();
25 void setSourceText(int model, const QString &sourceText);
26
27public slots:
28 void toggleGuessing();
29 void update();
30 int getMaxCandidates() const { return m_maxCandidates; }
31 void setMaxCandidates(const int max);
32 static int getDefaultMaxCandidates() { return DefaultMaxCandidates; }
33 void moreGuesses();
34 void fewerGuesses();
35 void resetNumGuesses();
36
37signals:
38 void phraseSelected(int latestModel, const QString &phrase);
39 void showFewerGuessesAvailable(bool canShow);
40 void setCurrentMessageFromGuess(int modelIndex, const Candidate &cand);
41
42protected:
43 // QObject
44 void contextMenuEvent(QContextMenuEvent *event) override;
45 // QAbstractItemView
46 void mouseDoubleClickEvent(QMouseEvent *event) override;
47
48private slots:
49 void guessShortcut(int nkey);
50 void selectPhrase(const QModelIndex &index);
51 void selectCurrentPhrase();
52 void editPhrase();
53 void gotoMessageFromGuess();
54
55private:
56 QList<Phrase *> getPhrases(int model, const QString &sourceText);
57 void deleteGuesses();
58
59 MultiDataModel *m_dataModel;
60 QList<QHash<QString, QList<Phrase *> > > *m_phraseDict;
61 QList<Phrase *> m_guesses;
62 PhraseModel *m_phraseModel;
63 QString m_sourceText;
64 int m_modelIndex;
65 bool m_doGuesses;
66 int m_maxCandidates = DefaultMaxCandidates;
67};
68
69QT_END_NAMESPACE
70
71#endif // PHRASEVIEW_H
72

source code of qttools/src/linguist/linguist/phraseview.h