qDebug() << path;\r
}\r
else {\r
- QFileInfoList::iterator it, itRoot = m_fileInfoList.end();\r
+ QFileInfoList::iterator it;\r
+ bool removeDotDot = false;\r
for (it = m_fileInfoList.begin(); it != m_fileInfoList.end(); ) {\r
- if (it->fileName() == "..") {\r
- if (m_dir.isRoot()) {\r
- it = m_fileInfoList.erase(it);\r
- itRoot = m_fileInfoList.end();\r
- continue;\r
- }\r
- else {\r
- itRoot = it;\r
- }\r
- }\r
#ifdef Q_OS_WIN32\r
if (!(filter() & QDir::System)){\r
DWORD dwFlags = ::GetFileAttributes(\r
}\r
}\r
#endif\r
+ if (it->fileName() == "..") {\r
+ if (m_dir.isRoot()) {\r
+ qDebug() << m_dir.absolutePath() << " is root.";\r
+ it = m_fileInfoList.erase(it);\r
+ removeDotDot = true;\r
+ continue;\r
+ }\r
+ }\r
it++;\r
}\r
// ソート方法によらず、".."は必ず先頭にする\r
- if (itRoot != m_fileInfoList.begin() && itRoot != m_fileInfoList.end()) {\r
- QFileInfo info(*itRoot);\r
- m_fileInfoList.erase(itRoot);\r
- m_fileInfoList.push_front(info);\r
+ if (!removeDotDot) {\r
+ QFileInfoList::iterator itRoot = m_fileInfoList.end();\r
+ for (it = m_fileInfoList.begin(); it != m_fileInfoList.end(); it++) {\r
+ if (it->fileName() == "..") {\r
+ itRoot = it;\r
+ break;\r
+ }\r
+ }\r
+ if (itRoot != m_fileInfoList.end()) {\r
+ QFileInfo info(*itRoot);\r
+ m_fileInfoList.erase(itRoot);\r
+ m_fileInfoList.push_front(info);\r
+ }\r
}\r
}\r
\r