File indexing completed on 2024-05-12 16:01:55
0001 /* This file is part of the KDE project 0002 SPDX-FileCopyrightText: 2000 Werner Trobin <trobin@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "KisTemplateGroup.h" 0008 0009 #include <KisTemplate.h> 0010 0011 #include <QFile> 0012 0013 KisTemplateGroup::KisTemplateGroup(const QString &name, const QString &dir, 0014 int _sortingWeight, bool touched) 0015 : m_name(name) 0016 , m_touched(touched) 0017 , m_sortingWeight(_sortingWeight) 0018 { 0019 m_dirs.append(dir); 0020 } 0021 0022 KisTemplateGroup::~KisTemplateGroup() 0023 { 0024 qDeleteAll(m_templates); 0025 } 0026 0027 bool KisTemplateGroup::isHidden() const 0028 { 0029 0030 QList<KisTemplate*>::const_iterator it = m_templates.begin(); 0031 bool hidden = true; 0032 while (it != m_templates.end() && hidden) { 0033 hidden = (*it)->isHidden(); 0034 ++it; 0035 } 0036 return hidden; 0037 } 0038 0039 void KisTemplateGroup::setHidden(bool hidden) const 0040 { 0041 Q_FOREACH (KisTemplate* t, m_templates) 0042 t->setHidden(hidden); 0043 0044 m_touched = true; 0045 } 0046 0047 bool KisTemplateGroup::add(KisTemplate *t, bool force, bool touch) 0048 { 0049 0050 KisTemplate *myTemplate = find(t->name()); 0051 if (myTemplate == 0) { 0052 m_templates.append(t); 0053 m_touched = touch; 0054 return true; 0055 } 0056 else if (myTemplate && force) { 0057 //dbgUI <<"removing :" << myTemplate->fileName(); 0058 QFile::remove(myTemplate->fileName()); 0059 QFile::remove(myTemplate->picture()); 0060 QFile::remove(myTemplate->file()); 0061 m_templates.removeAll(myTemplate); 0062 delete myTemplate; 0063 m_templates.append(t); 0064 m_touched = touch; 0065 return true; 0066 } 0067 return false; 0068 } 0069 0070 KisTemplate *KisTemplateGroup::find(const QString &name) const 0071 { 0072 QList<KisTemplate*>::const_iterator it = m_templates.begin(); 0073 KisTemplate* ret = 0; 0074 0075 while (it != m_templates.end()) { 0076 if ((*it)->name() == name) { 0077 ret = *it; 0078 break; 0079 } 0080 0081 ++it; 0082 } 0083 0084 return ret; 0085 } 0086