快捷键冲突修改,修改排序遇到两个相同的元素不能工作的bug。
This commit is contained in:
@@ -138,6 +138,7 @@ void ListDisplay::display() {
|
||||
|
||||
void ListDisplay::setSortBy(const SortBy _propName) {
|
||||
this->sortByProp = _propName;
|
||||
this->sortOrder = ASCENT;
|
||||
this->reapplyFilter();
|
||||
this->currentPageIndex = 0;
|
||||
}
|
||||
@@ -170,52 +171,59 @@ void ListDisplay::reapplyFilter() {
|
||||
this->filteredRecordsPtrList.sort(
|
||||
[&](BaseRecord *const &recordAPtr,
|
||||
BaseRecord *const &recordBPtr) -> bool {
|
||||
return recordAPtr->getRecordID() < recordBPtr->getRecordID() ==
|
||||
this->sortOrder;
|
||||
return (recordAPtr->getRecordID() < recordBPtr->getRecordID() ==
|
||||
this->sortOrder ||
|
||||
recordAPtr->getRecordID() == recordBPtr->getRecordID());
|
||||
});
|
||||
break;
|
||||
case SortBy::RecordDate:
|
||||
this->filteredRecordsPtrList.sort(
|
||||
[&](BaseRecord *const &recordAPtr,
|
||||
BaseRecord *const &recordBPtr) -> bool {
|
||||
return recordAPtr->getDate() > recordBPtr->getDate() ==
|
||||
this->sortOrder;
|
||||
return (recordAPtr->getDate() > recordBPtr->getDate() ==
|
||||
this->sortOrder ||
|
||||
recordAPtr->getDate() == recordBPtr->getDate());
|
||||
});
|
||||
break;
|
||||
case SortBy::RecordCourseName:
|
||||
this->filteredRecordsPtrList.sort(
|
||||
[&](BaseRecord *const &recordAPtr,
|
||||
BaseRecord *const &recordBPtr) -> bool {
|
||||
return recordAPtr->getCourseName() <
|
||||
recordBPtr->getCourseName() ==
|
||||
this->sortOrder;
|
||||
return (
|
||||
recordAPtr->getCourseName() < recordBPtr->getCourseName() ==
|
||||
this->sortOrder ||
|
||||
recordAPtr->getCourseName() == recordBPtr->getCourseName());
|
||||
});
|
||||
break;
|
||||
case SortBy::RecordStudentID:
|
||||
this->filteredRecordsPtrList.sort(
|
||||
[&](BaseRecord *const &recordAPtr,
|
||||
BaseRecord *const &recordBPtr) -> bool {
|
||||
return recordAPtr->getStudentNumber() <
|
||||
return (recordAPtr->getStudentNumber() <
|
||||
recordBPtr->getStudentNumber() ==
|
||||
this->sortOrder;
|
||||
this->sortOrder ||
|
||||
recordAPtr->getStudentNumber() ==
|
||||
recordBPtr->getStudentNumber());
|
||||
});
|
||||
break;
|
||||
case SortBy::RecordStudentName:
|
||||
this->filteredRecordsPtrList.sort(
|
||||
[&](BaseRecord *const &recordAPtr,
|
||||
BaseRecord *const &recordBPtr) -> bool {
|
||||
return recordAPtr->getStudentName() <
|
||||
return (recordAPtr->getStudentName() <
|
||||
recordBPtr->getStudentName() ==
|
||||
this->sortOrder;
|
||||
this->sortOrder ||
|
||||
recordAPtr->getStudentName() ==
|
||||
recordBPtr->getStudentName());
|
||||
});
|
||||
break;
|
||||
case SortBy::RecordType:
|
||||
this->filteredRecordsPtrList.sort(
|
||||
[&](BaseRecord *const &recordAPtr,
|
||||
BaseRecord *const &recordBPtr) -> bool {
|
||||
return recordAPtr->getRecordType() <
|
||||
return (recordAPtr->getRecordType() <
|
||||
recordBPtr->getRecordType() ==
|
||||
this->sortOrder;
|
||||
this->sortOrder || recordAPtr->getRecordType() == recordBPtr->getRecordType());
|
||||
});
|
||||
break;
|
||||
default: {
|
||||
|
||||
@@ -551,7 +551,7 @@ bool StudentInfoManager::cmdSetFilter() {
|
||||
backSpaceCount = 9;
|
||||
cmd = infoManagerCommand::filterSettings::fromDate;
|
||||
}
|
||||
else if (commandLetter == 't') {
|
||||
else if (commandLetter == 'o') {
|
||||
std::cout << "To date" << std::flush;
|
||||
backSpaceCount = 7;
|
||||
cmd = infoManagerCommand::filterSettings::toDate;
|
||||
@@ -606,7 +606,7 @@ bool StudentInfoManager::cmdSetFilter() {
|
||||
break;
|
||||
|
||||
case infoManagerCommand::filterSettings::toDate:
|
||||
this->displayer.promptForFromDate();
|
||||
this->displayer.promptForToDate();
|
||||
break;
|
||||
|
||||
case infoManagerCommand::filterSettings::courseName:
|
||||
@@ -735,7 +735,7 @@ void StudentInfoManager::displayHelp() {
|
||||
std::cout << resetOutputColor;
|
||||
std::cout << "├─ Record (I)D\n";
|
||||
std::cout << "├─ (F)rom date\n";
|
||||
std::cout << "├─ (T)o date\n";
|
||||
std::cout << "├─ T(o) date\n";
|
||||
std::cout << "├─ (C)ourse name\n";
|
||||
std::cout << "├─ Studen(t) ID\n";
|
||||
std::cout << "├─ Student (N)ame\n";
|
||||
|
||||
Reference in New Issue
Block a user