source: src/gui/searchtabcontainer.cpp @ bb6f7d6

qt5
Last change on this file since bb6f7d6 was bb6f7d6, checked in by pavelpa <pavelpa@…>, 13 years ago

search tab - header is hidden in case no conf exists in the DB

  • Property mode set to 100644
File size: 3.6 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    // do not show 'search' header if there are no conferences in the DB
38    if(Conference::getAll().count()==0)
39    {
40        header->hide();
41    }
42
43    connect( header, SIGNAL(searchClicked()), SLOT(searchButtonClicked()));
44    connect( searchAgainButton, SIGNAL(clicked()), SLOT(searchAgainClicked()));
45}
46
47SearchTabContainer::~SearchTabContainer()
48{
49}
50
51void SearchTabContainer::searchButtonClicked()
52{
53    QHash<QString,QString> columns;
54
55    SearchHead *searchHeader = static_cast<SearchHead*>(header);
56    if( searchHeader->searchTitle->isChecked() )
57        columns.insertMulti("EVENT", "title");
58    if( searchHeader->searchAbstract->isChecked() )
59        columns.insertMulti("EVENT", "abstract");
60    if( searchHeader->searchTag->isChecked() )
61        columns.insertMulti("EVENT", "tag");
62    if( searchHeader->searchSpeaker->isChecked() )
63        columns["PERSON"] = "name";
64    if( searchHeader->searchRoom->isChecked() )
65        columns["ROOM"] = "name";
66
67    QString keyword = searchHeader->searchEdit->text().replace( QString("%"), QString("\\%") );
68    qDebug() << "\nKeyword to search: " << keyword;
69
70    int confId = Conference::activeConference();
71    SqlEngine::searchEvent( confId, columns, keyword );
72
73    QDate startDate = Conference::getById(confId).start();
74    QDate endDate = Conference::getById(confId).end();
75    dayNavigator->setDates(startDate, endDate);
76    updateTreeView( Conference::getById(confId).start() );
77}
78
79void SearchTabContainer::searchAgainClicked()
80{
81    qDebug() << "SearchTab::searchAgainClicked()";
82    header->show();
83    searchAgainButton->hide();
84    dayNavigator->hide();
85    treeView->hide();
86}
87
88void SearchTabContainer::loadEvents( const QDate &aDate, const int aConferenceId )
89{
90    int eventsCount = static_cast<EventModel*>(treeView->model())->loadSearchResultEvents( aDate, aConferenceId );
91    if( eventsCount ||
92            //TODO: this is not good test
93            dayNavigator->getCurrentDate() != Conference::getById( aConferenceId ).start()
94            ){
95        searchAgainButton->show();
96        dayNavigator->show();
97        treeView->show();
98        header->hide();
99    }
100    else{
101        treeView->hide();
102        searchAgainButton->hide();
103        dayNavigator->hide();
104        header->show();
105    }
106}
Note: See TracBrowser for help on using the repository browser.