static bool AppNodeLessThan(AppNode *n1, AppNode *n2) { if (n1->isDir) { if (n2->isDir) { return n1->appName.compare(n2->appName, Qt::CaseInsensitive) < 0; } else { return true; } } else { if (n2->isDir) { return false; } else { return n1->appName.compare(n2->appName, Qt::CaseInsensitive) < 0; } } return true; } becomes: static bool AppNodeLessThan(AppNode *n1, AppNode *n2) { if (n1->isDir != n2->isDir) { return n1->isDir; } return n1->appName.compare(n2->appName, Qt::CaseInsensitive) < 0; }