+++ /dev/null
-#include <QDebug>
-
-#include "flagrow.h"
-
-extern bool debug;
-
-/////////////////////////////////////////////////////////////////
-// FlagRow
-/////////////////////////////////////////////////////////////////
-FlagRow::FlagRow()
-{
- toolBar=NULL;
- masterRow=NULL;
-// qDebug()<< "Const FlagRow ()";
-}
-
-FlagRow::~FlagRow()
-{
- //qDebug()<< "Destr FlagRow";
-}
-
-void FlagRow::addFlag (Flag *flag)
-{
- Flag *f=new Flag;
-;
- f->copy (flag);
- flags.append (f);
- activeNames.append (flag->getName());
-}
-
-Flag* FlagRow::getFlag (const QString &name)
-{
- int i=0;
- while (i<=flags.size()-1)
- {
- if (flags.at(i)->getName()==name)
- return flags.at(i);
- i++;
- }
- return NULL;
-}
-
-QStringList FlagRow::activeFlagNames()
-{
- return activeNames;
-}
-
-
-bool FlagRow::isActive (const QString &name)
-{
- QString n;
- foreach (n,activeNames)
- if (n==name) return true;
- return false;
-}
-
-bool FlagRow::toggle (const QString &name, FlagRow *masterRow)
-{
- if (isActive(name) )
- return deactivate (name);
- else
- {
- if (!activate (name) ) return false;
-
- // Deactivate group
- if (!masterRow) return false;
-
- Flag *flag=masterRow->getFlag (name);
- if (!flag) return false;
- QString mygroup=flag->getGroup();
-
- for (int i=0;i<activeNames.size();++i)
- {
- flag=masterRow->getFlag (activeNames.at(i) );
- if (name!=activeNames.at(i) && !mygroup.isEmpty() && mygroup==flag->getGroup())
- deactivate (activeNames.at(i));
- }
- return true;
- }
-}
-
-bool FlagRow::activate (const QString &name)
-{
- if (isActive (name))
- {
- if (debug) qWarning ()<<QString("FlagRow::activate - %1 is already active").arg(name);
- return false;
- }
-
- if (!masterRow)
- {
- qWarning()<<"FlagRow::activate - no masterRow to activate "<<name;
- return false;
- }
-
- // Check, if flag exists after all...
- Flag *flag=masterRow->getFlag (name);
- if (!flag)
- {
- qWarning()<<"FlagRow::activate - flag "<<name<<" does not exist here!";
- return false;
- }
-
- activeNames.append (name);
- return true;
-}
-
-
-bool FlagRow::deactivate (const QString &name)
-{
- int n=activeNames.indexOf (name);
- if (n>=0)
- {
- activeNames.removeAt(n);
- return true;
- }
- if (debug)
- qWarning ()<<QString("FlagRow::deactivate - %1 is not active").arg(name);
- return false;
-}
-
-bool FlagRow::deactivateGroup (const QString &gname)
-{
- if (!masterRow) return false;
- if (gname.isEmpty()) return false;
-
- foreach (QString s, activeNames )
- {
- Flag *flag=masterRow->getFlag (s);
- if (flag && gname == flag->getGroup())
- deactivate (s);
- }
- return true;
-}
-
-void FlagRow::deactivateAll ()
-{
- if (!toolBar) activeNames.clear();
-}
-
-void FlagRow::setEnabled (bool b)
-{
- toolBar->setEnabled (b);
-}
-
-void FlagRow::resetUsedCounter()
-{
- for (int i=0; i<flags.size(); ++i)
- flags.at(i)->setUsed (false);
-}
-
-QString FlagRow::saveToDir (const QString &tmpdir,const QString &prefix, bool writeflags)
-{
- // Build xml string
- QString s;
-
- if (!toolBar)
- {
- if (!activeNames.isEmpty())
- for (int i=0; i<activeNames.size(); ++i)
- {
- // save flag to xml, if flag is set
- s+=valueElement("standardflag",activeNames.at(i));
-
- // and tell parentRow, that this flag is used
- masterRow->getFlag(activeNames.at(i))->setUsed(true);
- }
- } else
- // Save icons to dir, if verbose is set (xml export)
- // and I am a master
- // and this flag is really used somewhere
- if (writeflags)
- for (int i=0; i<flags.size(); ++i)
- if (flags.at(i)->isUsed()) flags.at(i)->saveToDir (tmpdir,prefix);
- return s;
-}
-
-void FlagRow::setName (const QString &n)
-{
- rowName=n;
-}
-
-void FlagRow::setToolBar (QToolBar *tb)
-{
- toolBar=tb;
-}
-
-void FlagRow::setMasterRow (FlagRow *row)
-{
- masterRow=row;
-}
-
-void FlagRow::updateToolBar (const QStringList &activeNames)
-{
- if (toolBar )
- {
- for (int i=0;i<flags.size();++i)
- flags.at(i)->getAction()->setChecked (false);
- for (int i=0;i<flags.size();++i)
- {
- int n=activeNames.indexOf (flags.at(i)->getName());
- if (n>=0)
- flags.at(i)->getAction()->setChecked (true);
- }
- }
-}
-
-