TL4LayerSelectionWizardPage.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/plugins/terralib4/TL4LayerSelectionWizardPage.cpp
22 
23  \brief A wizard page for selecting the TerraLib 4.x.
24 */
25 
26 // TerraLib
27 #include "ui_TL4LayerSelectionWizardPageForm.h"
29 
30 // Qt
31 #include<QIcon>
32 #include<QListWidgetItem>
33 
34 QIcon getImage(int type)
35 {
36  switch(type)
37  {
38  case 0:
39  return QIcon::fromTheme("tl4-layer").pixmap(16,16);
40 
41  case 1:
42  return QIcon::fromTheme("tl4-theme").pixmap(16,16);
43 
44  case 2:
45  return QIcon::fromTheme("tl4-table").pixmap(16,16);
46 
47  case 3:
48  return QIcon::fromTheme("tl4-raster").pixmap(16,16);
49 
50  default:
51  return QIcon::fromTheme("tl4-layer").pixmap(16,16);
52  }
53 }
54 
56  : QWizardPage(parent),
57  m_ui(new Ui::TL4LayerSelectionWizardPageForm)
58 {
59 // setup controls
60  m_ui->setupUi(this);
61 
62  connect(m_ui->m_selectAllPushButton, SIGNAL(clicked()), this, SLOT(onSelectAllPushButtonClicked()));
63  connect(m_ui->m_deselectAllPushButton, SIGNAL(clicked()), this, SLOT(onDeselectAllPushButtonClicked()));
64 
65  // add icons
66  m_ui->m_imgVectorLabel->setPixmap(QIcon::fromTheme("tl4-layer").pixmap(16,16));
67  m_ui->m_imgTabularLabel->setPixmap(QIcon::fromTheme("tl4-table").pixmap(16,16));
68  m_ui->m_imgRasterLabel->setPixmap(QIcon::fromTheme("tl4-raster").pixmap(16,16));
69 }
70 
72 {
73 }
74 
76  std::vector<std::string> tables,
77  std::vector<std::string> rasters,
78  std::vector<std::pair<std::string, std::string> > rasterFiles)
79 
80 {
81  m_ui->m_layersListWidget->clear();
82 
83  setTL4Layers(layers);
84  setTL4Tables(tables);
85  setTL4Rasters(rasters);
86  setTL4RasterFiles(rasterFiles);
87 }
88 
90 {
91  for(std::size_t i = 0; i < layers.size(); ++i)
92  {
93  QListWidgetItem* item = new QListWidgetItem(getImage(LAYER), QString::fromUtf8(layers[i].c_str()), m_ui->m_layersListWidget, LAYER);
94  item->setCheckState(Qt::Checked);
95  m_ui->m_layersListWidget->addItem(item);
96  }
97 }
98 
99 void te::qt::plugins::terralib4::TL4LayerSelectionWizardPage::setTL4RasterFiles(std::vector<std::pair<std::string, std::string> > rasterFiles)
100 {
101  for (std::size_t i = 0; i < rasterFiles.size(); ++i)
102  {
103  QListWidgetItem* item = new QListWidgetItem(getImage(RASTER), QString::fromUtf8(rasterFiles[i].first.c_str()) + " (" + tr("Not supported") + "!)", m_ui->m_layersListWidget, RASTER);
104  item->setCheckState(Qt::Unchecked);
105  item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
106  item->setToolTip(QString::fromUtf8(rasterFiles[i].second.c_str()));
107  m_ui->m_layersListWidget->addItem(item);
108  }
109 }
110 
112 {
113  for(std::size_t i = 0; i < tables.size(); ++i)
114  {
115  QListWidgetItem* item = new QListWidgetItem(getImage(TABLE), QString::fromUtf8(tables[i].c_str()), m_ui->m_layersListWidget, TABLE);
116  item->setCheckState(Qt::Checked);
117  m_ui->m_layersListWidget->addItem(item);
118  }
119 }
120 
122 {
123  for(std::size_t i = 0; i < rasters.size(); ++i)
124  {
125  QListWidgetItem* item = new QListWidgetItem(getImage(RASTER), QString::fromUtf8(rasters[i].c_str()), m_ui->m_layersListWidget, RASTER);
126  item->setCheckState(Qt::Checked);
127  m_ui->m_layersListWidget->addItem(item);
128  }
129 }
130 
132 {
133  std::vector<std::string> checked;
134  for(int i = 0; i < m_ui->m_layersListWidget->count(); ++i)
135  {
136  if(m_ui->m_layersListWidget->item(i)->checkState() == Qt::Checked)
137  checked.push_back(m_ui->m_layersListWidget->item(i)->text().toUtf8().data());
138  }
139 
140  return checked;
141 }
142 
144 {
145  for(int i = 0; i < m_ui->m_layersListWidget->count(); ++i)
146  {
147  if(m_ui->m_layersListWidget->item(i)->checkState() == Qt::Checked)
148  return true;
149  }
150 
151  return false;
152 }
153 
155 {
156  for(int i = 0; i < m_ui->m_layersListWidget->count(); ++i)
157  {
158  Qt::CheckState state = m_ui->m_layersListWidget->item(i)->checkState();
159  if(state != Qt::Checked)
160  m_ui->m_layersListWidget->item(i)->setCheckState(Qt::Checked);
161  }
162 }
163 
165 {
166  for(int i = 0; i < m_ui->m_layersListWidget->count(); ++i)
167  {
168  Qt::CheckState state = m_ui->m_layersListWidget->item(i)->checkState();
169  if(state == Qt::Checked)
170  m_ui->m_layersListWidget->item(i)->setCheckState(Qt::Unchecked);
171  }
172 }
173 
175 {
176  std::vector<QListWidgetItem*> checked;
177  for(int i = 0; i < m_ui->m_layersListWidget->count(); ++i)
178  {
179  if(m_ui->m_layersListWidget->item(i)->checkState() == Qt::Checked)
180  checked.push_back(m_ui->m_layersListWidget->item(i));
181  }
182 
183  return checked;
184 }
QIcon getImage(int type)
std::unique_ptr< Ui::TL4LayerSelectionWizardPageForm > m_ui
void setTL4RasterFiles(std::vector< std::pair< std::string, std::string > > rasterFiles)
void setDatasets(std::vector< std::string > layers, std::vector< std::string > tables, std::vector< std::string > rasters, std::vector< std::pair< std::string, std::string > > rasterFiles)
list rasters
Definition: compose.py:3