Skip to content

Commit

Permalink
xrEProps: work on ItemList
Browse files Browse the repository at this point in the history
  • Loading branch information
Xottab-DUTY committed Mar 3, 2018
1 parent 46ea987 commit 96b6690
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 51 deletions.
4 changes: 2 additions & 2 deletions src/editors/xrEProps/ItemList.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -126,8 +126,8 @@ void TItemList::ClearParams(TElTreeItem* node)
}
}
// real clear
for (ListItemsIt it = m_Items.begin(); it != m_Items.end(); it++)
xr_delete(*it);
for (auto& it : m_Items)
xr_delete();
m_Items.clear();
// fill list
LockUpdating();
Expand Down
14 changes: 7 additions & 7 deletions src/editors/xrEProps/ItemListHelper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ IListHelper& LHelper() { return LHelper_impl; }

ListItem* CListHelper::FindItem(ListItemsVec& items, LPCSTR key)
{
for (ListItemsIt it = items.begin(); it != items.end(); it++)
if ((*it)->key == key)
return *it;
for (auto& it : items)
if (it->key == key)
return it;
return 0;
}

Expand All @@ -23,8 +23,8 @@ ListItem* CListHelper::CreateItem(ListItemsVec& items, LPCSTR key, int type, u32
ListItem* item = new ListItem(type);
item->SetName(key);
item->m_Object = object;
item->m_Flags.set(item_flags, TRUE);
items.push_back(item);
item->m_Flags.set(item_flags, true);
items.emplace_back(item);
return item;
}

Expand Down Expand Up @@ -56,14 +56,14 @@ bool CListHelper::NameAfterEdit(ListItem* sender, LPCSTR value, shared_str& N)
{
if ((itm != node) && (itm->Text == AnsiString(N.c_str())))
{
// елемент с таким именем уже существует
// Элемент с таким именем уже существует
N = value;
return false;
}
}
// all right
node->Text = N.c_str();
AnsiString tmp;
xr_string tmp;
_ReplaceItem(*sender->key, _GetItemCount(*sender->key, '\\') - 1, N.c_str(), tmp, '\\');
sender->key = tmp.c_str();
// Имя объекта может быть составным из a\\b\\name
Expand Down
78 changes: 39 additions & 39 deletions src/xrCore/xr_trims.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -152,59 +152,37 @@ LPSTR _ReplaceItems(LPCSTR src, int idx_start, int idx_end, LPCSTR new_items, LP
return dst;
}

LPSTR _ReplaceItem(LPCSTR src, int index, LPCSTR new_item, LPSTR dst, char separator)
xr_string& _ReplaceItems(pcstr src, int idx_start, int idx_end, pcstr new_items, xr_string& dst, char separator)
{
LPSTR n = dst;
dst = "";
int level = 0;
bool bCopy = true;
for (LPCSTR p = src; *p != 0; p++)
for (pcstr p = src; *p != 0; p++)
{
if (level == index)
if ((level >= idx_start) && (level < idx_end))
{
if (bCopy)
{
for (LPCSTR itm = new_item; *itm != 0;)
*n++ = *itm++;
for (pcstr itm = new_items; *itm != 0;)
dst += *itm++;
bCopy = false;
}
if (*p == separator)
*n++ = separator;
dst += separator;
}
else
{
*n++ = *p;
dst += *p;
}
if (*p == separator)
level++;
}
*n = '\0';
return dst;
}

LPSTR _ChangeSymbol(LPSTR name, char src, char dest)
{
char* sTmpName = name;
while (sTmpName[0])
{
if (sTmpName[0] == src)
sTmpName[0] = dest;
sTmpName++;
}
return name;
}

xr_string& _ChangeSymbol(xr_string& name, char src, char dest)
{
for (xr_string::iterator it = name.begin(); it != name.end(); it++)
if (*it == src)
*it = xr_string::value_type(dest);
return name;
}

#ifdef M_BORLAND
AnsiString& _ReplaceItem(LPCSTR src, int index, LPCSTR new_item, AnsiString& dst, char separator)
LPSTR _ReplaceItem(LPCSTR src, int index, LPCSTR new_item, LPSTR dst, char separator)
{
dst = "";
LPSTR n = dst;
int level = 0;
bool bCopy = true;
for (LPCSTR p = src; *p != 0; p++)
Expand All @@ -214,34 +192,35 @@ AnsiString& _ReplaceItem(LPCSTR src, int index, LPCSTR new_item, AnsiString& dst
if (bCopy)
{
for (LPCSTR itm = new_item; *itm != 0;)
dst += *itm++;
*n++ = *itm++;
bCopy = false;
}
if (*p == separator)
dst += separator;
*n++ = separator;
}
else
{
dst += *p;
*n++ = *p;
}
if (*p == separator)
level++;
}
*n = '\0';
return dst;
}

