Revision: 2480 http://rigsofrods.svn.sourceforge.net/rigsofrods/?rev=2480&view=rev Author: ulteq Date: 2012-04-26 21:34:43 +0000 (Thu, 26 Apr 2012) Log Message: ----------- -Cleanup
Modified Paths: -------------- trunk/source/main/gameplay/CacheSystem.h trunk/source/main/gui/SelectorWindow.cpp trunk/source/main/gui/SelectorWindow.h Modified: trunk/source/main/gameplay/CacheSystem.h =================================================================== --- trunk/source/main/gameplay/CacheSystem.h 2012-04-16 22:09:48 UTC (rev 2479) +++ trunk/source/main/gameplay/CacheSystem.h 2012-04-26 21:34:43 UTC (rev 2480) @@ -222,6 +222,9 @@ void loadSingleDirectory(String dirname, String group, bool alreadyLoaded=true); static bool resourceExistsInAllGroups(Ogre::String filename); + + // see: https://code.google.com/p/rigsofrods-streams/source/browse/trunk/0.39/win32-skeleton/config/categories.cfg + enum CategoryID {CID_MAX=9000, CID_Unsorted=9990, CID_All, CID_Fresh, CID_Hidden}; protected: CacheSystem(); ~CacheSystem(); Modified: trunk/source/main/gui/SelectorWindow.cpp =================================================================== --- trunk/source/main/gui/SelectorWindow.cpp 2012-04-16 22:09:48 UTC (rev 2479) +++ trunk/source/main/gui/SelectorWindow.cpp 2012-04-26 21:34:43 UTC (rev 2480) @@ -20,17 +20,14 @@ #ifdef USE_MYGUI #include "SelectorWindow.h" -#include "LoadingWindow.h" -#include "gui_manager.h" - +#include "CacheSystem.h" +#include "LoadingWindow.h" #include "Settings.h" +#include "gui_manager.h" #include "language.h" -#include "CacheSystem.h" -#include "skin.h" #include "utils.h" #include "skinmanager.h" -#include "BeamData.h" #include "InputEngine.h" #if 0 @@ -67,17 +64,17 @@ _L("Hidden"); #endif // 0 -SelectorWindow::SelectorWindow() : mSelectedTruck(0) +SelectorWindow::SelectorWindow() : + mSelectedTruck(0) + , mSelectedSkin(0) + , visibleCounter(0) { initialiseByAttributes(this); - - visibleCounter=0; mMainWidget->setVisible(false); ((MyGUI::Window*)mMainWidget)->setCaption(_L("Loader")); mSearchLineEdit->setCaption(_L("Search ...")); mOkButton->setCaption(_L("OK")); mCancelButton->setCaption(_L("Cancel")); - // setup controls mConfigComboBox->addItem("Default", Ogre::String("Default")); @@ -107,8 +104,6 @@ mSearchLineEdit->eventMouseSetFocus += MyGUI::newDelegate(this, &SelectorWindow::eventSearchTextGotFocus); mSearchLineEdit->eventKeySetFocus += MyGUI::newDelegate(this, &SelectorWindow::eventSearchTextGotFocus); mSearchLineEdit->eventKeyButtonPressed += MyGUI::newDelegate(this, &SelectorWindow::eventKeyButtonPressed_Main); - - mSelectedSkin=0; } SelectorWindow::~SelectorWindow() @@ -276,11 +271,11 @@ void SelectorWindow::getData() { + std::map<int, int> mCategoryUsage; mTypeComboBox->removeAllItems(); - if(mModelList->getItemCount() != 0) mModelList->setIndexSelected(0); mModelList->removeAllItems(); mEntries.clear(); - mCategoryUsage.clear(); + if(mLoaderType == LT_SKIN) { // skin specific stuff @@ -289,12 +284,13 @@ mCancelButton->setEnabled(false); mConfigComboBox->setVisible(false); - mModelList->removeAllItems(); mModelList->addItem(_L("Default Skin"), 0); - int i=1; - for(std::vector<Skin *>::iterator it=mCurrentSkins.begin(); it!=mCurrentSkins.end(); it++, i++) { - mModelList->addItem((*it)->getName(), i); + int i = 1; + for(std::vector<Skin *>::iterator it = mCurrentSkins.begin(); it != mCurrentSkins.end(); it++, i++) + { + mModelList->addItem((*it)->getName(), i); + } } mModelList->setIndexSelected(0); onEntrySelected(0); @@ -307,86 +303,76 @@ int ts = getTimeStamp(); std::vector<Cache_Entry> *entries = CACHE.getEntries(); - std::vector<Cache_Entry>::iterator it; - for(it = entries->begin(); it!=entries->end(); it++) + for(std::vector<Cache_Entry>::iterator it = entries->begin(); it!=entries->end(); it++) { - // hidden category - if(it->categoryid == 9993) continue; + // category hidden + if(it->categoryid == CacheSystem::CID_Unsorted) + continue; //printf("category: %d\n", it->categoryid); - bool add =false; + bool add = false; if(it->fext=="terrn") add = (mLoaderType == LT_Terrain); else if(it->fext=="truck") - add = (mLoaderType == LT_Vehicle || mLoaderType == LT_Truck || mLoaderType == LT_Network || mLoaderType == LT_NetworkWithBoat); + add = (mLoaderType == LT_AllBeam || mLoaderType == LT_Vehicle || mLoaderType == LT_Truck || mLoaderType == LT_Network || mLoaderType == LT_NetworkWithBoat); else if(it->fext=="car") - add = (mLoaderType == LT_Vehicle || mLoaderType == LT_Car || mLoaderType == LT_Network || mLoaderType == LT_NetworkWithBoat); + add = (mLoaderType == LT_AllBeam || mLoaderType == LT_Vehicle || mLoaderType == LT_Car || mLoaderType == LT_Network || mLoaderType == LT_NetworkWithBoat); else if(it->fext=="boat") - add = (mLoaderType == LT_Boat || mLoaderType == LT_NetworkWithBoat); + add = (mLoaderType == LT_AllBeam || mLoaderType == LT_Boat || mLoaderType == LT_NetworkWithBoat); else if(it->fext=="airplane") - add = (mLoaderType == LT_Airplane || mLoaderType == LT_Network || mLoaderType == LT_NetworkWithBoat); + add = (mLoaderType == LT_AllBeam || mLoaderType == LT_Airplane || mLoaderType == LT_Network || mLoaderType == LT_NetworkWithBoat); else if(it->fext=="trailer") - add = (mLoaderType == LT_Trailer || mLoaderType == LT_Extension); + add = (mLoaderType == LT_AllBeam || mLoaderType == LT_Trailer || mLoaderType == LT_Extension); else if(it->fext=="train") - add = (mLoaderType == LT_Train); + add = (mLoaderType == LT_AllBeam || mLoaderType == LT_Train); else if(it->fext=="load") - add = (mLoaderType == LT_Load || mLoaderType == LT_Extension); + add = (mLoaderType == LT_AllBeam || mLoaderType == LT_Load || mLoaderType == LT_Extension); - if(mLoaderType == LT_AllBeam && (it->fext == "train" || it->fext == "truck" || it->fext == "car" || it->fext == "airplane" || it->fext == "trailer" || it->fext == "boat" || it->fext == "load")) - add = true; - if(!add) continue; - // remove invalid ID's - if(it->categoryid >= 9000) + // remove invalid category ID's + if(it->categoryid >= CacheSystem::CID_MAX) it->categoryid = -1; - // unsorted + // category unsorted if(it->categoryid == -1) - it->categoryid = 9990; + it->categoryid = CacheSystem::CID_Unsorted; - mCategoryUsage[it->categoryid] = mCategoryUsage[it->categoryid] + 1; + mCategoryUsage[it->categoryid]++; - // all - mCategoryUsage[9991] = mCategoryUsage[9991] + 1; + // category all + mCategoryUsage[CacheSystem::CID_All]++; - // fresh, 24 hours = 86400 + // category fresh, 24 hours = 86400 if(ts - it->addtimestamp < 86400) - mCategoryUsage[9992] = mCategoryUsage[9992] + 1; + mCategoryUsage[CacheSystem::CID_Fresh]++; - // hidden - //mCategoryUsage[9993] = 0; - // search results - mCategoryUsage[9994] = 0; - - mEntries.push_back(*it); } - int counter=0, counter2=0; + int tally_categories = 0, current_category = 0; std::map<int, Category_Entry> *cats = CACHE.getCategories(); - std::map<int, Category_Entry>::iterator itc; - for(itc = cats->begin(); itc!=cats->end(); itc++) + for(std::map<int, Category_Entry>::iterator itc = cats->begin(); itc!=cats->end(); itc++) { - if(mCategoryUsage[itc->second.number]>0) - counter++; + if(mCategoryUsage[itc->second.number] > 0) + tally_categories++; } - for(itc = cats->begin(); itc!=cats->end(); itc++) + for(std::map<int, Category_Entry>::iterator itc = cats->begin(); itc!=cats->end(); itc++) { int usage = mCategoryUsage[itc->second.number]; - if(usage == 0) - continue; - counter2++; + if(usage == 0) continue; + current_category++; + UTFString title = _L(itc->second.title.c_str()); if(title.empty()) title = _L("unknown"); - UTFString txt = U("[") + TOUTFSTRING(counter2) + U("/") + TOUTFSTRING(counter) + U("] (") + TOUTFSTRING(usage) + U(") ") + title; + UTFString txt = U("[") + TOUTFSTRING(current_category) + U("/") + TOUTFSTRING(tally_categories) + U("] (") + TOUTFSTRING(usage) + U(") ") + title; mTypeComboBox->addItem(convertToMyGUIString(txt), itc->second.number); } if(mTypeComboBox->getItemCount() != 0) mTypeComboBox->setIndexSelected(0); - if(counter2 > 0) + if(tally_categories > 0) { try { @@ -402,7 +388,7 @@ bool SelectorWindow::searchCompare(Ogre::String searchString, Cache_Entry *ce) { - if(searchString.find(":") == searchString.npos) + if(searchString.find(":") == String::npos) { // normal search @@ -502,7 +488,7 @@ if(mLoaderType == LT_SKIN) return; String search_cmd = mSearchLineEdit->getCaption(); - Ogre::StringUtil::toLowerCase(search_cmd); + StringUtil::toLowerCase(search_cmd); int ts = getTimeStamp(); mModelList->removeAllItems(); @@ -671,38 +657,29 @@ String configstr = *mConfigComboBox->getItemDataAt<String>(0); mTruckConfigs.push_back(configstr); } else + { mConfigComboBox->setVisible(false); - - UTFString authorstxt; - std::vector<String> authornames; - if(entry->authors.size() > 0) + } + UTFString authors = ""; + std::set<String> author_names; + for(std::vector<authorinfo_t>::iterator it = entry->authors.begin(); it != entry->authors.end(); it++) { - std::vector<authorinfo_t>::iterator it; - for(it=entry->authors.begin(); it!=entry->authors.end(); it++) - if(!it->type.empty() && !it->name.empty()) - { - String name = it->name; - Ogre::StringUtil::trim(name); + if(!it->type.empty() && !it->name.empty()) + { + String name = it->name; + StringUtil::trim(name); + author_names.insert(name); + } + } + for(std::set<String>::iterator it = author_names.begin(); it != author_names.end(); it++) + { + authors.append(U(" ") + *it); + } + if(authors.length() == 0) + { + authors = _L("no author information available"); + } - // check if already used - bool found = false; - std::vector<String>::iterator its; - for(its=authornames.begin(); its!=authornames.end(); its++) - { - if(*its == name) - { - found = true; - break; - } - } - if(found) - continue; - authornames.push_back(name); - authorstxt = authorstxt + U(" ") + name; - } - } else - authorstxt = _L("no author information available"); - try { mEntryNameStaticText->setCaption(convertToMyGUIString(ANSI_TO_UTF(entry->dname))); @@ -716,7 +693,7 @@ UTFString newline = U("\n"); UTFString descriptiontxt = U("#003dae") + ANSI_TO_UTF(entry->description) + nc + newline; - descriptiontxt = descriptiontxt +_L("Author(s): ") + c + authorstxt + nc +newline; + descriptiontxt = descriptiontxt +_L("Author(s): ") + c + authors + nc +newline; if(entry->version > 0) descriptiontxt = descriptiontxt + _L("Version: ") + c + TOUTFSTRING(entry->version) + nc + newline; Modified: trunk/source/main/gui/SelectorWindow.h =================================================================== --- trunk/source/main/gui/SelectorWindow.h 2012-04-16 22:09:48 UTC (rev 2479) +++ trunk/source/main/gui/SelectorWindow.h 2012-04-26 21:34:43 UTC (rev 2480) @@ -25,10 +25,7 @@ #include "RoRPrerequisites.h" #include "Singleton.h" #include "mygui/BaseLayout.h" -#include <Ogre.h> -#include "skin.h" - ATTRIBUTE_CLASS_LAYOUT(SelectorWindow, "SelectorWindow.layout"); class SelectorWindow : @@ -53,13 +50,13 @@ void setEnableCancel(bool enabled); private: // gui events - void eventKeyButtonPressed_Main(MyGUI::WidgetPtr _sender, MyGUI::KeyCode _key, MyGUI::Char _char); + void eventComboAcceptConfigComboBox(MyGUI::ComboBoxPtr _sender, size_t _index); void eventComboChangePositionTypeComboBox(MyGUI::ComboBoxPtr _sender, size_t _index); + void eventKeyButtonPressed_Main(MyGUI::WidgetPtr _sender, MyGUI::KeyCode _key, MyGUI::Char _char); void eventListChangePositionModelList(MyGUI::ListPtr _sender, size_t _index); void eventListChangePositionModelListAccept(MyGUI::ListPtr _sender, size_t _index); - void eventComboAcceptConfigComboBox(MyGUI::ComboBoxPtr _sender, size_t _index); - void eventMouseButtonClickOkButton(MyGUI::WidgetPtr _sender); void eventMouseButtonClickCancelButton(MyGUI::WidgetPtr _sender); + void eventMouseButtonClickOkButton(MyGUI::WidgetPtr _sender); void eventSearchTextChange(MyGUI::EditBox *_sender); void eventSearchTextGotFocus(MyGUI::WidgetPtr _sender, MyGUI::WidgetPtr oldWidget); void notifyWindowChangeCoord(MyGUI::Window* _sender); @@ -75,18 +72,17 @@ void updateControls(Cache_Entry *entry); void setPreviewImage(Ogre::String texture); - std::vector<Cache_Entry> mEntries; - std::map<int, int> mCategoryUsage; - std::vector<Skin *> mCurrentSkins; + Cache_Entry *mSelectedTruck; LoaderType mLoaderType; - bool mSelectionDone; - std::vector<Ogre::String> mTruckConfigs; Ogre::Camera *mCamera; - Cache_Entry *mSelectedTruck; - int visibleCounter; - Skin *mSelectedSkin; Ogre::String lastImageTextureName; -private: + Skin *mSelectedSkin; + bool mSelectionDone; + int visibleCounter; + std::vector<Cache_Entry> mEntries; + std::vector<Ogre::String> mTruckConfigs; + std::vector<Skin *> mCurrentSkins; + ATTRIBUTE_FIELD_WIDGET_NAME(SelectorWindow, mTypeComboBox, "Type"); MyGUI::ComboBox* mTypeComboBox; ATTRIBUTE_FIELD_WIDGET_NAME(SelectorWindow, mModelList, "Model"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ Rigsofrods-devel mailing list Rigsofrods-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rigsofrods-devel