Index: windows/QueueFrame.cpp =================================================================== RCS file: /cvsroot/dcplusplus/dcplusplus/windows/QueueFrame.cpp,v retrieving revision 1.56 diff -u -r1.56 QueueFrame.cpp --- windows/QueueFrame.cpp 26 Jul 2004 20:01:22 -0000 1.56 +++ windows/QueueFrame.cpp 1 Aug 2004 14:49:43 -0000 @@ -1113,6 +1113,33 @@ } } +/* + * @param inc True = increase, False = decrease + */ +void QueueFrame::changePriority(bool inc){ + int i = -1; + while( (i = ctrlQueue.GetNextItem(i, LVNI_SELECTED)) != -1){ + QueueItem::Priority p = ctrlQueue.getItemData(i)->getPriority(); + + if ((inc && p == QueueItem::HIGHEST) || (!inc && p == QueueItem::PAUSED)){ + // Trying to go higher than HIGHEST or lower than PAUSED + // so do nothing + return; + } + + switch(p){ + case QueueItem::HIGHEST: p = QueueItem::HIGH; break; + case QueueItem::HIGH: p = inc ? QueueItem::HIGHEST : QueueItem::NORMAL; break; + case QueueItem::NORMAL: p = inc ? QueueItem::HIGH : QueueItem::LOW; break; + case QueueItem::LOW: p = inc ? QueueItem::NORMAL : QueueItem::LOWEST; break; + case QueueItem::LOWEST: p = inc ? QueueItem::LOW : QueueItem::PAUSED; break; + case QueueItem::PAUSED: p = QueueItem::LOWEST; break; + } + + QueueManager::getInstance()->setPriority(ctrlQueue.getItemData(i)->getTarget(), p); + } +} + void QueueFrame::setPriority(HTREEITEM ht, const QueueItem::Priority& p) { if(ht == NULL) return; Index: windows/QueueFrame.h =================================================================== RCS file: /cvsroot/dcplusplus/dcplusplus/windows/QueueFrame.h,v retrieving revision 1.40 diff -u -r1.40 QueueFrame.h --- windows/QueueFrame.h 26 Jul 2004 20:01:22 -0000 1.40 +++ windows/QueueFrame.h 1 Aug 2004 14:49:44 -0000 @@ -108,6 +108,7 @@ void UpdateLayout(BOOL bResizeBars = TRUE); void removeDir(HTREEITEM ht); void setPriority(HTREEITEM ht, const QueueItem::Priority& p); + void changePriority(bool inc); LRESULT onItemChangedQueue(int /*idCtrl*/, LPNMHDR pnmh, BOOL& /*bHandled*/) { NMLISTVIEW* lv = (NMLISTVIEW*)pnmh; @@ -139,6 +140,12 @@ NMLVKEYDOWN* kd = (NMLVKEYDOWN*) pnmh; if(kd->wVKey == VK_DELETE) { removeSelected(); + } else if(kd->wVKey == VK_ADD){ + // Increase Item priority + changePriority(true); + } else if(kd->wVKey == VK_SUBTRACT){ + // Decrease item priority + changePriority(false); } else if(kd->wVKey == VK_TAB) { onTab(); }