Merge pull request #41 from archshift/itr
Changed iterators to use auto, many of which using range-based loops
This commit is contained in:
commit
0ccd026a6d
|
@ -21,14 +21,14 @@ void SaveHotkeys(QSettings& settings)
|
||||||
{
|
{
|
||||||
settings.beginGroup("Shortcuts");
|
settings.beginGroup("Shortcuts");
|
||||||
|
|
||||||
for (HotkeyGroupMap::iterator group = hotkey_groups.begin(); group != hotkey_groups.end(); ++group)
|
for (auto group : hotkey_groups)
|
||||||
{
|
{
|
||||||
settings.beginGroup(group->first);
|
settings.beginGroup(group.first);
|
||||||
for (HotkeyMap::iterator hotkey = group->second.begin(); hotkey != group->second.end(); ++hotkey)
|
for (auto hotkey : group.second)
|
||||||
{
|
{
|
||||||
settings.beginGroup(hotkey->first);
|
settings.beginGroup(hotkey.first);
|
||||||
settings.setValue(QString("KeySeq"), hotkey->second.keyseq.toString());
|
settings.setValue(QString("KeySeq"), hotkey.second.keyseq.toString());
|
||||||
settings.setValue(QString("Context"), hotkey->second.context);
|
settings.setValue(QString("Context"), hotkey.second.context);
|
||||||
settings.endGroup();
|
settings.endGroup();
|
||||||
}
|
}
|
||||||
settings.endGroup();
|
settings.endGroup();
|
||||||
|
@ -42,17 +42,17 @@ void LoadHotkeys(QSettings& settings)
|
||||||
|
|
||||||
// Make sure NOT to use a reference here because it would become invalid once we call beginGroup()
|
// Make sure NOT to use a reference here because it would become invalid once we call beginGroup()
|
||||||
QStringList groups = settings.childGroups();
|
QStringList groups = settings.childGroups();
|
||||||
for (QList<QString>::iterator group = groups.begin(); group != groups.end(); ++group)
|
for (auto group : groups)
|
||||||
{
|
{
|
||||||
settings.beginGroup(*group);
|
settings.beginGroup(group);
|
||||||
|
|
||||||
QStringList hotkeys = settings.childGroups();
|
QStringList hotkeys = settings.childGroups();
|
||||||
for (QList<QString>::iterator hotkey = hotkeys.begin(); hotkey != hotkeys.end(); ++hotkey)
|
for (auto hotkey : hotkeys)
|
||||||
{
|
{
|
||||||
settings.beginGroup(*hotkey);
|
settings.beginGroup(hotkey);
|
||||||
|
|
||||||
// RegisterHotkey assigns default keybindings, so use old values as default parameters
|
// RegisterHotkey assigns default keybindings, so use old values as default parameters
|
||||||
Hotkey& hk = hotkey_groups[*group][*hotkey];
|
Hotkey& hk = hotkey_groups[group][hotkey];
|
||||||
hk.keyseq = QKeySequence::fromString(settings.value("KeySeq", hk.keyseq.toString()).toString());
|
hk.keyseq = QKeySequence::fromString(settings.value("KeySeq", hk.keyseq.toString()).toString());
|
||||||
hk.context = (Qt::ShortcutContext)settings.value("Context", hk.context).toInt();
|
hk.context = (Qt::ShortcutContext)settings.value("Context", hk.context).toInt();
|
||||||
if (hk.shortcut)
|
if (hk.shortcut)
|
||||||
|
@ -91,13 +91,13 @@ GHotkeysDialog::GHotkeysDialog(QWidget* parent): QDialog(parent)
|
||||||
{
|
{
|
||||||
ui.setupUi(this);
|
ui.setupUi(this);
|
||||||
|
|
||||||
for (HotkeyGroupMap::iterator group = hotkey_groups.begin(); group != hotkey_groups.end(); ++group)
|
for (auto group : hotkey_groups)
|
||||||
{
|
{
|
||||||
QTreeWidgetItem* toplevel_item = new QTreeWidgetItem(QStringList(group->first));
|
QTreeWidgetItem* toplevel_item = new QTreeWidgetItem(QStringList(group.first));
|
||||||
for (HotkeyMap::iterator hotkey = group->second.begin(); hotkey != group->second.end(); ++hotkey)
|
for (auto hotkey : group.second)
|
||||||
{
|
{
|
||||||
QStringList columns;
|
QStringList columns;
|
||||||
columns << hotkey->first << hotkey->second.keyseq.toString();
|
columns << hotkey.first << hotkey.second.keyseq.toString();
|
||||||
QTreeWidgetItem* item = new QTreeWidgetItem(columns);
|
QTreeWidgetItem* item = new QTreeWidgetItem(columns);
|
||||||
toplevel_item->addChild(item);
|
toplevel_item->addChild(item);
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,32 +9,29 @@
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|
||||||
bool BreakPoints::IsAddressBreakPoint(u32 _iAddress)
|
bool BreakPoints::IsAddressBreakPoint(u32 iAddress)
|
||||||
{
|
{
|
||||||
for (TBreakPoints::iterator i = m_BreakPoints.begin(); i != m_BreakPoints.end(); ++i)
|
auto cond = [&iAddress](const TBreakPoint& bp) { return bp.iAddress == iAddress; };
|
||||||
if (i->iAddress == _iAddress)
|
auto it = std::find_if(m_BreakPoints.begin(), m_BreakPoints.end(), cond);
|
||||||
return true;
|
return it != m_BreakPoints.end();
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool BreakPoints::IsTempBreakPoint(u32 _iAddress)
|
bool BreakPoints::IsTempBreakPoint(u32 iAddress)
|
||||||
{
|
{
|
||||||
for (TBreakPoints::iterator i = m_BreakPoints.begin(); i != m_BreakPoints.end(); ++i)
|
auto cond = [&iAddress](const TBreakPoint& bp) { return bp.iAddress == iAddress && bp.bTemporary; };
|
||||||
if (i->iAddress == _iAddress && i->bTemporary)
|
auto it = std::find_if(m_BreakPoints.begin(), m_BreakPoints.end(), cond);
|
||||||
return true;
|
return it != m_BreakPoints.end();
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BreakPoints::TBreakPointsStr BreakPoints::GetStrings() const
|
BreakPoints::TBreakPointsStr BreakPoints::GetStrings() const
|
||||||
{
|
{
|
||||||
TBreakPointsStr bps;
|
TBreakPointsStr bps;
|
||||||
for (TBreakPoints::const_iterator i = m_BreakPoints.begin();
|
for (auto breakpoint : m_BreakPoints)
|
||||||
i != m_BreakPoints.end(); ++i)
|
|
||||||
{
|
{
|
||||||
if (!i->bTemporary)
|
if (!breakpoint.bTemporary)
|
||||||
{
|
{
|
||||||
std::stringstream bp;
|
std::stringstream bp;
|
||||||
bp << std::hex << i->iAddress << " " << (i->bOn ? "n" : "");
|
bp << std::hex << breakpoint.iAddress << " " << (breakpoint.bOn ? "n" : "");
|
||||||
bps.push_back(bp.str());
|
bps.push_back(bp.str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -44,13 +41,13 @@ BreakPoints::TBreakPointsStr BreakPoints::GetStrings() const
|
||||||
|
|
||||||
void BreakPoints::AddFromStrings(const TBreakPointsStr& bps)
|
void BreakPoints::AddFromStrings(const TBreakPointsStr& bps)
|
||||||
{
|
{
|
||||||
for (TBreakPointsStr::const_iterator i = bps.begin(); i != bps.end(); ++i)
|
for (auto bps_item : bps)
|
||||||
{
|
{
|
||||||
TBreakPoint bp;
|
TBreakPoint bp;
|
||||||
std::stringstream bpstr;
|
std::stringstream bpstr;
|
||||||
bpstr << std::hex << *i;
|
bpstr << std::hex << bps_item;
|
||||||
bpstr >> bp.iAddress;
|
bpstr >> bp.iAddress;
|
||||||
bp.bOn = i->find("n") != i->npos;
|
bp.bOn = bps_item.find("n") != bps_item.npos;
|
||||||
bp.bTemporary = false;
|
bp.bTemporary = false;
|
||||||
Add(bp);
|
Add(bp);
|
||||||
}
|
}
|
||||||
|
@ -84,16 +81,10 @@ void BreakPoints::Add(u32 em_address, bool temp)
|
||||||
|
|
||||||
void BreakPoints::Remove(u32 em_address)
|
void BreakPoints::Remove(u32 em_address)
|
||||||
{
|
{
|
||||||
for (TBreakPoints::iterator i = m_BreakPoints.begin(); i != m_BreakPoints.end(); ++i)
|
auto cond = [&em_address](const TBreakPoint& bp) { return bp.iAddress == em_address; };
|
||||||
{
|
auto it = std::find_if(m_BreakPoints.begin(), m_BreakPoints.end(), cond);
|
||||||
if (i->iAddress == em_address)
|
if (it != m_BreakPoints.end())
|
||||||
{
|
m_BreakPoints.erase(it);
|
||||||
m_BreakPoints.erase(i);
|
|
||||||
//if (jit)
|
|
||||||
// jit->GetBlockCache()->InvalidateICache(em_address, 4);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void BreakPoints::Clear()
|
void BreakPoints::Clear()
|
||||||
|
@ -114,14 +105,16 @@ void BreakPoints::Clear()
|
||||||
MemChecks::TMemChecksStr MemChecks::GetStrings() const
|
MemChecks::TMemChecksStr MemChecks::GetStrings() const
|
||||||
{
|
{
|
||||||
TMemChecksStr mcs;
|
TMemChecksStr mcs;
|
||||||
for (TMemChecks::const_iterator i = m_MemChecks.begin();
|
for (auto memcheck : m_MemChecks)
|
||||||
i != m_MemChecks.end(); ++i)
|
|
||||||
{
|
{
|
||||||
std::stringstream mc;
|
std::stringstream mc;
|
||||||
mc << std::hex << i->StartAddress;
|
mc << std::hex << memcheck.StartAddress;
|
||||||
mc << " " << (i->bRange ? i->EndAddress : i->StartAddress) << " " <<
|
mc << " " << (memcheck.bRange ? memcheck.EndAddress : memcheck.StartAddress) << " "
|
||||||
(i->bRange ? "n" : "") << (i->OnRead ? "r" : "") <<
|
<< (memcheck.bRange ? "n" : "")
|
||||||
(i->OnWrite ? "w" : "") << (i->Log ? "l" : "") << (i->Break ? "p" : "");
|
<< (memcheck.OnRead ? "r" : "")
|
||||||
|
<< (memcheck.OnWrite ? "w" : "")
|
||||||
|
<< (memcheck.Log ? "l" : "")
|
||||||
|
<< (memcheck.Break ? "p" : "");
|
||||||
mcs.push_back(mc.str());
|
mcs.push_back(mc.str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -130,17 +123,17 @@ MemChecks::TMemChecksStr MemChecks::GetStrings() const
|
||||||
|
|
||||||
void MemChecks::AddFromStrings(const TMemChecksStr& mcs)
|
void MemChecks::AddFromStrings(const TMemChecksStr& mcs)
|
||||||
{
|
{
|
||||||
for (TMemChecksStr::const_iterator i = mcs.begin(); i != mcs.end(); ++i)
|
for (auto mcs_item : mcs)
|
||||||
{
|
{
|
||||||
TMemCheck mc;
|
TMemCheck mc;
|
||||||
std::stringstream mcstr;
|
std::stringstream mcstr;
|
||||||
mcstr << std::hex << *i;
|
mcstr << std::hex << mcs_item;
|
||||||
mcstr >> mc.StartAddress;
|
mcstr >> mc.StartAddress;
|
||||||
mc.bRange = i->find("n") != i->npos;
|
mc.bRange = mcs_item.find("n") != mcs_item.npos;
|
||||||
mc.OnRead = i->find("r") != i->npos;
|
mc.OnRead = mcs_item.find("r") != mcs_item.npos;
|
||||||
mc.OnWrite = i->find("w") != i->npos;
|
mc.OnWrite = mcs_item.find("w") != mcs_item.npos;
|
||||||
mc.Log = i->find("l") != i->npos;
|
mc.Log = mcs_item.find("l") != mcs_item.npos;
|
||||||
mc.Break = i->find("p") != i->npos;
|
mc.Break = mcs_item.find("p") != mcs_item.npos;
|
||||||
if (mc.bRange)
|
if (mc.bRange)
|
||||||
mcstr >> mc.EndAddress;
|
mcstr >> mc.EndAddress;
|
||||||
else
|
else
|
||||||
|
@ -149,27 +142,23 @@ void MemChecks::AddFromStrings(const TMemChecksStr& mcs)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MemChecks::Add(const TMemCheck& _rMemoryCheck)
|
void MemChecks::Add(const TMemCheck& rMemoryCheck)
|
||||||
{
|
{
|
||||||
if (GetMemCheck(_rMemoryCheck.StartAddress) == 0)
|
if (GetMemCheck(rMemoryCheck.StartAddress) == 0)
|
||||||
m_MemChecks.push_back(_rMemoryCheck);
|
m_MemChecks.push_back(rMemoryCheck);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MemChecks::Remove(u32 _Address)
|
void MemChecks::Remove(u32 Address)
|
||||||
{
|
{
|
||||||
for (TMemChecks::iterator i = m_MemChecks.begin(); i != m_MemChecks.end(); ++i)
|
auto cond = [&Address](const TMemCheck& mc) { return mc.StartAddress == Address; };
|
||||||
{
|
auto it = std::find_if(m_MemChecks.begin(), m_MemChecks.end(), cond);
|
||||||
if (i->StartAddress == _Address)
|
if (it != m_MemChecks.end())
|
||||||
{
|
m_MemChecks.erase(it);
|
||||||
m_MemChecks.erase(i);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TMemCheck *MemChecks::GetMemCheck(u32 address)
|
TMemCheck *MemChecks::GetMemCheck(u32 address)
|
||||||
{
|
{
|
||||||
for (TMemChecks::iterator i = m_MemChecks.begin(); i != m_MemChecks.end(); ++i)
|
for (auto i = m_MemChecks.begin(); i != m_MemChecks.end(); ++i)
|
||||||
{
|
{
|
||||||
if (i->bRange)
|
if (i->bRange)
|
||||||
{
|
{
|
||||||
|
|
|
@ -14,32 +14,33 @@ class DebugInterface;
|
||||||
|
|
||||||
struct TBreakPoint
|
struct TBreakPoint
|
||||||
{
|
{
|
||||||
u32 iAddress;
|
u32 iAddress;
|
||||||
bool bOn;
|
bool bOn;
|
||||||
bool bTemporary;
|
bool bTemporary;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct TMemCheck
|
struct TMemCheck
|
||||||
{
|
{
|
||||||
TMemCheck() {
|
TMemCheck():
|
||||||
numHits = 0;
|
StartAddress(0), EndAddress(0),
|
||||||
StartAddress = EndAddress = 0;
|
bRange(false), OnRead(false), OnWrite(false),
|
||||||
bRange = OnRead = OnWrite = Log = Break = false;
|
Log(false), Break(false), numHits(0)
|
||||||
}
|
{ }
|
||||||
u32 StartAddress;
|
|
||||||
u32 EndAddress;
|
|
||||||
|
|
||||||
bool bRange;
|
u32 StartAddress;
|
||||||
|
u32 EndAddress;
|
||||||
|
|
||||||
bool OnRead;
|
bool bRange;
|
||||||
bool OnWrite;
|
|
||||||
|
|
||||||
bool Log;
|
bool OnRead;
|
||||||
bool Break;
|
bool OnWrite;
|
||||||
|
|
||||||
u32 numHits;
|
bool Log;
|
||||||
|
bool Break;
|
||||||
|
|
||||||
void Action(DebugInterface *dbg_interface, u32 _iValue, u32 addr,
|
u32 numHits;
|
||||||
|
|
||||||
|
void Action(DebugInterface *dbg_interface, u32 iValue, u32 addr,
|
||||||
bool write, int size, u32 pc);
|
bool write, int size, u32 pc);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -56,22 +57,22 @@ public:
|
||||||
void AddFromStrings(const TBreakPointsStr& bps);
|
void AddFromStrings(const TBreakPointsStr& bps);
|
||||||
|
|
||||||
// is address breakpoint
|
// is address breakpoint
|
||||||
bool IsAddressBreakPoint(u32 _iAddress);
|
bool IsAddressBreakPoint(u32 iAddress);
|
||||||
bool IsTempBreakPoint(u32 _iAddress);
|
bool IsTempBreakPoint(u32 iAddress);
|
||||||
|
|
||||||
// Add BreakPoint
|
// Add BreakPoint
|
||||||
void Add(u32 em_address, bool temp=false);
|
void Add(u32 em_address, bool temp=false);
|
||||||
void Add(const TBreakPoint& bp);
|
void Add(const TBreakPoint& bp);
|
||||||
|
|
||||||
// Remove Breakpoint
|
// Remove Breakpoint
|
||||||
void Remove(u32 _iAddress);
|
void Remove(u32 iAddress);
|
||||||
void Clear();
|
void Clear();
|
||||||
|
|
||||||
void DeleteByAddress(u32 _Address);
|
void DeleteByAddress(u32 Address);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
TBreakPoints m_BreakPoints;
|
TBreakPoints m_BreakPoints;
|
||||||
u32 m_iBreakOnCount;
|
u32 m_iBreakOnCount;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -89,7 +90,7 @@ public:
|
||||||
TMemChecksStr GetStrings() const;
|
TMemChecksStr GetStrings() const;
|
||||||
void AddFromStrings(const TMemChecksStr& mcs);
|
void AddFromStrings(const TMemChecksStr& mcs);
|
||||||
|
|
||||||
void Add(const TMemCheck& _rMemoryCheck);
|
void Add(const TMemCheck& rMemoryCheck);
|
||||||
|
|
||||||
// memory breakpoint
|
// memory breakpoint
|
||||||
TMemCheck *GetMemCheck(u32 address);
|
TMemCheck *GetMemCheck(u32 address);
|
||||||
|
@ -99,4 +100,3 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Reference in New Issue