1*f6dc9357SAndroid Build Coastguard Worker // SevenZip/Plugin.cpp 2*f6dc9357SAndroid Build Coastguard Worker 3*f6dc9357SAndroid Build Coastguard Worker #include "StdAfx.h" 4*f6dc9357SAndroid Build Coastguard Worker 5*f6dc9357SAndroid Build Coastguard Worker #include "Plugin.h" 6*f6dc9357SAndroid Build Coastguard Worker 7*f6dc9357SAndroid Build Coastguard Worker /* 8*f6dc9357SAndroid Build Coastguard Worker void CPlugin::AddRealIndexOfFile(const CArchiveFolderItem &aFolder, 9*f6dc9357SAndroid Build Coastguard Worker int anIndexInVector, vector<int> &aRealIndexes) 10*f6dc9357SAndroid Build Coastguard Worker { 11*f6dc9357SAndroid Build Coastguard Worker const CArchiveFolderFileItem &anItem = aFolder.m_FileSubItems[anIndexInVector]; 12*f6dc9357SAndroid Build Coastguard Worker int aHandlerItemIndex = m_ProxyHandler->GetHandlerItemIndex(anItem.m_Properties); 13*f6dc9357SAndroid Build Coastguard Worker if (aHandlerItemIndex < 0) 14*f6dc9357SAndroid Build Coastguard Worker throw "error"; 15*f6dc9357SAndroid Build Coastguard Worker aRealIndexes.push_back(aHandlerItemIndex); 16*f6dc9357SAndroid Build Coastguard Worker } 17*f6dc9357SAndroid Build Coastguard Worker 18*f6dc9357SAndroid Build Coastguard Worker void CPlugin::AddRealIndexes(const CArchiveFolderItem &anItem, 19*f6dc9357SAndroid Build Coastguard Worker vector<int> &aRealIndexes) 20*f6dc9357SAndroid Build Coastguard Worker { 21*f6dc9357SAndroid Build Coastguard Worker int aHandlerItemIndex = m_ProxyHandler->GetHandlerItemIndex(anItem.m_Properties); 22*f6dc9357SAndroid Build Coastguard Worker if (aHandlerItemIndex >= 0) // test -1 value 23*f6dc9357SAndroid Build Coastguard Worker aRealIndexes.push_back(aHandlerItemIndex); 24*f6dc9357SAndroid Build Coastguard Worker for (int i = 0; i < anItem.m_DirSubItems.Size(); i++) 25*f6dc9357SAndroid Build Coastguard Worker AddRealIndexes(anItem.m_DirSubItems[i], aRealIndexes); 26*f6dc9357SAndroid Build Coastguard Worker for (i = 0; i < anItem.m_FileSubItems.Size(); i++) 27*f6dc9357SAndroid Build Coastguard Worker AddRealIndexOfFile(anItem, i , aRealIndexes); 28*f6dc9357SAndroid Build Coastguard Worker } 29*f6dc9357SAndroid Build Coastguard Worker 30*f6dc9357SAndroid Build Coastguard Worker 31*f6dc9357SAndroid Build Coastguard Worker void CPlugin::GetRealIndexes(PluginPanelItem *aPanelItems, int anItemsNumber, 32*f6dc9357SAndroid Build Coastguard Worker vector<int> &aRealIndexes) 33*f6dc9357SAndroid Build Coastguard Worker { 34*f6dc9357SAndroid Build Coastguard Worker aRealIndexes.clear(); 35*f6dc9357SAndroid Build Coastguard Worker for (int i = 0; i < anItemsNumber; i++) 36*f6dc9357SAndroid Build Coastguard Worker { 37*f6dc9357SAndroid Build Coastguard Worker int anIndex = aPanelItems[i].UserData; 38*f6dc9357SAndroid Build Coastguard Worker if (anIndex < m_FolderItem->m_DirSubItems.Size()) 39*f6dc9357SAndroid Build Coastguard Worker { 40*f6dc9357SAndroid Build Coastguard Worker const CArchiveFolderItem &anItem = m_FolderItem->m_DirSubItems[anIndex]; 41*f6dc9357SAndroid Build Coastguard Worker AddRealIndexes(anItem, aRealIndexes); 42*f6dc9357SAndroid Build Coastguard Worker } 43*f6dc9357SAndroid Build Coastguard Worker else 44*f6dc9357SAndroid Build Coastguard Worker AddRealIndexOfFile(*m_FolderItem, anIndex - m_FolderItem->m_DirSubItems.Size(), 45*f6dc9357SAndroid Build Coastguard Worker aRealIndexes); 46*f6dc9357SAndroid Build Coastguard Worker } 47*f6dc9357SAndroid Build Coastguard Worker sort(aRealIndexes.begin(), aRealIndexes.end()); 48*f6dc9357SAndroid Build Coastguard Worker } 49*f6dc9357SAndroid Build Coastguard Worker 50*f6dc9357SAndroid Build Coastguard Worker */ 51