AnsiString& _ReplaceItems(LPCSTR src, int idx_start, int idx_end, LPCSTR new_items, AnsiString& dst, char separator)
xr_string& _ReplaceItem(pcstr src, int index, pcstr new_item, xr_string& dst, char separator)
{
dst = "";
int level = 0;
bool bCopy = true;
for (LPCSTR p = src; *p != 0; p++)
for (pcstr p = src; *p != 0; p++)
{
if ((level >= idx_start) && (level < idx_end))
if (level == index)
{
if (bCopy)
{
for (LPCSTR itm = new_items; *itm != 0;)
for (pcstr itm = new_item; *itm != 0;)
dst += *itm++;
bCopy = false;
}
Expand All @@ -258,6 +237,27 @@ AnsiString& _ReplaceItems(LPCSTR src, int idx_start, int idx_end, LPCSTR new_ite
return dst;
}

LPSTR _ChangeSymbol(LPSTR name, char src, char dest)
{
char* sTmpName = name;
while (sTmpName[0])
{
if (sTmpName[0] == src)
sTmpName[0] = dest;
sTmpName++;
}
return name;
}

xr_string& _ChangeSymbol(xr_string& name, char src, char dest)
{
for (xr_string::iterator it = name.begin(); it != name.end(); it++)
if (*it == src)
*it = xr_string::value_type(dest);
return name;
}

#ifdef M_BORLAND
AnsiString& _Trim(AnsiString& str) { return str = str.Trim(); }
LPCSTR _CopyVal(LPCSTR src, AnsiString& dst, char separator)
{
Expand Down
6 changes: 3 additions & 3 deletions src/xrCore/xr_trims.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,6 @@ XRCORE_API LPCSTR _CopyVal(LPCSTR src, AnsiString& dst, char separator = ',');
XRCORE_API AnsiString _ListToSequence(const AStringVec& lst);
XRCORE_API AnsiString _ListToSequence2(const AStringVec& lst);
XRCORE_API void _SequenceToList(AStringVec& lst, LPCSTR in, char separator = ',');
XRCORE_API AnsiString& _ReplaceItem(LPCSTR src, int index, LPCSTR new_item, AnsiString& dst, char separator);
XRCORE_API AnsiString& _ReplaceItems(
LPCSTR src, int idx_start, int idx_end, LPCSTR new_items, AnsiString& dst, char separator);
XRCORE_API AnsiString FloatTimeToStrTime(float v, bool h = true, bool m = true, bool s = true, bool ms = false);
XRCORE_API float StrTimeToFloatTime(LPCSTR buf, bool h = true, bool m = true, bool s = true, bool ms = false);
#endif
Expand All @@ -44,7 +41,9 @@ XRCORE_API LPSTR _ChangeSymbol(LPSTR name, char src, char dest);
XRCORE_API u32 _ParseItem(LPCSTR src, xr_token* token_list);
XRCORE_API u32 _ParseItem(LPSTR src, int ind, xr_token* token_list);
XRCORE_API LPSTR _ReplaceItem(LPCSTR src, int index, LPCSTR new_item, LPSTR dst, char separator);
XRCORE_API xr_string& _ReplaceItem(pcstr src, int index, pcstr new_item, xr_string& dst, char separator);
XRCORE_API LPSTR _ReplaceItems(LPCSTR src, int idx_start, int idx_end, LPCSTR new_items, LPSTR dst, char separator);
XRCORE_API xr_string& _ReplaceItems(pcstr src, int idx_start, int idx_end, pcstr new_items, xr_string& dst, char separator);
XRCORE_API void _SequenceToList(LPSTRVec& lst, LPCSTR in, char separator = ',');
XRCORE_API void _SequenceToList(RStringVec& lst, LPCSTR in, char separator = ',');
XRCORE_API void _SequenceToList(SStringVec& lst, LPCSTR in, char separator = ',');
Expand All @@ -57,3 +56,4 @@ XRCORE_API LPCSTR _CopyVal(LPCSTR src, xr_string& dst, char separator = ',');
XRCORE_API LPCSTR _GetItem(LPCSTR src, int, xr_string& p, char separator = ',', LPCSTR = "", bool trim = true);
XRCORE_API xr_string _ListToSequence(const SStringVec& lst);
XRCORE_API shared_str _ListToSequence(const RStringVec& lst);

0 comments on commit 96b6690

Please sign in to comment.