Visual Computing Library
devel
Version:
Loading versions...
Loading...
Searching...
No Matches
debug_io_device.h
1
/*****************************************************************************
2
* VCLib *
3
* Visual Computing Library *
4
* *
5
* Copyright(C) 2021-2025 *
6
* Visual Computing Lab *
7
* ISTI - Italian National Research Council *
8
* *
9
* All rights reserved. *
10
* *
11
* This program is free software; you can redistribute it and/or modify *
12
* it under the terms of the Mozilla Public License Version 2.0 as published *
13
* by the Mozilla Foundation; either version 2 of the License, or *
14
* (at your option) any later version. *
15
* *
16
* This program is distributed in the hope that it will be useful, *
17
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
18
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
19
* Mozilla Public License Version 2.0 *
20
* (https://www.mozilla.org/en-US/MPL/2.0/) for more details. *
21
****************************************************************************/
22
23
#ifndef VCL_QT_GUI_TEXT_EDIT_LOGGER_DEBUG_IO_DEVICE_H
24
#define VCL_QT_GUI_TEXT_EDIT_LOGGER_DEBUG_IO_DEVICE_H
25
26
#include <QIODevice>
27
#include <QTextEdit>
28
29
namespace
vcl::qt {
30
31
class
DebugIODevice
:
public
QIODevice
32
{
33
Q_OBJECT
34
35
QTextEdit
* mTextEdit;
36
bool
mEnabled =
false
;
37
38
public
:
39
DebugIODevice
(
QTextEdit
*
textEdit
, QObject*
parent
) :
40
QIODevice(
parent
), mTextEdit(
textEdit
)
41
{
42
open
(QIODevice::WriteOnly | QIODevice::Text);
43
}
44
45
void
enable() { mEnabled =
true
; }
46
47
void
disable() { mEnabled =
false
; }
48
49
protected
:
50
qint64
readData(
char
* data,
qint64
maxSize
) {
return
0; }
51
52
qint64
writeData(
const
char
* data,
qint64
maxSize
)
53
{
54
if
(mTextEdit && mEnabled) {
55
QColor
oldColor
= mTextEdit->textColor();
56
mTextEdit->setTextColor(Qt::blue);
57
mTextEdit->append(data);
58
mTextEdit->setTextColor(
oldColor
);
59
}
60
return
maxSize
;
61
}
62
};
63
64
}
// namespace vcl::qt
65
66
#endif
// VCL_QT_GUI_TEXT_EDIT_LOGGER_DEBUG_IO_DEVICE_H
vcl::Box
A class representing a box in N-dimensional space.
Definition
box.h:46
vcl::qt::DebugIODevice
Definition
debug_io_device.h:32
vclib
render
include
vclib
qt
gui
text_edit_logger
debug_io_device.h
Generated by
1.9.8