Guitar
ImageViewWidget.h
Go to the documentation of this file.
1 #ifndef IMAGEVIEWWIDGET_H
2 #define IMAGEVIEWWIDGET_H
3 
4 #include <QScrollBar>
5 #include <QWidget>
6 #include "Git.h"
7 #include "MainWindow.h"
9 
10 class FileDiffWidget;
11 
13 
14 class ImageViewWidget : public QWidget {
15  Q_OBJECT
16 private:
17  struct Private;
18  Private *m;
19 
20  bool isValidImage() const;
21  QSize imageSize() const;
22 
23  QSizeF imageScrollRange() const;
24  void internalScrollImage(double x, double y);
25  void scrollImage(double x, double y);
26  void setImageScale(double scale);
28  bool hasFocus() const;
29  void setScrollBarRange(QScrollBar *h, QScrollBar *v);
30  void updateScrollBarRange();
31 protected:
32  QMainWindow *mainwindow();
33  void resizeEvent(QResizeEvent *) override;
34  void paintEvent(QPaintEvent *) override;
35  void mousePressEvent(QMouseEvent *event) override;
36  void mouseMoveEvent(QMouseEvent *event) override;
37  void wheelEvent(QWheelEvent *) override;
38 public:
39  explicit ImageViewWidget(QWidget *parent = nullptr);
40  ~ImageViewWidget() override;
41 
42  void bind(QMainWindow *m, FileDiffWidget *filediffwidget, QScrollBar *vsb, QScrollBar *hsb);
43 
44  void clear();
45 
46  void setImage(QString mimetype, QByteArray const &ba);
47 
48  void setLeftBorderVisible(bool f);
49 
50  void refrectScrollBar();
51 
52  static QString formatText(const Document::Line &line2);
53 signals:
54  void scrollByWheel(int lines);
55 };
56 
57 #endif // IMAGEVIEWWIDGET_H
misc::drawFrame
static void drawFrame(QPainter *pr, int x, int y, int w, int h, QColor color_topleft, QColor color_bottomright=QColor())
矩形のフレームを描画する。
Definition: misc.cpp:303
ImageViewWidget::Private::filediffwidget
FileDiffWidget * filediffwidget
Definition: ImageViewWidget.cpp:26
ImageViewWidget::getTransparentBackgroundBrush
QBrush getTransparentBackgroundBrush()
Definition: ImageViewWidget.cpp:194
ImageViewWidget::ImageViewWidget
ImageViewWidget(QWidget *parent=nullptr)
Definition: ImageViewWidget.cpp:52
ImageViewWidget::Private::image_scroll_y
double image_scroll_y
Definition: ImageViewWidget.cpp:36
ImageViewWidget.h
ImageViewWidget::Private::scroll_origin_x
double scroll_origin_x
Definition: ImageViewWidget.cpp:38
ImageViewWidget::isValidImage
bool isValidImage() const
Definition: ImageViewWidget.cpp:206
ImageViewWidget::scrollByWheel
void scrollByWheel(int lines)
ImageViewWidget::~ImageViewWidget
~ImageViewWidget() override
Definition: ImageViewWidget.cpp:67
ImageViewWidget
Definition: ImageViewWidget.h:14
ImageViewWidget::refrectScrollBar
void refrectScrollBar()
Definition: ImageViewWidget.cpp:119
ImageViewWidget::Private::v_scroll_bar
QScrollBar * v_scroll_bar
Definition: ImageViewWidget.cpp:28
ImageViewWidget::Private::pixmap
QPixmap pixmap
Definition: ImageViewWidget.cpp:32
SvgRendererPtr
std::shared_ptr< QSvgRenderer > SvgRendererPtr
Definition: ImageViewWidget.cpp:22
ImageViewWidget::Private::interest_pos
QPointF interest_pos
Definition: ImageViewWidget.cpp:42
ImageViewWidget::Private
Definition: ImageViewWidget.cpp:24
ImageViewWidget::mainwindow
QMainWindow * mainwindow()
Definition: ImageViewWidget.cpp:189
MemoryReader::open
bool open(OpenMode mode) override
Definition: MemoryReader.cpp:19
ImageViewWidget::Private::transparent_pixmap
QPixmap transparent_pixmap
Definition: ImageViewWidget.cpp:48
ImageViewWidget::bind
void bind(QMainWindow *m, FileDiffWidget *filediffwidget, QScrollBar *vsb, QScrollBar *hsb)
Definition: ImageViewWidget.cpp:72
ImageViewWidget::formatText
static QString formatText(const Document::Line &line2)
Definition: ImageViewWidget.cpp:137
ImageViewWidget::updateScrollBarRange
void updateScrollBarRange()
Definition: ImageViewWidget.cpp:184
ImageViewWidget::mouseMoveEvent
void mouseMoveEvent(QMouseEvent *event) override
Definition: ImageViewWidget.cpp:319
ImageViewWidget::mousePressEvent
void mousePressEvent(QMouseEvent *event) override
Definition: ImageViewWidget.cpp:309
photoshop::readThumbnail
void readThumbnail(QIODevice *in, std::vector< char > *jpeg)
PhotoshopのPSDファイルからJPEG形式のサムネイル画像を抽出する
Definition: Photoshop.cpp:33
ImageViewWidget::Private::image_scroll_x
double image_scroll_x
Definition: ImageViewWidget.cpp:35
ImageViewWidget::wheelEvent
void wheelEvent(QWheelEvent *) override
Definition: ImageViewWidget.cpp:344
ImageViewWidget::m
Private * m
Definition: ImageViewWidget.h:17
ImageViewWidget::setImageScale
void setImageScale(double scale)
Definition: ImageViewWidget.cpp:337
ImageViewWidget::Private::wheel_delta
int wheel_delta
Definition: ImageViewWidget.cpp:41
MemoryReader.h
misc.h
MemoryReader
Definition: MemoryReader.h:7
Photoshop.h
ImageViewWidget::setScrollBarRange
void setScrollBarRange(QScrollBar *h, QScrollBar *v)
Definition: ImageViewWidget.cpp:171
ImageViewWidget::imageScrollRange
QSizeF imageScrollRange() const
Definition: ImageViewWidget.cpp:163
AbstractCharacterBasedApplication.h
joinpath.h
ImageViewWidget::Private::mime_type
QString mime_type
Definition: ImageViewWidget.cpp:30
ImageViewWidget::Private::image_scale
double image_scale
Definition: ImageViewWidget.cpp:37
Git.h
ImageViewWidget::internalScrollImage
void internalScrollImage(double x, double y)
Definition: ImageViewWidget.cpp:91
MainWindow.h
misc::isPSD
static bool isPSD(QString const &mimetype)
Definition: misc.cpp:387
FileDiffSliderWidget
Definition: FileDiffSliderWidget.h:21
ImageViewWidget::Private::bottom_margin
int bottom_margin
Definition: ImageViewWidget.cpp:44
ImageViewWidget::setImage
void setImage(QString mimetype, QByteArray const &ba)
Definition: ImageViewWidget.cpp:262
FileDiffWidget
The FileDiffWidget class サイドバイサイドで2つのファイルのdiffを表示するウィジェット
Definition: FileDiffWidget.h:39
ImageViewWidget::Private::mouse_press_pos
QPoint mouse_press_pos
Definition: ImageViewWidget.cpp:40
ImageViewWidget::setLeftBorderVisible
void setLeftBorderVisible(bool f)
Definition: ImageViewWidget.cpp:86
Document::Line::text
QByteArray text
Definition: AbstractCharacterBasedApplication.h:47
ImageViewWidget::Private::top_margin
int top_margin
Definition: ImageViewWidget.cpp:43
ImageViewWidget::Private::draw_left_border
bool draw_left_border
Definition: ImageViewWidget.cpp:45
FileDiffSliderWidget.h
ImageViewWidget::imageSize
QSize imageSize() const
Definition: ImageViewWidget.cpp:211
Document::Line
Definition: AbstractCharacterBasedApplication.h:36
ImageViewWidget::Private::svg
SvgRendererPtr svg
Definition: ImageViewWidget.cpp:33
misc::isSVG
static bool isSVG(QString const &mimetype)
Definition: misc.cpp:380
ImageViewWidget::clear
void clear()
Definition: ImageViewWidget.cpp:129
ImageViewWidget::hasFocus
bool hasFocus() const
Definition: ImageViewWidget.cpp:80
ImageViewWidget::Private::scroll_origin_y
double scroll_origin_y
Definition: ImageViewWidget.cpp:39
charvec.h
ImageViewWidget::scrollImage
void scrollImage(double x, double y)
Definition: ImageViewWidget.cpp:103
ImageViewWidget::Private::h_scroll_bar
QScrollBar * h_scroll_bar
Definition: ImageViewWidget.cpp:29
ImageViewWidget::resizeEvent
void resizeEvent(QResizeEvent *) override
Definition: ImageViewWidget.cpp:257
ImageViewWidget::paintEvent
void paintEvent(QPaintEvent *) override
Definition: ImageViewWidget.cpp:218
ImageViewWidget::Private::mainwindow
QMainWindow * mainwindow
Definition: ImageViewWidget.cpp:25
FileDiffWidget.h