Add method to check if console mode is on/off
This commit is contained in:
parent
42b06e48a8
commit
ba21383e0c
|
@ -133,6 +133,28 @@ ConsoleMsgFlags ConsoleSingleton::SetEnabledMsgType(const char* sObs, ConsoleMsg
|
|||
}
|
||||
}
|
||||
|
||||
bool ConsoleSingleton::IsMsgTypeEnabled(const char* sObs, FreeCAD_ConsoleMsgType type) const
|
||||
{
|
||||
ConsoleObserver* pObs = Get(sObs);
|
||||
if (pObs) {
|
||||
switch (type) {
|
||||
case MsgType_Txt:
|
||||
return pObs->bMsg;
|
||||
case MsgType_Log:
|
||||
return pObs->bLog;
|
||||
case MsgType_Wrn:
|
||||
return pObs->bWrn;
|
||||
case MsgType_Err:
|
||||
return pObs->bErr;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/** Prints a Message
|
||||
* This method issues a Message.
|
||||
* Messages are used show some non vital information. That means in the
|
||||
|
@ -207,7 +229,7 @@ void ConsoleSingleton::Error( const char *pMsg, ... )
|
|||
|
||||
/** Prints a Message
|
||||
* this method is more for devlopment and tracking purpos.
|
||||
* It can be used to track execution of algorithems and functions
|
||||
* It can be used to track execution of algorithms and functions
|
||||
* and put it in files. The normal user dont need to see it, its more
|
||||
* for developers and experinced users. So in normal user modes the
|
||||
* logging is switched of.
|
||||
|
@ -282,37 +304,40 @@ void ConsoleSingleton::DetachObserver(ConsoleObserver *pcObserver)
|
|||
|
||||
void ConsoleSingleton::NotifyMessage(const char *sMsg)
|
||||
{
|
||||
for(std::set<ConsoleObserver * >::iterator Iter=_aclObservers.begin();Iter!=_aclObservers.end();Iter++)
|
||||
for(std::set<ConsoleObserver * >::iterator Iter=_aclObservers.begin();Iter!=_aclObservers.end();Iter++) {
|
||||
if((*Iter)->bMsg)
|
||||
(*Iter)->Message(sMsg); // send string to the listener
|
||||
}
|
||||
}
|
||||
|
||||
void ConsoleSingleton::NotifyWarning(const char *sMsg)
|
||||
{
|
||||
for(std::set<ConsoleObserver * >::iterator Iter=_aclObservers.begin();Iter!=_aclObservers.end();Iter++)
|
||||
for(std::set<ConsoleObserver * >::iterator Iter=_aclObservers.begin();Iter!=_aclObservers.end();Iter++) {
|
||||
if((*Iter)->bWrn)
|
||||
(*Iter)->Warning(sMsg); // send string to the listener
|
||||
}
|
||||
}
|
||||
|
||||
void ConsoleSingleton::NotifyError(const char *sMsg)
|
||||
{
|
||||
for(std::set<ConsoleObserver * >::iterator Iter=_aclObservers.begin();Iter!=_aclObservers.end();Iter++)
|
||||
for(std::set<ConsoleObserver * >::iterator Iter=_aclObservers.begin();Iter!=_aclObservers.end();Iter++) {
|
||||
if((*Iter)->bErr)
|
||||
(*Iter)->Error(sMsg); // send string to the listener
|
||||
}
|
||||
}
|
||||
|
||||
void ConsoleSingleton::NotifyLog(const char *sMsg)
|
||||
{
|
||||
for(std::set<ConsoleObserver * >::iterator Iter=_aclObservers.begin();Iter!=_aclObservers.end();Iter++)
|
||||
for(std::set<ConsoleObserver * >::iterator Iter=_aclObservers.begin();Iter!=_aclObservers.end();Iter++) {
|
||||
if((*Iter)->bLog)
|
||||
(*Iter)->Log(sMsg); // send string to the listener
|
||||
}
|
||||
}
|
||||
|
||||
ConsoleObserver *ConsoleSingleton::Get(const char *Name)
|
||||
ConsoleObserver *ConsoleSingleton::Get(const char *Name) const
|
||||
{
|
||||
const char* OName;
|
||||
for(std::set<ConsoleObserver * >::iterator Iter=_aclObservers.begin();Iter!=_aclObservers.end();Iter++)
|
||||
{
|
||||
for(std::set<ConsoleObserver * >::const_iterator Iter=_aclObservers.begin();Iter!=_aclObservers.end();Iter++) {
|
||||
OName = (*Iter)->Name(); // get the name
|
||||
if(OName && strcmp(OName,Name) == 0)
|
||||
return *Iter;
|
||||
|
@ -539,13 +564,13 @@ PyObject *ConsoleSingleton::sPySetStatus(PyObject * /*self*/, PyObject *args, Py
|
|||
if(pObs)
|
||||
{
|
||||
if(strcmp(pstr2,"Log") == 0)
|
||||
pObs->bLog = (Bool==0)?false:true;
|
||||
pObs->bLog = (Bool==0)?false:true;
|
||||
else if(strcmp(pstr2,"Wrn") == 0)
|
||||
pObs->bWrn = (Bool==0)?false:true;
|
||||
pObs->bWrn = (Bool==0)?false:true;
|
||||
else if(strcmp(pstr2,"Msg") == 0)
|
||||
pObs->bMsg = (Bool==0)?false:true;
|
||||
pObs->bMsg = (Bool==0)?false:true;
|
||||
else if(strcmp(pstr2,"Err") == 0)
|
||||
pObs->bErr = (Bool==0)?false:true;
|
||||
pObs->bErr = (Bool==0)?false:true;
|
||||
else
|
||||
Py_Error(PyExc_Exception,"Unknown Message Type (use Log,Err,Msg or Wrn)");
|
||||
|
||||
|
|
|
@ -56,7 +56,7 @@ class ConsoleSingleton;
|
|||
|
||||
typedef Base::ConsoleSingleton ConsoleMsgType;
|
||||
typedef unsigned int ConsoleMsgFlags;
|
||||
|
||||
|
||||
namespace Base {
|
||||
|
||||
/** The console observer class
|
||||
|
@ -141,12 +141,14 @@ public:
|
|||
void UnsetMode(ConsoleMode m);
|
||||
/// Enables or disables message types of a cetain console observer
|
||||
ConsoleMsgFlags SetEnabledMsgType(const char* sObs, ConsoleMsgFlags type, bool b);
|
||||
/// Enables or disables message types of a cetain console observer
|
||||
bool IsMsgTypeEnabled(const char* sObs, FreeCAD_ConsoleMsgType type) const;
|
||||
|
||||
/// singleton
|
||||
static ConsoleSingleton &Instance(void);
|
||||
|
||||
// retrieval of an observer by name
|
||||
ConsoleObserver *Get(const char *Name);
|
||||
ConsoleObserver *Get(const char *Name) const;
|
||||
|
||||
static PyMethodDef Methods[];
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user