LayerSearchWizardPage.cpp
Go to the documentation of this file.
1 /* Copyright (C) 2008 National Institute For Space Research (INPE) - Brazil.
2 
3  This file is part of the TerraLib - a Framework for building GIS enabled applications.
4 
5  TerraLib is free software: you can redistribute it and/or modify
6  it under the terms of the GNU Lesser General Public License as published by
7  the Free Software Foundation, either version 3 of the License,
8  or (at your option) any later version.
9 
10  TerraLib is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU Lesser General Public License
16  along with TerraLib. See COPYING. If not, write to
17  TerraLib Team at <terralib-team@terralib.org>.
18  */
19 
20 /*!
21  \file terralib/qt/widgets/layer/search/LayerSearchWizardPage.cpp
22 
23  \brief This file defines the LayerSearchWizardPage class.
24 */
25 
26 // TerraLib
27 #include "ui_LayerSearchWidgetForm.h"
28 #include "LayerSearchWidget.h"
29 #include "LayerSearchWizardPage.h"
30 
31 // Qt
32 #include <QGridLayout>
33 
35  : QWizardPage(parent), m_skipbutton(false)
36 {
37  m_widget.reset(new LayerSearchWidget(this));
38 
39  QGridLayout* layout = new QGridLayout(this);
40 
41  layout->addWidget(m_widget.get());
42 
43 //connect
44  connect(m_widget->getForm()->m_treeWidget, SIGNAL(itemSelectionChanged()), this, SLOT(onItemSelectionChanged()));
45 
46 //configure page
47  this->setTitle(tr("Layer Search"));
48  this->setSubTitle(tr("Allows selection of layers using filters for selection."));
49 }
50 
52 
54 {
55  if(m_widget->getForm()->m_treeWidget->selectedItems().empty())
56  return false;
57 
58  return true;
59 }
60 
62 {
63  return m_widget.get();
64 }
65 
67 {
68  emit completeChanged();
69 }
70 
72 {
73  QWizardPage::setVisible(visible);
74 
75  if (visible && m_skipbutton) {
76  QList<QWizard::WizardButton> layout;
77  layout << QWizard::Stretch << QWizard::BackButton << QWizard::NextButton << QWizard::CustomButton1 << QWizard::FinishButton << QWizard::CancelButton;
78  wizard()->setButtonLayout(layout);
79  setButtonText(QWizard::CustomButton1, tr("&Skip"));
80 
81  connect(wizard(), &QWizard::customButtonClicked, this, &LayerSearchWizardPage::skipReference);
82 
83  wizard()->setOption(QWizard::HaveCustomButton1, true);
84  }
85  else {
86  QList<QWizard::WizardButton> layout;
87  layout << QWizard::Stretch << QWizard::BackButton << QWizard::NextButton << QWizard::FinishButton << QWizard::CancelButton;
88  wizard()->setButtonLayout(layout);
89  wizard()->setOption(QWizard::HaveCustomButton1, false);
90  disconnect(wizard(), &QWizard::customButtonClicked,
92  }
93 }
94 
95 
97 {
98  QList<QTreeWidgetItem*> itens = m_widget->getForm()->m_treeWidget->selectedItems();
99  for (int i = 0; i < itens.size(); ++i)
100  itens[i]->setSelected(false);
101 
102  wizard()->next();
103 }
LayerSearchWidget * getSearchWidget() const
This file defines the LayerSearchWizardPage class.
This file defines the LayerSearchWidget class.
std::unique_ptr< LayerSearchWidget > m_widget
A widget used to search layers over list of layers.