Guitar
FileViewWidget.h
Go to the documentation of this file.
1 #ifndef FILEVIEWWIDGET_H
2 #define FILEVIEWWIDGET_H
3 
4 #include <QWidget>
5 
7 
8 class QScrollBar;
9 struct PreEditText;
10 class BasicMainWindow;
11 class FileDiffWidget;
12 class QVBoxLayout;
13 class QStackedWidget;
14 
15 enum class FileViewType {
16  None,
17  Text,
18  Image,
19 };
20 
21 #ifdef APP_GUITAR
22 #include "MyTextEditorWidget.h"
23 #include "MyImageViewWidget.h"
24 #else
25 #include "ImageViewWidget.h"
26 #endif
27 
31 class FileViewWidget : public QWidget {
32 private:
33 
34 #ifdef APP_GUITAR
37 #else
40 #endif
41 
42  QVBoxLayout *ui_verticalLayout;
43  QStackedWidget *ui_stackedWidget;
44  QWidget *ui_page_none;
47 
48  QString source_id;
50 
51 public:
52  explicit FileViewWidget(QWidget *parent = nullptr);
53 
54  void setTextCodec(std::shared_ptr<MyTextCodec> codec);
55 
56  void setViewType(FileViewType type);
57 
58  void setImage(const std::string &mimetype, const QByteArray &ba, QString const &object_id, const QString &path);
59  void setText(const QList<Document::Line> *source, QString const &object_id, const QString &object_path);
60  void setText(const QByteArray &ba, const QString &object_id, const QString &object_path);
61 
62  void setDiffMode(const TextEditorEnginePtr &editor_engine, QScrollBar *vsb, QScrollBar *hsb);
63 
64  int lineHeight() const;
65 
66  TextEditorTheme const *theme() const;
67  void scrollToTop();
68  void write(QKeyEvent *e);
69  void refrectScrollBar();
70  void move(int cur_row, int cur_col, int scr_row, int scr_col, bool auto_scroll);
71 
73  TextEditorView const *texteditor() const;
74  void bind(FileDiffWidget *fdw, QScrollBar *vsb, QScrollBar *hsb, const TextEditorThemePtr &theme);
75 
76  void clear();
77 
79  {
80  return ui_page_text->view();
81  }
82 };
83 
84 #endif // FILEVIEWWIDGET_H
std::shared_ptr< TextEditorEngine > TextEditorEnginePtr
Definition: AbstractCharacterBasedApplication.h:149
FileViewType
Definition: FileViewWidget.h:15
std::shared_ptr< TextEditorTheme > TextEditorThemePtr
Definition: TextEditorTheme.h:9
The FileDiffWidget class サイドバイサイドで2つのファイルのdiffを表示するウィジェット
Definition: FileDiffWidget.h:40
ファイルコンテンツを表示するウィジェット
Definition: FileViewWidget.h:31
FileViewWidget(QWidget *parent=nullptr)
Definition: FileViewWidget.cpp:8
void clear()
Definition: FileViewWidget.cpp:107
QString source_id
Definition: FileViewWidget.h:48
int lineHeight() const
Definition: FileViewWidget.cpp:78
void scrollToTop()
Definition: FileViewWidget.cpp:160
X_ImageViewWidget * ui_page_image
Definition: FileViewWidget.h:46
void setViewType(FileViewType type)
Definition: FileViewWidget.cpp:57
void bind(FileDiffWidget *fdw, QScrollBar *vsb, QScrollBar *hsb, const TextEditorThemePtr &theme)
Definition: FileViewWidget.cpp:50
QWidget * ui_page_none
Definition: FileViewWidget.h:44
FileViewType view_type
Definition: FileViewWidget.h:49
TextEditorView * texteditor()
Definition: FileViewWidget.cpp:170
void refrectScrollBar()
Definition: FileViewWidget.cpp:89
void setText(const QList< Document::Line > *source, QString const &object_id, const QString &object_path)
Definition: FileViewWidget.cpp:132
void write(QKeyEvent *e)
Definition: FileViewWidget.cpp:165
TextEditorView * getTextEditorView()
Definition: FileViewWidget.h:78
void setDiffMode(const TextEditorEnginePtr &editor_engine, QScrollBar *vsb, QScrollBar *hsb)
Definition: FileViewWidget.cpp:83
QVBoxLayout * ui_verticalLayout
Definition: FileViewWidget.h:42
void setImage(const std::string &mimetype, const QByteArray &ba, QString const &object_id, const QString &path)
Definition: FileViewWidget.cpp:121
void setTextCodec(std::shared_ptr< MyTextCodec > codec)
Definition: FileViewWidget.cpp:45
TextEditorTheme const * theme() const
Definition: FileViewWidget.cpp:73
void move(int cur_row, int cur_col, int scr_row, int scr_col, bool auto_scroll)
Definition: FileViewWidget.cpp:102
X_TextEditorWidget * ui_page_text
Definition: FileViewWidget.h:45
QStackedWidget * ui_stackedWidget
Definition: FileViewWidget.h:43
Definition: ImageViewWidget.h:14
Definition: MyImageViewWidget.h:11
Definition: MyTextEditorWidget.h:8
Definition: TextEditorTheme.h:11
Definition: TextEditorView.h:32
Definition: TextEditorWidget.h:9
TextEditorView * view()
Definition: TextEditorWidget.h:18
Definition: TextEditorView.h:15