gelldur / Kino-Time-Tracker

Kino Time Tracker
1 stars 0 forks source link

Autopodpowaidanie tasków #30

Closed gelldur closed 11 years ago

gelldur commented 11 years ago

Trzeba wykorzystać taska którego robił Maciek: Issue #16 . Teraz trzeba się zastanowić jak cachować dane z bazy danych aby było możliwe to autopodpowiadanie. Musi być to zrobione optymalnie :D

maciej-nowak commented 11 years ago

Zgubilem sie troche w kodzie. Czy napisales ta metoda, ktora wyciaga okreslona ilosc taskow z bazy? Jesli tak, to jak sie ona zwie?

gelldur commented 11 years ago

Zobacz do taska jak możesz jest tam napisane jaka metoda i przykład w kodzie. Issue #22

maciej-nowak commented 11 years ago

Hmm mialem to w glowie, ale jak zobaczylem to, to mi z to moje z glowy wylecialo. Musze sobie obczaic o co kaman z tym wektorem. Bo widze ze wlasnie zwraca ta metoda, wektor. I teraz np tworze sobie metode, a w niej podaje sobie getMostPopular(20), bierze mi tych 20 tasow najbardziej popularnych, zwraca mi je jako wektor. Ok, mam wektor 20 taskow, teraz ten wektor mam sobie zamienic na QStringList i to zwrocic, zgadza sie? To wtedy zostanei mi kwestia przerobienia tego na QStringList.

gelldur commented 11 years ago

tak dokładnie tak. Najprościej przeiteruj się po elementach wektora i wrzuć co Ci potrzeba do listy. http://www.cplusplus.com/reference/vector/vector/

maciej-nowak commented 11 years ago

hmm, wyskakuje mi jeden error w mojej metodzie, probuje dojsc co jest nie tak, ale niczego nie odkrylem. Moglbys rzucic na to okiem? w linijce: tasksList->operator<<(&str); wyskakuje error: no matching function for call to 'QStringList::operator<<(QString*)'

QStringList MainWindow::setAutoCompleter() { QStringList *tasksList; TaskManager autoCompleter; vector<Task> *pSetTasks = autoCompleter.getMostPopular(20);

for(int j=0; j<pSetTasks->size(); ++j)
{
    Task *tasks = pSetTasks->at(j);
    QString str = tasks->getTitle();
    tasksList->operator<<(&str);
}

return tasksList;

}

gelldur commented 11 years ago

No pisze jak nic ,że nie ma metody na dodanie wskaźnika na QStringa musisz zrobić tasksList->operator<<(str);

maciej-nowak commented 11 years ago

Zakomentowalem podpiecie pod myList = setAutoCompleter(), bo wywala program, nie wiem dlaczego. A jak z ta metoda? Nadaje sie?

gelldur commented 11 years ago

Metoda nadaje się ;) tylko musisz posprzątać po sobie pSetTasks trzeba delete zrobić. No i aby działało to ;)

maciej-nowak commented 11 years ago

Delete zrobiony, ale program nadal wywala po kompilacji z powodu tej linijki QStringList *myList = setAutoCompleter();

2012/12/22 Zecken notifications@github.com

Metoda nadaje siê ;) tylko musisz posprz±taæ po sobie pSetTasks trzeba delete zrobiæ. No i aby dzia³a³o to ;)

Reply to this email directly or view it on GitHubhttps://github.com/gelldur/Kino-Time-Tracker/issues/30#issuecomment-11639797.

Maciej Nowak

gelldur commented 11 years ago

Też nie zajrzałeś do metody której używasz ,że może zwrócić ci NULL więc nic dziwnego. W sumie to wina dokumentacji której narazie nie robimy. Niestety to was nie zwalnia z tego :). Zpulluj sobie kod.

Na przyszłość polecam spr co gdzie nie idzie najprościej wstawiając sobie jakieś qDebug albo coś w tym stylu i tak powoli dochodzić gdzie się wywala.

maciej-nowak commented 11 years ago

o szał, it works! :dancer: jesli okej, to do zamkniecia ;)

gelldur commented 11 years ago

Nom na przyszłość zaopatrz się w jakiś edytor bazy sqlite abyś mógł ręcznie dodawać sobie wpisy w bazie np do testowania albo coś.