Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
messageeditor.h
Go to the documentation of this file.
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 MESSAGEEDITOR_H
5#define MESSAGEEDITOR_H
6
7#include "messagemodel.h"
8
9#include <QtCore/QLocale>
10#include <QtCore/QTimer>
11
12#include <QtWidgets/QFrame>
13#include <QtWidgets/QScrollArea>
14
16
17class QBoxLayout;
18class QMainWindow;
19class QTextEdit;
20class QCheckBox;
21
22class MessageEditor;
23class FormatTextEdit;
24class FormWidget;
25class FormMultiWidget;
26
36
38{
40
41public:
44
45 void showNothing();
46 void showMessage(const MultiDataIndex &index);
47 void setNumerusForms(int model, const QStringList &numerusForms);
48 bool eventFilter(QObject *, QEvent *) override;
49 void setNumerusTranslation(int model, const QString &translation, int numerus);
50 int activeModel() const { return (m_editors.size() != 1) ? m_currentModel : 0; }
51 void setEditorFocusForModel(int model);
54 void setVisualizeWhitespace(bool value);
55 void setFontSize(const float fontSize);
56 float fontSize();
57
60 void translatorCommentChanged(const QString &comment);
61 void activeModelChanged(int model);
62
63 void undoAvailable(bool avail);
64 void redoAvailable(bool avail);
65#ifndef QT_NO_CLIPBOARD
66 void cutAvailable(bool avail);
67 void copyAvailable(bool avail);
68 void pasteAvailable(bool avail);
69#endif
70
71public slots:
72 void undo();
73 void redo();
74#ifndef QT_NO_CLIPBOARD
75 void cut();
76 void copy();
77 void paste();
78#endif
79 void selectAll();
80 void beginFromSource();
81 void setEditorFocus();
82 void setTranslation(int latestModel, const QString &translation);
83 void setLengthVariants(bool on);
84 void increaseFontSize();
85 void decreaseFontSize();
86 void resetFontSize();
87
88private slots:
90 void editorDestroyed();
91 void selectionChanged(QTextEdit *);
92 void toggleNcrMode();
93 void resetHoverSelection();
94 void emitTranslationChanged(QTextEdit *);
95 void emitTranslatorCommentChanged(QTextEdit *);
96#ifndef QT_NO_CLIPBOARD
97 void updateCanPaste();
98 void clipboardChanged();
99#endif
100 void messageModelAppended();
101 void messageModelDeleted(int model);
102 void allModelsDeleted();
103 void setTargetLanguage(int model);
104 void reallyFixTabOrder();
105
106private:
107 void setupEditorPage();
108 void setEditingEnabled(int model, bool enabled);
109 bool focusNextUnfinished(int start);
110 void resetSelection();
111 void grabFocus(QWidget *widget);
112 void trackFocus(QWidget *widget);
113 void activeModelAndNumerus(int *model, int *numerus) const;
114 QTextEdit *activeTranslation() const;
115 QTextEdit *activeOr1stTranslation() const;
116 QTextEdit *activeTransComment() const;
117 QTextEdit *activeEditor() const;
118 QTextEdit *activeOr1stEditor() const;
119 MessageEditorData *modelForWidget(const QObject *o);
120 int activeTranslationNumerus() const;
121 QStringList translations(int model) const;
122 void updateUndoRedo();
123#ifndef QT_NO_CLIPBOARD
124 void updateCanCutCopy();
125#endif
126 void addPluralForm(int model, const QString &label, bool writable);
127 void fixTabOrder();
128 QPalette paletteForModel(int model) const;
129 void applyFontSize();
130
131 MultiDataModel *m_dataModel;
132
133 MultiDataIndex m_currentIndex;
134 int m_currentModel;
135 int m_currentNumerus;
136
137 bool m_lengthVariants;
138 float m_fontSize;
139
140 bool m_undoAvail;
141 bool m_redoAvail;
142 bool m_cutAvail;
143 bool m_copyAvail;
144
145 bool m_clipboardEmpty;
146 bool m_visualizeWhitespace;
147
148 QTextEdit *m_selectionHolder;
149 QWidget *m_focusWidget;
150 QBoxLayout *m_layout;
151 FormWidget *m_source;
152 FormWidget *m_pluralSource;
153 FormWidget *m_commentText;
154 QCheckBox *m_ncrModeBox;
155 QList<MessageEditorData> m_editors;
156
157 QTimer m_tabOrderTimer;
158};
159
160QT_END_NAMESPACE
161
162#endif // MESSAGEEDITOR_H
void setPhraseBooks(const QList< PhraseBook * > &phrasebooks, int modelIndex)
CheckableListModel(QObject *parent=0)
Qt::ItemFlags flags(const QModelIndex &index) const override
Returns the item flags for the given index.
int message() const
TranslationType translationType() const
int group() const
bool isValid() const
void updateStatistics()
void addError(int model, const Validator::ErrorType type, const QString &arg=QString())
QString firstError()
void clear()
FocusWatcher(MessageEditor *msgedit, QObject *parent)
bool eventFilter(QObject *object, QEvent *event) override
Filters events if this object has been installed as an event filter for the watched object.
void setDataModel(MultiDataModel *dm)
~MainWindow() override
void writeConfig()
void closeEvent(QCloseEvent *e) override
This event handler is called with the given event when Qt receives a window close request for a top-l...
bool openFiles(const QStringList &names)
bool eventFilter(QObject *obj, QEvent *ev) override
Filters events if this object has been installed as an event filter for the watched object.
void readConfig()
void setLengthVariants(bool on)
int activeModel() const
void redoAvailable(bool avail)
void cutAvailable(bool avail)
void undoAvailable(bool avail)
void translatorCommentChanged(const QString &comment)
void setVisualizeWhitespace(bool value)
void setEditorFocusForModel(int model)
void setTranslation(int latestModel, const QString &translation)
void setNumerusTranslation(int model, const QString &translation, int numerus)
void pasteAvailable(bool avail)
void setFontSize(const float fontSize)
void setUnfinishedEditorFocus()
bool focusNextUnfinished()
void activeModelChanged(int model)
void copyAvailable(bool avail)
void setNumerusForms(int model, const QStringList &numerusForms)
void showMessage(const MultiDataIndex &index)
bool eventFilter(QObject *, QEvent *) override
bool danger() const
bool isFinished() const
const TranslatorMessage & message() const
TranslatorMessage::Type type() const
int lineNumber() const
bool isObsolete() const
void setModel(int model)
int model() const
MultiDataIndex(TranslationType type=TEXTBASED, int model=-1, int group=-1, int message=-1)
MultiDataModelIterator(TranslationType type, MultiDataModel *model=0, int modelNo=-1, int groupNo=0, int messageNo=0)
MessageItem * current() const
bool isModified(int model) const
int labelCount() const
MessageItem * messageItem(const MultiDataIndex &index, int model) const
void setModified(int model, bool dirty)
MultiGroupItem * multiGroupItem(const MultiDataIndex &index) const
DataModel * model(int i)
bool isModified() const
MultiGroupItem * multiGroupItem(int idx, TranslationType type) const
void languageChanged(int model)
int getNumFinished() const
void setDanger(const MultiDataIndex &index, bool danger)
int modelCount() const
bool isModelWritable(int model) const
MultiMessageItem * multiMessageItem(const MultiDataIndex &index) const
int getNumEditable() const
int contextCount() const
void translationChanged(const MultiDataIndex &index)
void multiGroupDataChanged(const MultiDataIndex &index)
MessageItem * messageItem(const MultiDataIndex &index) const
void setFinished(const MultiDataIndex &index, bool finished)
void messageDataChanged(const MultiDataIndex &index)
void close(int model)
bool isModified() const
Definition phrase.h:68
void listChanged()
void update()
void setCurrentMessageFromGuess(int modelIndex, const Candidate &cand)
Definition qlist.h:80
bool setSourceContext(int model, MessageItem *messageItem)
QVariant headerData(int section, Qt::Orientation orientation, int role) const override
\reimp
SortedGroupsModel(QObject *parent, MultiDataModel *model, TranslationType translationType)
SortedMessagesModel(QObject *parent, MultiDataModel *model, TranslationType translationType)
QVariant headerData(int section, Qt::Orientation orientation, int role) const override
\reimp
void setPhraseBook(PhraseBook *phraseBook)
bool isTranslated() const
void setSourceContext(int model, MessageItem *messageItem)
QString settingPath(const char *path)
Definition globals.cpp:33
bool isDarkMode()
Definition globals.cpp:38
QPixmap createMarkIcon(TranslationMarks mark, bool darkMode)
Definition globals.cpp:44
const QString & settingsPrefix()
Definition globals.cpp:25
TranslationType
@ IDBASED
@ TEXTBASED
static QString fileFilters(bool allFirst)
static const QVariant & pxObsolete()
QList< FormMultiWidget * > transTexts
FormWidget * transCommentText
int firstNonobsoleteMessageIndex(int msgIdx) const
bool isUnfinished() const
OpenedFile(DataModel *_dataModel, bool _readWrite, bool _langGuessed)
DataModel * dataModel
TranslatableEntryType type
QTreeWidgetItem * treeWidgetItem
QListWidgetItem * listWidgetItem
QTableWidgetItem * tableWidgetItem
@ SaveEverything
TranslatableEntryType
@ TranslatableTabPageWhatsThis
@ TranslatableTableWidgetItem
@ TranslatableListWidgetItem
@ TranslatableTreeWidgetItem
@ TranslatableComboBoxItem
@ TranslatableTabPageToolTip
@ TranslatableToolItemToolTip
@ TranslatableProperty
@ TranslatableToolItemText
@ TranslatableTabPageText