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  std::string source_id;
50 
51 public:
52  explicit FileViewWidget(QWidget *parent = nullptr);
53 
54  void setViewType(FileViewType type);
55 
56  void setImage(const std::string &mimetype, const QByteArray &ba, const std::string &object_id, const QString &path);
57  void setText(const std::vector<Document::Line> *source, std::string const &object_id, const QString &object_path);
58  void setText(const QByteArray &ba, const std::string &object_id, const QString &object_path);
59 
60  void setDiffMode(TextEditorEngine_sp const &editor_engine, QScrollBar *vsb, QScrollBar *hsb);
61 
62  int lineHeight() const;
63 
64  TextEditorTheme const *theme() const;
65  void scrollToTop();
66  void write(QKeyEvent *e);
67  void reflectScrollBar();
68  void move(int cur_row, int cur_col, int scr_row, int scr_col, bool auto_scroll);
69 
71  TextEditorView const *texteditor() const;
72  void bind(FileDiffWidget *fdw, QScrollBar *vsb, QScrollBar *hsb, const TextEditorThemePtr &theme);
73 
74  void clear();
75 
77  {
78  return ui_page_text->view();
79  }
80 };
81 
82 #endif // FILEVIEWWIDGET_H
std::shared_ptr< TextEditorEngine > TextEditorEngine_sp
Definition: AbstractCharacterBasedApplication.h:228
FileViewType
Definition: FileViewWidget.h:15
std::shared_ptr< TextEditorTheme > TextEditorThemePtr
Definition: TextEditorTheme.h:9
The FileDiffWidget class サイドバイサイドで2つのファイルのdiffを表示するウィジェット
Definition: FileDiffWidget.h:41
ファイルコンテンツを表示するウィジェット
Definition: FileViewWidget.h:31
void setText(const std::vector< Document::Line > *source, std::string const &object_id, const QString &object_path)
Definition: FileViewWidget.cpp:135
FileViewWidget(QWidget *parent=nullptr)
Definition: FileViewWidget.cpp:9
void clear()
Definition: FileViewWidget.cpp:110
std::string source_id
Definition: FileViewWidget.h:48
int lineHeight() const
Definition: FileViewWidget.cpp:81
void scrollToTop()
Definition: FileViewWidget.cpp:163
X_ImageViewWidget * ui_page_image
Definition: FileViewWidget.h:46
void setViewType(FileViewType type)
Definition: FileViewWidget.cpp:60
void bind(FileDiffWidget *fdw, QScrollBar *vsb, QScrollBar *hsb, const TextEditorThemePtr &theme)
Definition: FileViewWidget.cpp:53
QWidget * ui_page_none
Definition: FileViewWidget.h:44
FileViewType view_type
Definition: FileViewWidget.h:49
TextEditorView * texteditor()
Definition: FileViewWidget.cpp:173
void setDiffMode(TextEditorEngine_sp const &editor_engine, QScrollBar *vsb, QScrollBar *hsb)
Definition: FileViewWidget.cpp:86
void write(QKeyEvent *e)
Definition: FileViewWidget.cpp:168
TextEditorView * getTextEditorView()
Definition: FileViewWidget.h:76
void reflectScrollBar()
Definition: FileViewWidget.cpp:92
QVBoxLayout * ui_verticalLayout
Definition: FileViewWidget.h:42
void setImage(const std::string &mimetype, const QByteArray &ba, const std::string &object_id, const QString &path)
Definition: FileViewWidget.cpp:124
TextEditorTheme const * theme() const
Definition: FileViewWidget.cpp:76
void move(int cur_row, int cur_col, int scr_row, int scr_col, bool auto_scroll)
Definition: FileViewWidget.cpp:105
X_TextEditorWidget * ui_page_text
Definition: FileViewWidget.h:45
QStackedWidget * ui_stackedWidget
Definition: FileViewWidget.h:43
Definition: ImageViewWidget.h:13
Definition: MyImageViewWidget.h:12
Definition: MyTextEditorWidget.h:9
Definition: TextEditorTheme.h:11
Definition: TextEditorView.h:32
Definition: TextEditorWidget.h:9
TextEditorView * view()
Definition: TextEditorWidget.h:18
Definition: TextEditorView.h:15