src/terralib/qt/plugins/attributefill/Plugin.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/attributefill/Plugin.cpp
22 
23  \brief Plugin implementation for the Attribute Fill Qt Plugin widget.
24 */
25 
26 // TerraLib
27 #include "../../../common/Config.h"
28 #include "../../../core/translator/Translator.h"
29 #include "../../../core/logger/Logger.h"
30 #include "../../af/ApplicationController.h"
31 #include "../../af/events/LayerEvents.h"
32 #include "../../af/Utils.h"
33 #include "RasterToVectorAction.h"
34 #include "VectorToRasterAction.h"
35 #include "VectorToVectorAction.h"
36 #include "Plugin.h"
37 
38 // QT
39 #include <QMenu>
40 #include <QMenuBar>
41 #include <qaction.h>
42 
44  : te::core::CppPlugin(pluginInfo),
45  m_attributefillMenu(nullptr),
46  m_popupAction(nullptr),
47  m_rasterToVector(nullptr),
48  m_vectorToRaster(nullptr),
49  m_vectorToVector(nullptr)
50 {
51 }
52 
54 
56 {
57  if(m_initialized)
58  return;
59 
60  TE_LOG_TRACE(TE_TR("TerraLib Qt Attribute Fill Plugin startup!"));
61 
62 // add plugin menu
63  QMenu* pluginMenu = te::qt::af::AppCtrlSingleton::getInstance().getMenu("Processing");
64  m_attributefillMenu = new QMenu(pluginMenu);
65  m_attributefillMenu->setIcon(QIcon::fromTheme("attributefill-icon"));
66 
67  // Insert action before plugin manager action
68  QAction* pluginsSeparator = te::qt::af::AppCtrlSingleton::getInstance().findAction("ManagePluginsSeparator");
69 
70  pluginMenu->insertMenu(pluginsSeparator, m_attributefillMenu);
71 
72  m_attributefillMenu->setTitle(tr("Attribute Fill"));
73 
74  // register actions
76 
77 // add pop up menu
78  m_popupAction = new QAction(m_attributefillMenu);
79  m_popupAction->setText(tr("Attribute Fill"));
80 
84 
85  m_initialized = true;
86 
88 }
89 
91 {
92  if(!m_initialized)
93  return;
94 
95 // remove menu
96  delete m_attributefillMenu;
97 
98  // unregister actions
100 
101  TE_LOG_TRACE(TE_TR("TerraLib Qt Attribute Fill Plugin shutdown!"));
102 
103  m_initialized = false;
104 
105  te::qt::af::AppCtrlSingleton::getInstance().removeListener(this);
106 }
107 
109 {
113 
117 }
118 
120 {
121  delete m_rasterToVector;
122  delete m_vectorToRaster;
123 }
124 
This class register the contrast action into Attribute Fill Plugin.
TEQTAFEXPORT void AddActionToCustomToolbars(te::qt::af::ApplicationController *appController, QAction *act)
Check QSettings for existance of act and adds it if necessary.
void registerActions()
Function used to register all attributefill actions.
void shutdown()
This method will be called by applicatons to shutdown plugin&#39;s functionality.
void startup()
This method will be called by applications to startup some plugin&#39;s functionality.
This file defines the RasterToVector class.
VectorToRasterAction * m_vectorToRaster
VectorToRaster Attribute Fill Action.
A base class for application events.
void unRegisterActions()
Function used to unregister all attributefill actions.
Basic information about a plugin.
#define TE_TR(message)
It marks a string in order to get translated.
Definition: Translator.h:242
This file defines the VectorToRaster class.
static ApplicationController & getInstance()
It returns a reference to the singleton instance.
QMenu * m_attributefillMenu
Attribute Fill Sub Menu registered.
URI C++ Library.
Definition: Attributes.h:37
This class register the contrast action into Attribute Fill Plugin.
#define TERRALIB_PLUGIN_CALL_BACK_IMPL(PLUGIN_CLASS_NAME)
This macro should be used by C++ plugins in order to declare the exportable/callable DLL function...
This class register the contrast action into Attribute Fill Plugin.
void triggered(te::qt::af::evt::Event *e)
#define TE_LOG_TRACE(message)
Use this tag in order to log a message to the TerraLib default logger with the TRACE level...
Definition: Logger.h:293
This file defines the RasterToVector class.
VectorToVectorAction * m_vectorToVector
VectorToVector Attribute Fill Action.
QAction * m_popupAction
Attribute Fill pop up action registered.
RasterToVectorAction * m_rasterToVector
RasterToVector Attribute Fill Action.
Plugin implementation for the SA Qt Plugin widget.