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 "
Theme.h
"
6
#include <QPixmap>
7
#include <QWidget>
8
#include <functional>
9
10
using
TextDiffLine
=
Document::Line
;
11
using
TextDiffLineList
= std::vector<Document::Line>;
12
13
enum class
DiffPane
{
14
Left
,
15
Right
,
16
};
17
18
using
fn_pixmap_maker_t
= std::function<QPixmap (
DiffPane
,
int
,
int
)>;
19
20
class
FileDiffSliderWidget
:
public
QWidget {
21
Q_OBJECT
22
private
:
23
struct
Private
;
24
Private
*
m
;
25
26
void
scroll_
(
int
pos);
27
QPixmap
makeDiffPixmap
(
DiffPane
pane,
int
width,
int
height);
28
void
setValue
(
int
v);
29
void
internalSetValue
(
int
v);
30
public
:
31
explicit
FileDiffSliderWidget
(QWidget *parent =
nullptr
);
32
~FileDiffSliderWidget
()
override
;
33
34
void
clear
(
bool
v);
35
void
setScrollPos
(
int
total,
int
value,
int
size);
36
void
init
(
fn_pixmap_maker_t
const
&pixmap_maker,
const
ThemePtr
&theme);
37
void
updatePixmap
();
38
static
QPixmap
makeDiffPixmap
(
int
width,
int
height,
TextDiffLineList
const
&lines,
ThemePtr
theme);
39
protected
:
40
void
paintEvent
(QPaintEvent *)
override
;
41
void
resizeEvent
(QResizeEvent *)
override
;
42
void
mousePressEvent
(QMouseEvent *)
override
;
43
void
mouseMoveEvent
(QMouseEvent *)
override
;
44
void
wheelEvent
(QWheelEvent *event)
override
;
45
signals:
46
void
valueChanged
(
int
value);
47
void
scrollByWheel
(
int
lines);
48
};
49
50
#endif
// FILEDIFFSLIDERWIDGET_H
AbstractCharacterBasedApplication.h
TextDiffLineList
std::vector< Document::Line > TextDiffLineList
Definition:
FileDiffSliderWidget.h:11
fn_pixmap_maker_t
std::function< QPixmap(DiffPane, int, int)> fn_pixmap_maker_t
Definition:
FileDiffSliderWidget.h:18
DiffPane
DiffPane
Definition:
FileDiffSliderWidget.h:13
DiffPane::Right
@ Right
DiffPane::Left
@ Left
Theme.h
ThemePtr
std::shared_ptr< AbstractTheme > ThemePtr
Definition:
Theme.h:34
FileDiffSliderWidget
Definition:
FileDiffSliderWidget.h:20
FileDiffSliderWidget::FileDiffSliderWidget
FileDiffSliderWidget(QWidget *parent=nullptr)
Definition:
FileDiffSliderWidget.cpp:23
FileDiffSliderWidget::internalSetValue
void internalSetValue(int v)
Definition:
FileDiffSliderWidget.cpp:138
FileDiffSliderWidget::m
Private * m
Definition:
FileDiffSliderWidget.h:23
FileDiffSliderWidget::clear
void clear(bool v)
Definition:
FileDiffSliderWidget.cpp:195
FileDiffSliderWidget::paintEvent
void paintEvent(QPaintEvent *) override
Definition:
FileDiffSliderWidget.cpp:99
FileDiffSliderWidget::init
void init(fn_pixmap_maker_t const &pixmap_maker, const ThemePtr &theme)
Definition:
FileDiffSliderWidget.cpp:34
FileDiffSliderWidget::wheelEvent
void wheelEvent(QWheelEvent *event) override
Definition:
FileDiffSliderWidget.cpp:178
FileDiffSliderWidget::setValue
void setValue(int v)
Definition:
FileDiffSliderWidget.cpp:150
FileDiffSliderWidget::scroll_
void scroll_(int pos)
Definition:
FileDiffSliderWidget.cpp:157
FileDiffSliderWidget::scrollByWheel
void scrollByWheel(int lines)
FileDiffSliderWidget::makeDiffPixmap
QPixmap makeDiffPixmap(DiffPane pane, int width, int height)
Definition:
FileDiffSliderWidget.cpp:40
FileDiffSliderWidget::resizeEvent
void resizeEvent(QResizeEvent *) override
Definition:
FileDiffSliderWidget.cpp:133
FileDiffSliderWidget::mousePressEvent
void mousePressEvent(QMouseEvent *) override
Definition:
FileDiffSliderWidget.cpp:164
FileDiffSliderWidget::mouseMoveEvent
void mouseMoveEvent(QMouseEvent *) override
Definition:
FileDiffSliderWidget.cpp:171
FileDiffSliderWidget::~FileDiffSliderWidget
~FileDiffSliderWidget() override
Definition:
FileDiffSliderWidget.cpp:29
FileDiffSliderWidget::valueChanged
void valueChanged(int value)
FileDiffSliderWidget::setScrollPos
void setScrollPos(int total, int value, int size)
Definition:
FileDiffSliderWidget.cpp:203
FileDiffSliderWidget::updatePixmap
void updatePixmap()
Definition:
FileDiffSliderWidget.cpp:48
Document::Line
Definition:
AbstractCharacterBasedApplication.h:86
FileDiffSliderWidget::Private
Definition:
FileDiffSliderWidget.cpp:11
Generated by
1.9.1