// schedcartlist.cpp // // A class for handling carts to be used in scheduler // // Stefan Gabriel <stg@st-gabriel.de> // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as // published by the Free Software Foundation. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public // License along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // #include <schedcartlist.h> SchedCartList::SchedCartList(int listsize) { cartnum=new unsigned[listsize]; cartlen=new int[listsize]; stackid=new int[listsize]; artist=new QString[listsize]; sched_codes=new QString[listsize]; itemcounter=0; } SchedCartList::~SchedCartList() { delete []cartnum; delete []cartlen; delete []stackid; delete []artist; delete []sched_codes; } void SchedCartList::insertItem(unsigned cartnumber,int cartlength,int stack_id,QString stack_artist,QString stack_schedcodes) { cartnum[itemcounter]=cartnumber; cartlen[itemcounter]=cartlength; stackid[itemcounter]=stack_id; artist[itemcounter]=stack_artist.lower().replace(" ",""); sched_codes[itemcounter]=stack_schedcodes; itemcounter++; } void SchedCartList::removeItem(int itemnumber) { for(int i=itemnumber;i<(itemcounter-1);i++) { cartnum[i]=cartnum[i+1]; cartlen[i]=cartlen[i+1]; stackid[i]=stackid[i+1]; artist[i]=artist[i+1]; sched_codes[i]=sched_codes[i+1]; } itemcounter--; } bool SchedCartList::removeIfCode(int itemnumber,QString test_code) { QString test = test_code; test+=" "; test=test.left(11); if (sched_codes[itemnumber].find(test)!=-1) { for(int i=itemnumber;i<(itemcounter-1);i++) { cartnum[i]=cartnum[i+1]; cartlen[i]=cartlen[i+1]; stackid[i]=stackid[i+1]; artist[i]=artist[i+1]; sched_codes[i]=sched_codes[i+1]; } itemcounter--; return true; } return false; } bool SchedCartList::itemHasCode(int itemnumber,QString test_code) { QString test=test_code; test+=" "; test=test.left(11); if (sched_codes[itemnumber].find(test)!=-1) return true; else return false; } void SchedCartList::save(void) { savecartnum=new unsigned[itemcounter]; savecartlen=new int[itemcounter]; savestackid=new int[itemcounter]; saveartist=new QString[itemcounter]; save_sched_codes=new QString[itemcounter]; saveitemcounter=itemcounter; for(int i=0;i<saveitemcounter;i++) { savecartnum[i]=cartnum[i]; savecartlen[i]=cartlen[i]; savestackid[i]=stackid[i]; saveartist[i]=artist[i]; save_sched_codes[i]=sched_codes[i]; } } void SchedCartList::restore(void) { if(itemcounter==0) { for(int i=0;i<saveitemcounter;i++) { cartnum[i]=savecartnum[i]; cartlen[i]=savecartlen[i]; stackid[i]=savestackid[i]; artist[i]=saveartist[i]; sched_codes[i]=save_sched_codes[i]; } itemcounter=saveitemcounter; } delete []savecartnum; delete []savecartlen; delete []savestackid; delete []saveartist; delete []save_sched_codes; } unsigned SchedCartList::getItemCartnumber(int itemnumber) { return cartnum[itemnumber]; } int SchedCartList::getItemStackid(int itemnumber) { return stackid[itemnumber]; } QString SchedCartList::getItemArtist(int itemnumber) { return artist[itemnumber]; } QString SchedCartList::getItemSchedCodes(int itemnumber) { return sched_codes[itemnumber]; } int SchedCartList::getItemCartlength(int itemnumber) { return cartlen[itemnumber]; } int SchedCartList::getNumberOfItems(void) { return itemcounter; }