#include <QMessageBox>
#include <QTimer>
+#include <sqlengine.h>
#include <appsettings.h>
#include <conference.h>
setupUi(this);
searchAgainButton->hide();
+ searchHead->hide();
treeView->setHeaderHidden(true);
treeView->setRootIsDecorated(false);
connect(treeView, SIGNAL(requestForMap(const QModelIndex &)), SLOT(displayMap(const QModelIndex &)));
connect(treeView, SIGNAL(requestForWarning(const QModelIndex &)), SLOT(displayWarning(const QModelIndex &)));
+ connect(searchButton, SIGNAL(clicked()), SLOT(searchClicked()));
+ connect(searchAgainButton, SIGNAL(clicked()), SLOT(searchAgainClicked()));
+
if(!Conference::getAll().count()) // no conference(s) in the DB
{
dayNavigator->hide(); // hide DayNavigatorWidget
void TabContainer::setType(TabContainer::Type aType)
{
mType = aType;
+
if(aType == EContainerTypeNow)
{
QTimer *timer = new QTimer( this );
connect( timer, SIGNAL(timeout()), SLOT(timerUpdateTreeView()) );
timer->start( 30000); // 30 seconds timer
}
+ if(aType == EContainerTypeSearch)
+ {
+ searchHead->show();
+ }
}
void TabContainer::updateTreeView(const QDate &aDate)
treeView->setAllExpanded(true);
}
break;
+ case EContainerTypeSearch:
+ {
+ treeView->reset();
+ int eventsCount = static_cast<EventModel*>(treeView->model())->loadSearchResultEvents(aDate,AppSettings::confId());
+ if( eventsCount ||
+ dayNavigator->getCurrentDate() != Conference::getById(AppSettings::confId()).start() ){
+ searchAgainButton->show();
+ dayNavigator->show();
+ treeView->show();
+ searchHead->hide();
+ }
+ else{
+ treeView->hide();
+ searchAgainButton->hide();
+ dayNavigator->hide();
+ searchHead->show();
+ }
+ }
+ break;
case EContainerTypeNone:
default:
{
}
}
+void TabContainer::searchClicked()
+{
+ if(mType == EContainerTypeSearch)
+ {
+ QHash<QString,QString> columns;
+
+ if( searchTitle->isChecked() )
+ columns.insertMulti("EVENT", "title");
+ if( searchAbstract->isChecked() )
+ columns.insertMulti("EVENT", "abstract");
+ if( searchTag->isChecked() )
+ columns.insertMulti("EVENT", "tag");
+ if( searchSpeaker->isChecked() )
+ columns["PERSON"] = "name";
+ if( searchRoom->isChecked() )
+ columns["ROOM"] = "name";
+
+ QString keyword = searchEdit->text().replace( QString("%"), QString("\\%") );
+ qDebug() << "\nKeyword to search: " << keyword;
+ SqlEngine::searchEvent( AppSettings::confId(), columns, keyword );
+
+ QDate startDate = Conference::getById(AppSettings::confId()).start();
+ QDate endDate = Conference::getById(AppSettings::confId()).end();
+ dayNavigator->setDates(startDate, endDate);
+ updateTreeView( Conference::getById(AppSettings::confId()).start() );
+ }
+}
+
+void TabContainer::searchAgainClicked()
+{
+ if(mType == EContainerTypeSearch)
+ {
+ searchHead->show();
+ searchAgainButton->hide();
+ dayNavigator->hide();
+ treeView->hide();
+ }
+}
+