File indexing completed on 2024-12-08 06:46:40
0001 /*************************************************************************** 0002 cmaptoolbase.cpp 0003 ------------------- 0004 begin : Tue May 1 2001 0005 copyright : (C) 2001 by Kmud Developer Team 0006 email : kmud-devel@kmud.de 0007 ***************************************************************************/ 0008 0009 /*************************************************************************** 0010 * * 0011 * This program is free software; you can redistribute it and/or modify * 0012 * it under the terms of the GNU General Public License as published by * 0013 * the Free Software Foundation; either version 2 of the License, or * 0014 * (at your option) any later version. * 0015 * * 0016 ***************************************************************************/ 0017 0018 #include "cmaptoolbase.h" 0019 0020 #include "cmapmanager.h" 0021 #include "cmapview.h" 0022 0023 #include <QActionGroup> 0024 #include <kactioncollection.h> 0025 0026 /** The construtor for the tool */ 0027 CMapToolBase::CMapToolBase(KActionCollection *actionCollection,QString description,QIcon icon,CMapManager *manager,QString actionName,QActionGroup *group) 0028 { 0029 mapManager = manager; 0030 0031 action = new KToggleAction (this); 0032 action->setText (description); 0033 action->setIcon (icon); 0034 connect (action, SIGNAL (triggered (bool)), this, SLOT (slotActionSelected ())); 0035 if (!group) group = manager->getActiveView()->toolGroup(); 0036 group->addAction (action); 0037 actionCollection->addAction (actionName, action); 0038 } 0039 0040 CMapToolBase::~CMapToolBase() 0041 { 0042 } 0043 0044 /** Used to tell the tool were to find the map manager */ 0045 void CMapToolBase::setManager(CMapManager *manager) 0046 { 0047 mapManager = manager; 0048 } 0049 0050 /** Used to set the checked state of the tool */ 0051 void CMapToolBase::setChecked(bool checked) 0052 { 0053 action->setChecked(checked); 0054 } 0055 0056 /** This is called when the tool button is clicked */ 0057 void CMapToolBase::slotActionSelected() 0058 { 0059 if (action->isChecked()) 0060 { 0061 emit actionSelected(this); 0062 mapManager->setCurrentTool(this); 0063 } 0064 } 0065 0066 /** Used to set the whats this text for the tool */ 0067 void CMapToolBase::setWhatsThis(QString text) 0068 { 0069 action->setWhatsThis(text); 0070 } 0071 0072 /** Used to set the toop tip of the tool */ 0073 void CMapToolBase::setToolTip(QString tip) 0074 { 0075 action->setToolTip(tip); 0076 } 0077 0078 void CMapToolBase::plug (QWidget *w) 0079 { 0080 w->addAction(action); 0081 } 0082 0083 #include "moc_cmaptoolbase.cpp"