SearchQueryView.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include "Qt.h"
00024 #include "SearchQueryView.h"
00025
00026 using UIs::Searching:: SearchQueryView;
00027
00028 void SearchQueryView::LoadXMLSchemas ()
00029 {
00030 QDir xmlDirectory ("./xml/");
00031 QStringList xmlFileFilter ("*.xsd");
00032
00033 QStringList xmls = xmlDirectory.entryList (xmlFileFilter, QDir::Files,
00034 QDir::Name);
00035
00036 for (int xmlIdx = 0; xmlIdx < xmls.size (); xmlIdx++) {
00037 AdvancedSearchWidget *advSearchWidget = new AdvancedSearchWidget (
00038 xmlDirectory.absoluteFilePath (xmls[xmlIdx]));
00039
00040 advSearchWidget->setVisible (false);
00041 if (advSearchWidget->title () != "") {
00042 addWidget (advSearchWidget);
00043 typeComboBox->addItem (advSearchWidget->title (),
00044 qVariantFromValue < QWidget * > (advSearchWidget));
00045 } else {
00046 delete advSearchWidget;
00047 }
00048 }
00049 }
00050
00051 SearchQueryView::SearchQueryView (QObject *)
00052 : searchText (0), searchButton (0), stopSearchButton (0), buttonLayout (0),
00053 typeComboBox (0), advancedButton(0), advancedSearchWidget (0)
00054 {
00055 QGroupBox *simpleSearchGroupBox = new QGroupBox ("Simple");
00056 QVBoxLayout *groupLayout = new QVBoxLayout (simpleSearchGroupBox);
00057
00058 searchButton = new QPushButton ("Start Search");
00059 searchButton->setIcon (QIcon ("Icons/resume.png"));
00060 searchButton->setAutoDefault (true);
00061 searchButton->setDefault (true);
00062 searchButton->setEnabled (true);
00063 stopSearchButton = new QPushButton ("Stop Search");
00064 stopSearchButton->setIcon (QIcon ("Icons/pause.png"));
00065 stopSearchButton->setEnabled (false);
00066
00067
00068 QObject::connect (searchButton, SIGNAL (pressed ()), this,
00069 SLOT (startSearchButtonPressed (void)));
00070 QObject::connect (stopSearchButton, SIGNAL (pressed ()), this,
00071 SLOT (stopSearchButtonPressed (void)));
00072
00073 buttonLayout = new QHBoxLayout ();
00074 buttonLayout->addStretch (1);
00075 buttonLayout->addWidget (searchButton);
00076 buttonLayout->addWidget (stopSearchButton);
00077 buttonLayout->addStretch (1);
00078
00079 searchText = new QLineEdit (0);
00080 QObject::connect (searchText, SIGNAL (returnPressed ()), searchButton,
00081 SLOT (animateClick ()));
00082
00083 typeComboBox = new QComboBox ();
00084 advancedButton = new QPushButton (tr("Advanced..."));
00085 advancedButton->setCheckable (true);
00086 advancedButton->setDisabled (true);
00087
00088 QHBoxLayout *typeLayout = new QHBoxLayout ();
00089 typeLayout->addWidget (typeComboBox);
00090 typeLayout->addWidget (advancedButton);
00091
00092 groupLayout->addWidget (searchText);
00093 groupLayout->addLayout (typeLayout);
00094 groupLayout->addLayout (buttonLayout);
00095
00096
00097 addWidget (simpleSearchGroupBox);
00098
00099 typeComboBox->addItem (tr("Any type"), QVariant ());
00100
00101 QObject::connect (typeComboBox, SIGNAL (currentIndexChanged (int)), this,
00102 SLOT (typeIndexChanged (int)));
00103
00104 advancedSearchWidget = 0;
00105 LoadXMLSchemas ();
00106 addItem (new QSpacerItem (10, 100, QSizePolicy::Minimum,
00107 QSizePolicy::Expanding));
00108 }
00109
00110 SearchQueryView::~SearchQueryView ()
00111 {
00112 advancedSearchWidget = 0;
00113 delete searchButton;
00114 delete stopSearchButton;
00115 delete buttonLayout;
00116 }
00117
00118 const QString SearchQueryView::query () const
00119 {
00120 return searchText->text ();
00121 }
00122
00123 void SearchQueryView::startSearchButtonPressed ()
00124 {
00125 if (query () == "") {
00126 QMessageBox::warning (parentWidget (), tr ("Warning!"),
00127 tr ("Query string can't be empty!"));
00128 } else {
00129 searchButton->setEnabled (false);
00130 stopSearchButton->setEnabled (true);
00131 searchText->setEnabled (false);
00132
00133 if (advancedSearchWidget != 0)
00134 advancedSearchWidget->setEnabled (false);
00135
00136 emit startSearch ();
00137 }
00138 }
00139
00140 void SearchQueryView::stopSearchButtonPressed ()
00141 {
00142 searchButton->setEnabled (true);
00143 stopSearchButton->setEnabled (false);
00144 searchText->setEnabled (true);
00145
00146 if (advancedSearchWidget != 0)
00147 advancedSearchWidget->setEnabled (true);
00148
00149 emit stopSearch ();
00150 }
00151
00152 void SearchQueryView::typeIndexChanged (int index)
00153 {
00154 if (advancedSearchWidget != 0) {
00155 QObject::disconnect (advancedButton, SIGNAL (toggled (bool)),
00156 advancedSearchWidget, SLOT (setVisible (bool)));
00157 advancedSearchWidget->setVisible (false);
00158 }
00159
00160 QVariant itemdata = typeComboBox->itemData (index);
00161 if (!itemdata.isNull ()) {
00162 advancedSearchWidget = itemdata.value < QWidget * > ();
00163 QObject::connect (advancedButton, SIGNAL (toggled (bool)),
00164 advancedSearchWidget, SLOT (setVisible (bool)));
00165 advancedButton->setDisabled (false);
00166 if (advancedButton->isChecked ())
00167 advancedSearchWidget->setVisible (true);
00168 } else {
00169 advancedSearchWidget = 0;
00170 advancedButton->setDisabled (true);
00171 }
00172 }
00173
00174 void SearchQueryView::setAuthorMetaInfo (QString)
00175 {
00176
00177 }
00178
00179 void SearchQueryView::setAlbumMetaInfo (QString)
00180 {
00181
00182 }
00183
00184 void SearchQueryView::setGenreMetaInfo (QString)
00185 {
00186
00187 }
00188
00189 void SearchQueryView::setBitrateMetaInfo (QString)
00190 {
00191
00192 }
00193
00194 void SearchQueryView::setDurationMetaInfo (QString)
00195 {
00196
00197 }
00198
00199 void SearchQueryView::setWidthMetaInfo (QString)
00200 {
00201
00202 }
00203
00204 void SearchQueryView::setHeightMetaInfo (QString)
00205 {
00206
00207 }