source: src/gui/searchtabcontainer.cpp @ b667db5

qt5
Last change on this file since b667db5 was b667db5, checked in by timkoma <timkoma@…>, 12 years ago

search fix

  • Property mode set to 100644
File size: 3.5 KB
Line 
1
2#include "searchtabcontainer.h"
3#include "searchhead.h"
4
5
6SearchTabContainer::SearchTabContainer(QWidget *aParent) : TabContainer( aParent )
7{
8    header = new SearchHead(this);
9    header->setObjectName(QString::fromUtf8("header"));
10    QSizePolicy sizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Expanding);
11    sizePolicy.setHorizontalStretch(0);
12    sizePolicy.setVerticalStretch(0);
13    //sizePolicy.setHeightForWidth(TabContainer::sizePolicy().hasHeightForWidth());
14    sizePolicy.setHeightForWidth(header->sizePolicy().hasHeightForWidth());
15    header->setSizePolicy(sizePolicy);
16    header->setMinimumSize(QSize(10, 10));
17
18    verticalLayout->insertWidget(0,header);
19
20    header->show();
21
22    searchAgainButton = new QToolButton(this);
23    searchAgainButton->setObjectName(QString::fromUtf8("button"));
24    QIcon icon;
25    icon.addPixmap(QPixmap(QString::fromUtf8(":/icons/search.png")), QIcon::Normal, QIcon::Off);
26    searchAgainButton->setIcon(icon);
27    QSizePolicy sizePolicy1(QSizePolicy::Minimum, QSizePolicy::Minimum);
28    sizePolicy1.setHorizontalStretch(0);
29    sizePolicy1.setVerticalStretch(0);
30    sizePolicy1.setHeightForWidth(searchAgainButton->sizePolicy().hasHeightForWidth());
31    searchAgainButton->setSizePolicy(sizePolicy1);
32
33    verticalLayout_2->insertWidget(0,searchAgainButton);
34
35    searchAgainButton->hide();
36    treeView->hide();
37
38    connect( header, SIGNAL(searchClicked()), SLOT(searchButtonClicked()));
39    connect( searchAgainButton, SIGNAL(clicked()), SLOT(searchAgainClicked()));
40}
41
42SearchTabContainer::~SearchTabContainer()
43{
44}
45
46void SearchTabContainer::searchButtonClicked()
47{
48    qDebug() << "SearchTab::searchButtonClicked()";
49
50    QHash<QString,QString> columns;
51
52    SearchHead *searchHeader = static_cast<SearchHead*>(header);
53    if( searchHeader->searchTitle->isChecked() )
54        columns.insertMulti("EVENT", "title");
55    if( searchHeader->searchAbstract->isChecked() )
56        columns.insertMulti("EVENT", "abstract");
57    if( searchHeader->searchTag->isChecked() )
58        columns.insertMulti("EVENT", "tag");
59    if( searchHeader->searchSpeaker->isChecked() )
60        columns["PERSON"] = "name";
61    if( searchHeader->searchRoom->isChecked() )
62        columns["ROOM"] = "name";
63
64    QString keyword = searchHeader->searchEdit->text().replace( QString("%"), QString("\\%") );
65    qDebug() << "\nKeyword to search: " << keyword;
66
67    int confId = Conference::activeConference();
68    SqlEngine::searchEvent( confId, columns, keyword );
69
70    QDate startDate = Conference::getById(confId).start();
71    QDate endDate = Conference::getById(confId).end();
72    dayNavigator->setDates(startDate, endDate);
73    updateTreeView( Conference::getById(confId).start() );
74}
75
76void SearchTabContainer::searchAgainClicked()
77{
78    qDebug() << "SearchTab::searchAgainClicked()";
79    header->show();
80    searchAgainButton->hide();
81    dayNavigator->hide();
82    treeView->hide();
83}
84
85void SearchTabContainer::loadEvents( const QDate &aDate, const int aConferenceId )
86{
87    int eventsCount = static_cast<EventModel*>(treeView->model())->loadSearchResultEvents( aDate, aConferenceId );
88    if( eventsCount ||
89            //TODO: this is not good test
90            dayNavigator->getCurrentDate() != Conference::getById( aConferenceId ).start()
91            ){
92        searchAgainButton->show();
93        dayNavigator->show();
94        treeView->show();
95        header->hide();
96    }
97    else{
98        treeView->hide();
99        searchAgainButton->hide();
100        dayNavigator->hide();
101        header->show();
102    }
103}
Note: See TracBrowser for help on using the repository browser.