Make sure we don't ignore hidden files.
[vng.git] / src / Logger_p.h
blob1f2a583c39feb41a38c5f972dff241616f1bccd7
1 /*
2 * This file is part of the vng project
3 * Copyright (C) 2008 Thomas Zander <tzander@trolltech.com>
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 #ifndef LOGGER_P_H
20 #define LOGGER_P_H
22 #include "Logger.h"
23 #include <QProcess>
24 #include <QThreadStorage>
26 class NullDevice : public QIODevice
28 public:
29 virtual qint64 readData (char *data, qint64 maxlen) {
30 Q_UNUSED(data);
31 Q_UNUSED(maxlen);
32 return 0;
34 virtual qint64 writeData (const char *data, qint64 len) {
35 Q_UNUSED(data);
36 return len;
40 class LoggerPrivate : QObject
42 Q_OBJECT
43 public:
44 LoggerPrivate();
45 ~LoggerPrivate();
47 void insertPager();
48 void removePager();
49 bool startPager(const QString &program, const QStringList &arguments = QStringList());
51 QTextStream & standardOut() {
52 if (! standardOutStream.hasLocalData()) {
53 QTextStream *out = new QTextStream(stdout);
54 standardOutStream.setLocalData(out);
56 return *(standardOutStream.localData());
59 Logger::Verbosity verbosity;
60 QTextStream dummy;
61 QTextStream *pagerStream;
62 QProcess *pager;
63 bool colorPager;
64 QThreadStorage<QTextStream*> standardOutStream;
66 private slots:
67 void pagerFinished();
70 #endif