/*
* Copyright 2009 Dirk Wallenstein
*
* This file is part of Duttulm
*
* Duttulm is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Duttulm is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Duttulm. If not, see <http://www.gnu.org/licenses/>.
*/
#include "Logger.hpp"
#include <QMessageBox>
#include <iostream>
#include <string>
// ANSI Color codes:
//
//////// Properties Properties Foreground Background
//////// (disable)
////////--------------------------------------------------------------------------------
//////// 0 normal 30 black 40 black
//////// 1 bold 22 unbold 31 red 41 red
//////// 4 underline 24 ununderline 32 green 42 green
//////// 5 blink 25 unblink 33 yellow 43 yellow
//////// 7 inverse 27 uninverse 34 blue 44 blue
//////// 9 strike 29 unstrike 35 magenta 45 magenta
//////// 36 cyan 46 cyan
//////// 37 white 47 white
//////// 39 default 49 default
DuttulmLogger * DuttulmLogger::instance_m = NULL ;
void
DuttulmLogger::
logOut(
const QString & message
) const {
//std::cout << "\033[1;35;40m" << message.toStdString() << "\033[0m" << std::endl ;
std::cout << message.toStdString() << std::endl ;
}
void
DuttulmLogger::
debugOut(
const QString & message
) const {
std::cerr << message.toStdString() << std::endl ;
}
void
DuttulmLogger::
warningOut(
const QString & message
) const {
std::cerr << "\033[1;37;41m" << message.toStdString() << "\033[0m" << std::endl ;
}
void
DuttulmLogger::
infoOut(
const QString & message
) const {
std::cerr << "\033[1;36;40m" << message.toStdString() << "\033[0m" << std::endl ;
QMessageBox::information( NULL ,
QString( "It's Information!" ),
QString( message ) ) ;
}
bool
DuttulmLogger::
askTheUser(
const QString & question
) const {
std::cerr << "\033[1;36;40m" << question.toStdString() << "\033[0m" << std::endl ;
QMessageBox::StandardButton answerButton = QMessageBox::question(
NULL , /* parent */
QString( "What would you say if, ...?" ), /* title */
question ,
QMessageBox::Yes | QMessageBox::No , /* buttons */
QMessageBox::No /* default button */
) ;
bool answer = ( answerButton == QMessageBox::Yes ) ;
std::cerr << "\033[1;36;40m" << "answer : " << answer << "\033[0m" << std::endl ;
return answer ;
}
void
DuttulmLogger::
errorOut(
const QString & message
) const {
std::cerr << "\033[1;33;41m" << message.toStdString() << "\033[0m" << std::endl ;
infoOut( QString( "ERROR! WILL GO DOWN! Reason:\n" ) + message ) ;
throw ;
}
DuttulmLogger *
DuttulmLogger::
instance() {
if (!instance_m) {
instance_m = new DuttulmLogger() ;
}
return instance_m ;
}