Guitar
src
FileDiffSliderWidget.h
Go to the documentation of this file.
1
#ifndef FILEDIFFSLIDERWIDGET_H
2
#define FILEDIFFSLIDERWIDGET_H
3
4
#include "
AbstractCharacterBasedApplication.h
"
5
#include "
MainWindow.h
"
6
#include "
Theme.h
"
7
#include <QPixmap>
8
#include <QWidget>
9
#include <functional>
10
11
using
TextDiffLine
=
Document::Line
;
12
using
TextDiffLineList
= QList<Document::Line>;
13
14
enum class
DiffPane
{
15
Left
,
16
Right
,
17
};
18
19
using
fn_pixmap_maker_t
= std::function<QPixmap (
DiffPane
,
int
,
int
)>;
20
21
class
FileDiffSliderWidget
:
public
QWidget {
22
Q_OBJECT
23
private
:
24
struct
Private
;
25
Private
*
m
;
26
27
void
scroll_
(
int
pos);
28
QPixmap
makeDiffPixmap
(
DiffPane
pane,
int
width,
int
height);
29
void
setValue
(
int
v);
30
void
internalSetValue
(
int
v);
31
public
:
32
explicit
FileDiffSliderWidget
(QWidget *parent =
nullptr
);
33
~FileDiffSliderWidget
()
override
;
34
35
void
clear
(
bool
v);
36
void
setScrollPos
(
int
total,
int
value,
int
size);
37
void
init
(
fn_pixmap_maker_t
const
&pixmap_maker,
const
ThemePtr
&theme);
38
void
updatePixmap
();
39
static
QPixmap
makeDiffPixmap
(
int
width,
int
height,
TextDiffLineList
const
&lines,
ThemePtr
theme);
40
protected
:
41
void
paintEvent
(QPaintEvent *)
override
;
42
void
resizeEvent
(QResizeEvent *)
override
;
43
void
mousePressEvent
(QMouseEvent *)
override
;
44
void
mouseMoveEvent
(QMouseEvent *)
override
;
45
void
wheelEvent
(QWheelEvent *event)
override
;
46
signals:
47
void
valueChanged
(
int
value);
48
void
scrollByWheel
(
int
lines);
49
};
50
51
#endif
// FILEDIFFSLIDERWIDGET_H
AbstractCharacterBasedApplication.h
TextDiffLineList
QList< Document::Line > TextDiffLineList
Definition:
FileDiffSliderWidget.h:12
fn_pixmap_maker_t
std::function< QPixmap(DiffPane, int, int)> fn_pixmap_maker_t
Definition:
FileDiffSliderWidget.h:19
DiffPane
DiffPane
Definition:
FileDiffSliderWidget.h:14
DiffPane::Right
@ Right
DiffPane::Left
@ Left
MainWindow.h
Theme.h
ThemePtr
std::shared_ptr< AbstractTheme > ThemePtr
Definition:
Theme.h:34
FileDiffSliderWidget
Definition:
FileDiffSliderWidget.h:21
FileDiffSliderWidget::FileDiffSliderWidget
FileDiffSliderWidget(QWidget *parent=nullptr)
Definition:
FileDiffSliderWidget.cpp:22
FileDiffSliderWidget::internalSetValue
void internalSetValue(int v)
Definition:
FileDiffSliderWidget.cpp:137
FileDiffSliderWidget::m
Private * m
Definition:
FileDiffSliderWidget.h:24
FileDiffSliderWidget::clear
void clear(bool v)
Definition:
FileDiffSliderWidget.cpp:194
FileDiffSliderWidget::paintEvent
void paintEvent(QPaintEvent *) override
Definition:
FileDiffSliderWidget.cpp:98
FileDiffSliderWidget::init
void init(fn_pixmap_maker_t const &pixmap_maker, const ThemePtr &theme)
Definition:
FileDiffSliderWidget.cpp:33
FileDiffSliderWidget::wheelEvent
void wheelEvent(QWheelEvent *event) override
Definition:
FileDiffSliderWidget.cpp:177
FileDiffSliderWidget::setValue
void setValue(int v)
Definition:
FileDiffSliderWidget.cpp:149
FileDiffSliderWidget::scroll_
void scroll_(int pos)
Definition:
FileDiffSliderWidget.cpp:156
FileDiffSliderWidget::scrollByWheel
void scrollByWheel(int lines)
FileDiffSliderWidget::makeDiffPixmap
QPixmap makeDiffPixmap(DiffPane pane, int width, int height)
Definition:
FileDiffSliderWidget.cpp:39
FileDiffSliderWidget::resizeEvent
void resizeEvent(QResizeEvent *) override
Definition:
FileDiffSliderWidget.cpp:132
FileDiffSliderWidget::mousePressEvent
void mousePressEvent(QMouseEvent *) override
Definition:
FileDiffSliderWidget.cpp:163
FileDiffSliderWidget::mouseMoveEvent
void mouseMoveEvent(QMouseEvent *) override
Definition:
FileDiffSliderWidget.cpp:170
FileDiffSliderWidget::~FileDiffSliderWidget
~FileDiffSliderWidget() override
Definition:
FileDiffSliderWidget.cpp:28
FileDiffSliderWidget::valueChanged
void valueChanged(int value)
FileDiffSliderWidget::setScrollPos
void setScrollPos(int total, int value, int size)
Definition:
FileDiffSliderWidget.cpp:202
FileDiffSliderWidget::updatePixmap
void updatePixmap()
Definition:
FileDiffSliderWidget.cpp:47
Document::Line
Definition:
AbstractCharacterBasedApplication.h:53
FileDiffSliderWidget::Private
Definition:
FileDiffSliderWidget.cpp:10
Generated by
1.9.1