StocksDialog::StocksDialog (QString p, DbPlugin *d, DBIndex *i) : Q3TabDialog (0, "StocksDialog", TRUE) { helpFile = p; db = d; index = i; reloadFlag = FALSE; currentDate = QDateTime::currentDateTime(); setCaption(tr("Qtstalker: Edit Stock")); QString s; d->getSymbol(s); QFileInfo fi(s); symbol = fi.fileName(); createDetailsPage(); createDataPage(); createFundamentalsPage(); createSplitPage(); setOkButton(tr("&OK")); setCancelButton(tr("&Cancel")); connect(this, SIGNAL(applyButtonPressed()), this, SLOT(saveChart())); setHelpButton(); QObject::connect(this, SIGNAL(helpButtonPressed()), this, SLOT(help())); RcFile rcfile; QSize sz; rcfile.loadSize(RcFile::EditStockWindowSize, sz); resize(sz); }
int DirPage::insertRecords(RecordSet* rs, int s){ //return number of records inserted. int start = 0; long dpNum;//DataPage Num. int recLen; DataPage* dp; int sid,i = 0; int n = rs->getNumOfRecords(); vector<Record*> rec = rs->getAllRecords(); int *attrType = rs->getAttrType(); char *recStr; for(i=s;i<n;i++){ recLen = rec[i]->getSize(); dpNum = findNextPartialPage(start,recLen);//find the first partial page if(dpNum == -1){ //no sufficient page. //try to create new DP and add it,vector<DirEntry*> dirEntries to DE. if(DEcount < MAX_DE ){ //create new DataPage. dp = createDataPage(); start = DEcount - 1; }else{ //further insertion not possible error("@DirPage Insertion : DirPage Full."); //return the number of records inserted. writeToPage(); return i - s; } }else{ dp = new DataPage(dirEntries[dpNum]->getPageID()); start = dpNum; } recStr = rec[i]->toRecordString(attrType); sid = dp->insertRecord(recStr,rec[i]->getSize()); delete[] recStr; if(sid!=-1){ //successful insertion //update dirPage entries. lg("@DirPage Insertion: Record "<<i<<" - inserted in DataPage "<<dp->getPageid()); dirEntries[start]->setTFS(dp->getTotalFreeSize()); dirEntries[start]->writeDE(p,start); start = 0;//check from first again for next record. updateMaximumSpaceParam(); }else{ error("@DirPage Insertion : DataPage "<<dp->getPageid()<<" is full. Retrying next Page in DE"); //insertion error //retry the insertion here again to select a diff DP. i--;//so the same record will be referenced again start++;//search from next page! } if(dp!=NULL) delete dp; } writeToPage(); return i - s; }
FuturesDialog::FuturesDialog (QString p, DbPlugin *d, DBIndex *i) : Q3TabDialog (0, "FuturesDialog", TRUE) { helpFile = p; db = d; index = i; reloadFlag = FALSE; currentDate = QDateTime::currentDateTime(); setCaption(tr("Qtstalker: Edit Futures")); QString s; d->getSymbol(s); QFileInfo fi(s); symbol = fi.fileName(); createDetailsPage(); createDataPage(); setOkButton(tr("&OK")); setCancelButton(tr("&Cancel")); connect(this, SIGNAL(applyButtonPressed()), this, SLOT(saveChart())); setHelpButton(); QObject::connect(this, SIGNAL(helpButtonPressed()), this, SLOT(help())); }