Browse Source

Added new class ctkCmdLineModuleMenuFactoryQtGui

MattClarkson 13 years ago
parent
commit
a15224d70a

+ 1 - 1
Libs/CommandLineModules/QtGui/CMakeLists.txt

@@ -17,13 +17,13 @@ set(KIT_SRCS
   ctkCmdLineModuleInstanceFactoryQtGui.cpp
   ctkCmdLineModuleInstanceQtGui_p.h
   ctkCmdLineModuleInstanceQtGui.cpp
+  ctkCmdLineModuleMenuFactoryQtGui.cpp
   ctkCmdLineModuleObjectTreeWalker_p.h
   ctkCmdLineModuleObjectTreeWalker.cpp
 )
 
 # Headers that should run through moc
 set(KIT_MOC_SRCS
-  
 )
 
 # UI files

+ 51 - 0
Libs/CommandLineModules/QtGui/ctkCmdLineModuleMenuFactoryQtGui.cpp

@@ -0,0 +1,51 @@
+/*=============================================================================
+
+  Library: CTK
+
+  Copyright (c) University College London
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+=============================================================================*/
+
+#include "ctkCmdLineModuleMenuFactoryQtGui.h"
+#include "ctkCmdLineModuleDescription.h"
+#include <QList>
+#include <QAction>
+
+//-----------------------------------------------------------------------------
+ctkCmdLineModuleMenuFactoryQtGui::ctkCmdLineModuleMenuFactoryQtGui()
+{
+
+}
+
+
+//-----------------------------------------------------------------------------
+ctkCmdLineModuleMenuFactoryQtGui::~ctkCmdLineModuleMenuFactoryQtGui()
+{
+
+}
+
+//-----------------------------------------------------------------------------
+QMenu* ctkCmdLineModuleMenuFactoryQtGui::create(const QHash<QString, ctkCmdLineModuleReference>& hashMap)
+{
+  QMenu *menu = new QMenu();
+  ctkCmdLineModuleReference ref;
+
+  QList<ctkCmdLineModuleReference> references = hashMap.values();
+  foreach (ref, references)
+  {
+    menu->addAction(ref.description().title());
+  }
+  return menu;
+}

+ 49 - 0
Libs/CommandLineModules/QtGui/ctkCmdLineModuleMenuFactoryQtGui.h

@@ -0,0 +1,49 @@
+/*=============================================================================
+
+  Library: CTK
+
+  Copyright (c) University College London
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+=============================================================================*/
+
+#ifndef CTKCMDLINEMODULEMENUFACTORYQTGUI_H
+#define CTKCMDLINEMODULEMENUFACTORYQTGUI_H
+
+#include <QMenu>
+#include <QHash>
+#include "ctkCmdLineModuleReference.h"
+#include "ctkCommandLineModulesQtGuiExport.h"
+
+/**
+ * \class ctkCmdLineModuleMenuFactoryQtGui
+ * \brief Takes a QHash of filename and ctkCmdLineModuleReference and produces a QMenu.
+ * \author m.clarkson@ucl.ac.uk
+ */
+class CTK_CMDLINEMODULEQTGUI_EXPORT ctkCmdLineModuleMenuFactoryQtGui
+{
+public:
+
+  ctkCmdLineModuleMenuFactoryQtGui();
+  virtual ~ctkCmdLineModuleMenuFactoryQtGui();
+
+  /**
+   * \brief Constructs a menu, for all the items in the QHash.
+   * \param hashMap Hash map of filename to reference.
+   * \return QMenu* a menu.
+   */
+  QMenu* create(const QHash<QString, ctkCmdLineModuleReference>& hashMap);
+};
+
+#endif // CTKCMDLINEMODULEINSTANCEFACTORYQTGUI_H