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 FORMPREVIEWVIEW_H
5#define FORMPREVIEWVIEW_H
6
7#include <private/quiloader_p.h>
8
9#include <QtCore/QHash>
10#include <QtCore/QList>
11
12#include <QtWidgets/QMainWindow>
13
14QT_BEGIN_NAMESPACE
15
16class MultiDataModel;
17class FormFrame;
18class MessageItem;
19
20class QComboBox;
21class QListWidgetItem;
22class QGridLayout;
23class QMdiArea;
24class QMdiSubWindow;
25class QToolBox;
26class QTableWidgetItem;
27class QTreeWidgetItem;
28
29enum TranslatableEntryType {
30 TranslatableProperty,
31 TranslatableToolItemText,
32 TranslatableToolItemToolTip,
33 TranslatableTabPageText,
34 TranslatableTabPageToolTip,
35 TranslatableTabPageWhatsThis,
36 TranslatableListWidgetItem,
37 TranslatableTableWidgetItem,
38 TranslatableTreeWidgetItem,
39 TranslatableComboBoxItem
40};
41
42struct TranslatableEntry {
43 TranslatableEntryType type;
44 union {
45 QObject *object;
46 QComboBox *comboBox;
47 QTabWidget *tabWidget;
48 QToolBox *toolBox;
49 QListWidgetItem *listWidgetItem;
50 QTableWidgetItem *tableWidgetItem;
51 QTreeWidgetItem *treeWidgetItem;
52 } target;
53 union {
54 char *name;
55 int index;
56 struct {
57 short index; // Known to be below 1000
58 short column;
59 } treeIndex;
60 } prop;
61};
62
63typedef QHash<QUiTranslatableStringValue, QList<TranslatableEntry> > TargetsHash;
64
65class FormPreviewView : public QMainWindow
66{
67 Q_OBJECT
68public:
69 FormPreviewView(QWidget *parent, MultiDataModel *dataModel);
70
71 void setSourceContext(int model, MessageItem *messageItem);
72
73private:
74 bool m_isActive;
75 QString m_currentFileName;
76 QMdiArea *m_mdiArea;
77 QMdiSubWindow *m_mdiSubWindow;
78 QWidget *m_form;
79 TargetsHash m_targets;
80 QList<TranslatableEntry> m_highlights;
81 MultiDataModel *m_dataModel;
82
83 QString m_lastFormName;
84 QString m_lastClassName;
85 int m_lastModel;
86};
87
88QT_END_NAMESPACE
89
90#endif // FORMPREVIEWVIEW_H
91

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