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(QTextCodec *codec);
55 
56  void setViewType(FileViewType type);
57 
58  void setImage(const QString &mimetype, const QByteArray &ba, QString const &object_id, const QString &path);
59  void setText(const QList<Document::Line> *source, QMainWindow *mw, QString const &object_id, const QString &object_path);
60  void setText(const QByteArray &ba, QMainWindow *mw, 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(QMainWindow *mw, 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
FileViewWidget::ui_page_image
X_ImageViewWidget * ui_page_image
Definition: FileViewWidget.h:46
TextEditorTheme
Definition: TextEditorTheme.h:11
FileViewWidget::setImage
void setImage(const QString &mimetype, const QByteArray &ba, QString const &object_id, const QString &path)
Definition: FileViewWidget.cpp:121
TextEditorView::setFocusFrameVisible
void setFocusFrameVisible(bool f)
Definition: TextEditorView.cpp:1174
TextEditorView::theme
const TextEditorTheme * theme() const
Definition: TextEditorView.cpp:107
MyImageViewWidget.h
ImageViewWidget.h
FileViewWidget::ui_verticalLayout
QVBoxLayout * ui_verticalLayout
Definition: FileViewWidget.h:42
FileViewWidget::bind
void bind(QMainWindow *mw, FileDiffWidget *fdw, QScrollBar *vsb, QScrollBar *hsb, const TextEditorThemePtr &theme)
Definition: FileViewWidget.cpp:50
Document::Line::line_number
int line_number
Definition: AbstractCharacterBasedApplication.h:45
AbstractCharacterBasedApplication::setTextEditorEngine
void setTextEditorEngine(const TextEditorEnginePtr &e)
Definition: AbstractCharacterBasedApplication.cpp:759
TextEditorEnginePtr
std::shared_ptr< TextEditorEngine > TextEditorEnginePtr
Definition: AbstractCharacterBasedApplication.h:132
ImageViewWidget
Definition: ImageViewWidget.h:14
FileViewWidget::view_type
FileViewType view_type
Definition: FileViewWidget.h:49
ImageViewWidget::refrectScrollBar
void refrectScrollBar()
Definition: ImageViewWidget.cpp:119
FileViewWidget::scrollToTop
void scrollToTop()
Definition: FileViewWidget.cpp:163
FileViewWidget::theme
const TextEditorTheme * theme() const
Definition: FileViewWidget.cpp:73
TextEditorWidget.h
FileViewWidget.h
TextEditorView
Definition: TextEditorView.h:32
FileViewWidget::X_ImageViewWidget
ImageViewWidget X_ImageViewWidget
Definition: FileViewWidget.h:39
AbstractCharacterBasedApplication::scrollToTop
void scrollToTop()
Definition: AbstractCharacterBasedApplication.cpp:1511
AbstractCharacterBasedApplication::moveCursorOut
void moveCursorOut()
Definition: AbstractCharacterBasedApplication.cpp:1424
FileViewWidget::setDiffMode
void setDiffMode(const TextEditorEnginePtr &editor_engine, QScrollBar *vsb, QScrollBar *hsb)
Definition: FileViewWidget.cpp:83
AbstractCharacterBasedApplication::setDocument
void setDocument(const QList< Document::Line > *source)
Definition: AbstractCharacterBasedApplication.cpp:769
ImageViewWidget::bind
void bind(QMainWindow *m, FileDiffWidget *filediffwidget, QScrollBar *vsb, QScrollBar *hsb)
Definition: ImageViewWidget.cpp:72
FileViewType::None
@ None
AbstractCharacterBasedApplication::showFooter
void showFooter(bool f)
Definition: AbstractCharacterBasedApplication.cpp:164
TextEditorTheme::Light
static TextEditorThemePtr Light()
Definition: TextEditorTheme.cpp:7
FileViewWidget::refrectScrollBar
void refrectScrollBar()
Definition: FileViewWidget.cpp:89
FileViewType::Text
@ Text
AbstractCharacterBasedApplication::showHeader
void showHeader(bool f)
Definition: AbstractCharacterBasedApplication.cpp:158
TextEditorView::move
void move(int cur_row, int cur_col, int scr_row, int scr_col, bool auto_scroll)
Definition: TextEditorView.cpp:490
misc.h
FileViewWidget::write
void write(QKeyEvent *e)
Definition: FileViewWidget.cpp:168
AbstractCharacterBasedApplication::setReadOnly
void setReadOnly(bool f)
Definition: AbstractCharacterBasedApplication.cpp:2073
FileViewWidget::ui_stackedWidget
QStackedWidget * ui_stackedWidget
Definition: FileViewWidget.h:43
FileViewWidget::setText
void setText(const QList< Document::Line > *source, QMainWindow *mw, QString const &object_id, const QString &object_path)
Definition: FileViewWidget.cpp:132
TextEditorThemePtr
std::shared_ptr< TextEditorTheme > TextEditorThemePtr
Definition: TextEditorTheme.h:9
MyTextEditorWidget
Definition: MyTextEditorWidget.h:8
FileViewWidget::ui_page_none
QWidget * ui_page_none
Definition: FileViewWidget.h:44
TextEditorView::lineHeight
int lineHeight() const
行の高さ
Definition: TextEditorView.cpp:213
TextEditorView::fetchLines
FormattedLines * fetchLines()
ビューに表示されている範囲のテキストを取得
Definition: TextEditorView.cpp:705
FileViewWidget::setTextCodec
void setTextCodec(QTextCodec *codec)
Definition: FileViewWidget.cpp:45
FileViewWidget
ファイルコンテンツを表示するウィジェット
Definition: FileViewWidget.h:31
TextEditorView::bindScrollBar
void bindScrollBar(QScrollBar *vsb, QScrollBar *hsb)
Definition: TextEditorView.cpp:405
misc::splitLines
static QStringList splitLines(QByteArray const &ba, std::function< QString(char const *ptr, size_t len)> const &tos)
QByteArrayの文字列を行に分割する。
Definition: misc.cpp:33
FileViewType
FileViewType
Definition: FileViewWidget.h:15
TextEditorView::refrectScrollBar
void refrectScrollBar()
Definition: TextEditorView.cpp:1132
TextEditorWidget::view
TextEditorView * view()
Definition: TextEditorWidget.h:18
FileViewWidget::FileViewWidget
FileViewWidget(QWidget *parent=nullptr)
Definition: FileViewWidget.cpp:8
MyTextEditorWidget.h
AbstractCharacterBasedApplication::setTextCodec
void setTextCodec(QTextCodec *codec)
Definition: AbstractCharacterBasedApplication.cpp:144
FileViewWidget::texteditor
TextEditorView * texteditor()
Definition: FileViewWidget.cpp:173
AbstractCharacterBasedApplication::write
void write(uint32_t c, bool by_keyboard)
Definition: AbstractCharacterBasedApplication.cpp:2380
AbstractCharacterBasedApplication::setToggleSelectionAnchorEnabled
void setToggleSelectionAnchorEnabled(bool f)
Definition: AbstractCharacterBasedApplication.cpp:2068
FileViewWidget::setViewType
void setViewType(FileViewType type)
Definition: FileViewWidget.cpp:57
FileViewWidget::move
void move(int cur_row, int cur_col, int scr_row, int scr_col, bool auto_scroll)
Definition: FileViewWidget.cpp:102
ImageViewWidget::setImage
void setImage(QString mimetype, QByteArray const &ba)
Definition: ImageViewWidget.cpp:262
TextEditorView::setTheme
void setTheme(const TextEditorThemePtr &theme)
Definition: TextEditorView.cpp:102
FileDiffWidget
The FileDiffWidget class サイドバイサイドで2つのファイルのdiffを表示するウィジェット
Definition: FileDiffWidget.h:39
PreEditText
Definition: TextEditorView.h:15
FileViewWidget::clear
void clear()
Definition: FileViewWidget.cpp:107
FileViewType::Image
@ Image
FileViewWidget::ui_page_text
X_TextEditorWidget * ui_page_text
Definition: FileViewWidget.h:45
FileViewWidget::getTextEditorView
TextEditorView * getTextEditorView()
Definition: FileViewWidget.h:78
Document::Line
Definition: AbstractCharacterBasedApplication.h:36
AbstractCharacterBasedApplication::setAutoLayout
void setAutoLayout(bool f)
Definition: AbstractCharacterBasedApplication.cpp:152
FileViewWidget::lineHeight
int lineHeight() const
Definition: FileViewWidget.cpp:78
FileViewWidget::X_TextEditorWidget
TextEditorWidget X_TextEditorWidget
Definition: FileViewWidget.h:38
FileViewWidget::source_id
QString source_id
Definition: FileViewWidget.h:48
MyImageViewWidget
Definition: MyImageViewWidget.h:11
TextEditorWidget
Definition: TextEditorWidget.h:9