• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdesdk API Reference
  • KDE Home
  • Contact Us
 

okteta

  • sources
  • kde-4.12
  • kdesdk
  • okteta
  • kasten
  • controllers
  • view
  • structures
  • script
scriptlogger.h
Go to the documentation of this file.
1 /*
2  * This file is part of the Okteta Kasten Framework, made within the KDE community.
3  *
4  * Copyright 2010, 2011, 2012 Alex Richardson <alex.richardson@gmx.de>
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) version 3, or any
10  * later version accepted by the membership of KDE e.V. (or its
11  * successor approved by the membership of KDE e.V.), which shall
12  * act as a proxy defined in Section 6 of version 3 of the license.
13  *
14  * This library is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17  * Lesser General Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public
20  * License along with this library. If not, see <http://www.gnu.org/licenses/>.
21  */
22 
23 #ifndef SCRIPTLOGGER_H
24 #define SCRIPTLOGGER_H
25 
26 #include <QAbstractTableModel>
27 #include <QVector>
28 #include <QDebug>
29 #include <QTime>
30 
31 class KIcon;
32 
33 class DataInformation;
35 class ScriptLogger : public QAbstractTableModel {
36  Q_DISABLE_COPY(ScriptLogger)
37  Q_OBJECT
38 public:
39  explicit ScriptLogger();
40  virtual ~ScriptLogger();
41 
42  enum Columns {
43  ColumnTime = 0, ColumnOrigin, ColumnMessage, COLUMN_COUNT
44  };
45  //fits into 2 bits
46  enum LogLevel {
47  LogInvalid = 0, LogInfo = 1, LogWarning = 2, LogError = 3
48  };
49  struct Data {
50  inline Data() : level(LogInvalid) {}
51  inline Data(LogLevel lvl, const QString& o)
52  : level(lvl), origin(o), time(QTime::currentTime()) {}
53  inline Data(const Data& d)
54  : level(d.level), message(d.message), origin(d.origin), time(d.time) {}
55  inline ~Data() {}
56  ScriptLogger::LogLevel level;
57  QString message;
58  QString origin;
59  QTime time;
60  };
61  virtual QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const;
62  virtual int rowCount(const QModelIndex& parent = QModelIndex()) const;
63  virtual int columnCount(const QModelIndex& parent = QModelIndex()) const;
64  virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const;
65 
66  inline QDebug info(const DataInformation* origin) { return log(LogInfo, origin); }
67  inline QDebug warn(const DataInformation* origin) { return log(LogWarning, origin); }
68  inline QDebug error(const DataInformation* origin) { return log(LogError, origin); }
69  inline QDebug info(const QString& origin = QString()) { return log(LogInfo, origin); }
70  inline QDebug warn(const QString& origin = QString()) { return log(LogWarning, origin); }
71  inline QDebug error(const QString& origin = QString()) { return log(LogError, origin); }
77  QDebug log(LogLevel level, const DataInformation* origin);
78  QDebug log(LogLevel level, const QString& origin);
79  void clear();
84  QStringList messages(LogLevel minLevel = LogInfo) const;
86  inline void setLogToStdOut(bool val) { mLogToStdOut = val; }
87 
88  static KIcon iconForLevel(LogLevel level);
89 private:
90  QVector<Data> mData;
91  bool mLogToStdOut;
92 };
93 
94 struct LoggerWithContext {
95 public:
96  LoggerWithContext(ScriptLogger* l, const QString& s) : logger(l), context(s) {}
97  inline QDebug info() const { return logger ? logger->info(context) : qDebug(); }
98  inline QDebug warn() const { return logger ? logger->warn(context) : qWarning(); }
99  inline QDebug error() const { return logger ? logger->error(context) : qWarning(); }
100 private:
101  ScriptLogger* const logger;
102  QString context;
103 };
104 
105 #endif // SCRIPTLOGGER_H
LoggerWithContext::LoggerWithContext
LoggerWithContext(ScriptLogger *l, const QString &s)
Definition: scriptlogger.h:96
DataInformation
Interface that must be implemented by all datatypes.
Definition: datainformation.h:67
ScriptLogger::Data::message
QString message
Definition: scriptlogger.h:57
LoggerWithContext
Definition: scriptlogger.h:94
ScriptLogger::LogWarning
Definition: scriptlogger.h:47
ScriptLogger::COLUMN_COUNT
Definition: scriptlogger.h:43
ScriptLogger::rowCount
virtual int rowCount(const QModelIndex &parent=QModelIndex()) const
Definition: scriptlogger.cpp:67
LoggerWithContext::warn
QDebug warn() const
Definition: scriptlogger.h:98
ScriptLogger::ColumnMessage
Definition: scriptlogger.h:43
ScriptLogger::LogLevel
LogLevel
Definition: scriptlogger.h:46
ScriptLogger::Data::~Data
~Data()
Definition: scriptlogger.h:55
ScriptLogger::iconForLevel
static KIcon iconForLevel(LogLevel level)
Definition: scriptlogger.cpp:29
ScriptLogger::columnCount
virtual int columnCount(const QModelIndex &parent=QModelIndex()) const
Definition: scriptlogger.cpp:74
ScriptLogger::Data::level
ScriptLogger::LogLevel level
Definition: scriptlogger.h:56
ScriptLogger::ScriptLogger
ScriptLogger()
Definition: scriptlogger.cpp:126
QVector
Definition: scriptvalueconverter.h:30
ScriptLogger::messages
QStringList messages(LogLevel minLevel=LogInfo) const
Definition: scriptlogger.cpp:135
ScriptLogger::log
QDebug log(LogLevel level, const DataInformation *origin)
Definition: scriptlogger.cpp:99
ScriptLogger::LogInvalid
Definition: scriptlogger.h:47
ScriptLogger::Data::Data
Data(LogLevel lvl, const QString &o)
Definition: scriptlogger.h:51
ScriptLogger::LogError
Definition: scriptlogger.h:47
ScriptLogger::~ScriptLogger
virtual ~ScriptLogger()
Definition: scriptlogger.cpp:131
LoggerWithContext::info
QDebug info() const
Definition: scriptlogger.h:97
ScriptLogger::info
QDebug info(const QString &origin=QString())
Definition: scriptlogger.h:69
ScriptLogger::Columns
Columns
Definition: scriptlogger.h:42
ScriptLogger
NOT THREAD SAFE!
Definition: scriptlogger.h:35
ScriptLogger::ColumnTime
Definition: scriptlogger.h:43
ScriptLogger::Data
Definition: scriptlogger.h:49
ScriptLogger::ColumnOrigin
Definition: scriptlogger.h:43
ScriptLogger::error
QDebug error(const QString &origin=QString())
Definition: scriptlogger.h:71
ScriptLogger::info
QDebug info(const DataInformation *origin)
Definition: scriptlogger.h:66
ScriptLogger::LogInfo
Definition: scriptlogger.h:47
ScriptLogger::error
QDebug error(const DataInformation *origin)
Definition: scriptlogger.h:68
ScriptLogger::Data::origin
QString origin
Definition: scriptlogger.h:58
LoggerWithContext::error
QDebug error() const
Definition: scriptlogger.h:99
ScriptLogger::clear
void clear()
Definition: scriptlogger.cpp:119
ScriptLogger::warn
QDebug warn(const DataInformation *origin)
Definition: scriptlogger.h:67
ScriptLogger::data
virtual QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const
Definition: scriptlogger.cpp:40
ScriptLogger::Data::time
QTime time
Definition: scriptlogger.h:59
ScriptLogger::Data::Data
Data(const Data &d)
Definition: scriptlogger.h:53
QAbstractTableModel
ScriptLogger::setLogToStdOut
void setLogToStdOut(bool val)
whether to log to stdout instead of saving the messages
Definition: scriptlogger.h:86
ScriptLogger::Data::Data
Data()
Definition: scriptlogger.h:50
ScriptLogger::headerData
virtual QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const
Definition: scriptlogger.cpp:80
ScriptLogger::warn
QDebug warn(const QString &origin=QString())
Definition: scriptlogger.h:70
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 23:04:09 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

okteta

Skip menu "okteta"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdesdk API Reference

Skip menu "kdesdk API Reference"
  • kapptemplate
  • kcachegrind
  • kompare
  • lokalize
  • okteta
  • umbrello
  •   umbrello

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal