This is my fist time using QFlags and something is not working here. I am probably missing something very stupid and I need a second eye...
testing-flags.cpp
Edit:
code is simple enough to put inline as well...
#include <QCoreApplication>
#include <QFlags>
#include <QDebug>
class foobar{
public:
enum MyFlag{
flag1, flag2, flag3
};
Q_DECLARE_FLAGS(MyFlags, MyFlag)
MyFlags m_state;
void setFlag( MyFlag f, bool enable){
if (enable)
m_state &= !f;
else
m_state |= f;
}
void toggleFlag( MyFlag f ){
setFlag( f, !m_state.testFlag(f) );
}
bool getFlag( MyFlag f){
return m_state.testFlag(f);
}
};
int main()
{
foobar f;
qDebug() << "Flags state" << f.getFlag( foobar::flag1 );
f.toggleFlag(foobar::flag1);
qDebug() << "Flags state" << f.getFlag( foobar::flag1 );
}
#include <QCoreApplication>
#include <QFlags>
#include <QDebug>
class foobar{
public:
enum MyFlag{
flag1, flag2, flag3
};
Q_DECLARE_FLAGS(MyFlags, MyFlag)
MyFlags m_state;
void setFlag( MyFlag f, bool enable){
if (enable)
m_state &= !f;
else
m_state |= f;
}
void toggleFlag( MyFlag f ){
setFlag( f, !m_state.testFlag(f) );
}
bool getFlag( MyFlag f){
return m_state.testFlag(f);
}
};
int main()
{
foobar f;
qDebug() << "Flags state" << f.getFlag( foobar::flag1 );
f.toggleFlag(foobar::flag1);
qDebug() << "Flags state" << f.getFlag( foobar::flag1 );
}
To copy to clipboard, switch view to plain text mode
Bookmarks