void QueueDialog::btnMoveBottom_clicked() { QueueItem* current = (QueueItem*) getCurrentList()->selectedItem(); if(current == 0) return; if(current->getPriority() == 0) return; QueueItem* previous = (QueueItem*) current->itemBelow(); if(previous == 0) return; if(previous->getPriority() == 0) return; int p = previous->getPriority(); while(previous != 0 && previous->getPriority() != 0) { p = previous->getPriority(); previous->setPriority(p + 1); previous = (QueueItem*) previous->itemBelow(); } current->setPriority(p); getCurrentList()->sort(); }
void QueueDialog::btnDequeue_clicked() { QueueItem* current = (QueueItem*) getCurrentList()->selectedItem(); if(current == 0) return; if(current->getPriority() == 0) return; current->setPriority(0); getCurrentList()->sort(); }
void QueueDialog::btnMoveUp_clicked() { QueueItem* current = (QueueItem*) getCurrentList()->selectedItem(); if(current == 0) return; if(current->getPriority() == 0) return; QueueItem* previous = (QueueItem*) current->itemAbove(); if(previous == 0) return; else { int tmp = previous->getPriority(); previous->setPriority(current->getPriority()); current->setPriority(tmp); getCurrentList()->sort(); } }
void QueueDialog::enqueue(QueueItem* curr) { QueueItem* current = curr == 0 ? (QueueItem*) getCurrentList()->selectedItem() : curr; if(current == 0) return; if(current->getPriority() != 0) return; QueueItem* item = (QueueItem*) getCurrentList()->firstChild(); if(item == 0) return; while(item != 0) { if(item->getPriority() != 0) item->setPriority(item->getPriority() + 1); item = (QueueItem*) item->itemBelow(); } current->setPriority(1); getCurrentList()->sort(); }