Content of the ProfilePanel and Theme list now sorted alphabetically on Linux too (see issue 853)
This commit is contained in:
@@ -1065,6 +1065,7 @@ void Preferences::parseDir (Glib::ustring dirname, std::vector<Glib::ustring>& i
|
||||
if (!safe_file_test (fname, Glib::FILE_TEST_IS_DIR) && sname.size() >= ext.size() && sname.substr (sname.size()-ext.size(), ext.size()).casefold() == ext)
|
||||
items.push_back (sname.substr(0,sname.size()-ext.size()));
|
||||
}
|
||||
std::sort(items.begin(), items.end());
|
||||
delete dir;
|
||||
}
|
||||
|
||||
|
@@ -113,6 +113,10 @@ void ProfileStore::_parseProfiles () {
|
||||
currDir = "${G}";
|
||||
parseDir (p2, virtualPath, currDir, 0, 0, displayLevel0);
|
||||
}
|
||||
|
||||
// sort profiles
|
||||
std::sort(entries.begin(), entries.end(), SortProfiles() );
|
||||
|
||||
// entries and partProfiles are empty, but the entry and profiles already exist (they have survived to clearFileList and clearProfileList)
|
||||
if (!internalDefaultEntry)
|
||||
internalDefaultEntry = new ProfileStoreEntry(Glib::ustring("(") + M("PROFILEPANEL_PINTERNAL") + Glib::ustring(")"), PSET_FILE, 0, 0);
|
||||
@@ -195,7 +199,7 @@ bool ProfileStore::parseDir (Glib::ustring& realPath, Glib::ustring& virtualPath
|
||||
|
||||
// map the partial profile
|
||||
partProfiles[filePSE] = pProf;
|
||||
//partProfiles.insert( std::pair<ProfileStoreEntry*, rtengine::procparams::AutoPartialProfile*> (folderPSE, pProf) );
|
||||
//partProfiles.insert( std::pair<ProfileStoreEntry*, rtengine::procparams::AutoPartialProfile*> (filePSE, pProf) );
|
||||
}
|
||||
else if( options.rtSettings.verbose ) {
|
||||
printf ("failed!\n");
|
||||
|
@@ -125,6 +125,12 @@ class ProfileStore {
|
||||
} StoreState;
|
||||
|
||||
private:
|
||||
struct SortProfiles {
|
||||
bool operator ()(const ProfileStoreEntry* const a1, const ProfileStoreEntry* const a2) {
|
||||
return a1->parentFolderId == a2->parentFolderId ? a1->label < a2->label : a1->parentFolderId < a2->parentFolderId;
|
||||
}
|
||||
};
|
||||
|
||||
MyMutex *parseMutex;
|
||||
StoreState storeState;
|
||||
rtengine::procparams::AutoPartialProfile *internalDefaultProfile;
|
||||
|
Reference in New Issue
Block a user