Improved isReadOnly() methods for templates collections.

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/branches/0.3@1474 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
xavier 2012-01-23 07:20:07 +00:00
parent 21c8ffbd7b
commit 3fc9409559
4 changed files with 29 additions and 9 deletions

View File

@ -144,3 +144,12 @@ TitleBlockTemplate *TitleBlockTemplateLocation::getTemplate() const {
if (!collection_ || name_.isEmpty()) return(0); if (!collection_ || name_.isEmpty()) return(0);
return(collection_ -> getTemplate(name_)); return(collection_ -> getTemplate(name_));
} }
/**
This is a convenience method equivalent to
parentCollection() -> isReadOnly(name())
*/
bool TitleBlockTemplateLocation::isReadOnly() const {
if (!collection_) return(false);
return(collection_ -> isReadOnly(name_));
}

View File

@ -49,6 +49,7 @@ class TitleBlockTemplateLocation {
QString protocol() const; QString protocol() const;
QDomElement getTemplateXmlDescription() const; QDomElement getTemplateXmlDescription() const;
TitleBlockTemplate *getTemplate() const; TitleBlockTemplate *getTemplate() const;
bool isReadOnly() const;
// attributes // attributes
private: private:

View File

@ -257,9 +257,12 @@ TitleBlockTemplateLocation TitleBlockTemplatesProjectCollection::location(const
} }
/** /**
@return true if this collection is read only @param template_name Either an empty QString to know whether the collection
itself is read only, or a specific template name.
@return true if the specified template is read only, false otherwise
*/ */
bool TitleBlockTemplatesProjectCollection::isReadOnly() const { bool TitleBlockTemplatesProjectCollection::isReadOnly(const QString &template_name) const {
Q_UNUSED(template_name)
if (project_) { if (project_) {
return(project_ -> isReadOnly()); return(project_ -> isReadOnly());
} }
@ -431,11 +434,18 @@ TitleBlockTemplateLocation TitleBlockTemplatesFilesCollection::location(const QS
} }
/** /**
@return true if this collection is read only, false otherwise @param template_name Either an empty QString to know whether the collection
itself is read only, or a specific template name.
@return true if the specified template is read only, false otherwise
*/ */
bool TitleBlockTemplatesFilesCollection::isReadOnly() const { bool TitleBlockTemplatesFilesCollection::isReadOnly(const QString &template_name) const {
QFileInfo info(dir_.canonicalPath()); if (template_name.isEmpty()) {
return(!info.isWritable()); QFileInfo info(dir_.canonicalPath());
return(!info.isWritable());
} else {
QFileInfo info(dir_.absoluteFilePath(toFileName(template_name)));
return(!info.isWritable());
}
} }
/** /**

View File

@ -48,7 +48,7 @@ class TitleBlockTemplatesCollection : public QObject {
virtual bool setTemplateXmlDescription(const QString &, const QDomElement &) = 0; virtual bool setTemplateXmlDescription(const QString &, const QDomElement &) = 0;
virtual void removeTemplate(const QString &) = 0; virtual void removeTemplate(const QString &) = 0;
virtual TitleBlockTemplateLocation location(const QString & = QString()) = 0; virtual TitleBlockTemplateLocation location(const QString & = QString()) = 0;
virtual bool isReadOnly() const = 0; virtual bool isReadOnly(const QString & = QString()) const = 0;
virtual QString title() const; virtual QString title() const;
virtual void setTitle(const QString &); virtual void setTitle(const QString &);
virtual QString protocol() const; virtual QString protocol() const;
@ -94,7 +94,7 @@ class TitleBlockTemplatesProjectCollection : public TitleBlockTemplatesCollectio
virtual bool setTemplateXmlDescription(const QString &, const QDomElement &); virtual bool setTemplateXmlDescription(const QString &, const QDomElement &);
virtual void removeTemplate(const QString &); virtual void removeTemplate(const QString &);
virtual TitleBlockTemplateLocation location(const QString & = QString()); virtual TitleBlockTemplateLocation location(const QString & = QString());
virtual bool isReadOnly() const; virtual bool isReadOnly(const QString & = QString()) const;
virtual void fromXml(const QDomElement &); virtual void fromXml(const QDomElement &);
// attributes // attributes
@ -130,7 +130,7 @@ class TitleBlockTemplatesFilesCollection : public TitleBlockTemplatesCollection
virtual bool setTemplateXmlDescription(const QString &, const QDomElement &); virtual bool setTemplateXmlDescription(const QString &, const QDomElement &);
virtual void removeTemplate(const QString &); virtual void removeTemplate(const QString &);
virtual TitleBlockTemplateLocation location(const QString & = QString()); virtual TitleBlockTemplateLocation location(const QString & = QString());
virtual bool isReadOnly() const; virtual bool isReadOnly(const QString & = QString()) const;
static QString toTemplateName(const QString &); static QString toTemplateName(const QString &);
static QString toFileName(const QString &); static QString toFileName(const QString &);