From 7a839339349bfa227e10ab3a1369f35bc53a9cc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D0=B5=D0=BB=D0=B8=D0=BF=D0=B5=D0=BD=D0=BA=D0=BE=20?= =?UTF-8?q?=D0=98=D0=B2=D0=B0=D0=BD?= Date: Thu, 15 Dec 2016 08:06:43 +0000 Subject: [PATCH] git-svn-id: svn://db.shs.com.ru/pip@297 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5 --- src/core/pipropertystorage.cpp | 17 +++++++++++++++++ src/core/pipropertystorage.h | 2 ++ 2 files changed, 19 insertions(+) diff --git a/src/core/pipropertystorage.cpp b/src/core/pipropertystorage.cpp index 765a8ee1..351e4f8f 100644 --- a/src/core/pipropertystorage.cpp +++ b/src/core/pipropertystorage.cpp @@ -95,3 +95,20 @@ void PIPropertyStorage::setPropertyFlags(const PIString & name, int flags) { return; } } + + +PIPropertyStorage::Property & PIPropertyStorage::operator[](const PIString & name) { + piForeach (Property & p, props) + if (p.name == name) + return p; + addProperty(name, ""); + return props.back(); +} + + +const PIPropertyStorage::Property PIPropertyStorage::operator[](const PIString & name) const { + piForeachC (Property & p, props) + if (p.name == name) + return p; + return Property(); +} diff --git a/src/core/pipropertystorage.h b/src/core/pipropertystorage.h index 37f0b76d..03b07951 100644 --- a/src/core/pipropertystorage.h +++ b/src/core/pipropertystorage.h @@ -60,6 +60,8 @@ public: PIPropertyStorage & operator <<(const PIPropertyStorage & p) {props << p.props; return *this;} Property & operator[](int i) {return props[i];} const Property & operator[](int i) const {return props[i];} + Property & operator[](const PIString & name); + const Property operator[](const PIString & name) const; static Property parsePropertyLine(PIString l);