7 /////////////////////////////////////////////////////////////////
9 /////////////////////////////////////////////////////////////////
14 // qDebug()<< "Const FlagRow ()";
19 //qDebug()<< "Destr FlagRow";
22 void FlagRow::addFlag (Flag *flag)
28 activeNames.append (flag->getName());
31 Flag* FlagRow::getFlag (const QString &name)
34 while (i<=flags.size()-1)
36 if (flags.at(i)->getName()==name)
43 QStringList FlagRow::activeFlagNames()
49 bool FlagRow::isActive (const QString &name)
52 foreach (n,activeNames)
53 if (n==name) return true;
57 bool FlagRow::toggle (const QString &name, FlagRow *masterRow)
60 return deactivate (name);
63 if (!activate (name) ) return false;
66 if (!masterRow) return false;
68 Flag *flag=masterRow->getFlag (name);
69 if (!flag) return false;
70 QString mygroup=flag->getGroup();
72 for (int i=0;i<activeNames.size();++i)
74 flag=masterRow->getFlag (activeNames.at(i) );
75 if (name!=activeNames.at(i) && !mygroup.isEmpty() && mygroup==flag->getGroup())
76 deactivate (activeNames.at(i));
82 bool FlagRow::activate (const QString &name)
86 if (debug) qWarning ()<<QString("FlagRow::activate - %1 is already active").arg(name);
92 qWarning()<<"FlagRow::activate - no masterRow to activate "<<name;
96 // Check, if flag exists after all...
97 Flag *flag=masterRow->getFlag (name);
100 qWarning()<<"FlagRow::activate - flag "<<name<<" does not exist here!";
104 activeNames.append (name);
109 bool FlagRow::deactivate (const QString &name)
111 int n=activeNames.indexOf (name);
114 activeNames.removeAt(n);
118 qWarning ()<<QString("FlagRow::deactivate - %1 is not active").arg(name);
122 bool FlagRow::deactivateGroup (const QString &gname)
124 if (!masterRow) return false;
125 if (gname.isEmpty()) return false;
127 foreach (QString s, activeNames )
129 Flag *flag=masterRow->getFlag (s);
130 if (flag && gname == flag->getGroup())
136 void FlagRow::deactivateAll ()
138 if (!toolBar) activeNames.clear();
141 void FlagRow::setEnabled (bool b)
143 toolBar->setEnabled (b);
146 void FlagRow::resetUsedCounter()
148 for (int i=0; i<flags.size(); ++i)
149 flags.at(i)->setUsed (false);
152 QString FlagRow::saveToDir (const QString &tmpdir,const QString &prefix, bool writeflags)
159 if (!activeNames.isEmpty())
160 for (int i=0; i<activeNames.size(); ++i)
162 // save flag to xml, if flag is set
163 s+=valueElement("standardflag",activeNames.at(i));
165 // and tell parentRow, that this flag is used
166 masterRow->getFlag(activeNames.at(i))->setUsed(true);
169 // Save icons to dir, if verbose is set (xml export)
171 // and this flag is really used somewhere
173 for (int i=0; i<flags.size(); ++i)
174 if (flags.at(i)->isUsed()) flags.at(i)->saveToDir (tmpdir,prefix);
178 void FlagRow::setName (const QString &n)
183 void FlagRow::setToolBar (QToolBar *tb)
188 void FlagRow::setMasterRow (FlagRow *row)
193 void FlagRow::updateToolBar (const QStringList &activeNames)
197 for (int i=0;i<flags.size();++i)
198 flags.at(i)->getAction()->setChecked (false);
199 for (int i=0;i<flags.size();++i)
201 int n=activeNames.indexOf (flags.at(i)->getName());
203 flags.at(i)->getAction()->setChecked (true);