Index: /quintagroup.dropdownmenu/trunk/README.txt
===================================================================
--- /quintagroup.dropdownmenu/trunk/README.txt	(revision 1178)
+++ /quintagroup.dropdownmenu/trunk/README.txt	(revision 1179)
@@ -19,6 +19,6 @@
 content structure.
 
-It also allows you to define whether to put content tabs before or after action tabs,
-and a bit more... For details see below.
+It also allows you to define whether to put content tabs before or after action
+tabs, and a bit more... For details see below.
 
 
@@ -40,7 +40,8 @@
 ---------------------------------
 
-In case qPloneDropDownMenu product was previously installed, it will automatically 
-detect legacy settings and migrate it to a newly created tool along with removing old
-portal_dropdownmenu one during a site installation procedure.
+In case qPloneDropDownMenu product was previously installed, it will
+automatically detect legacy settings, migrate it to a newly created settings
+registry and update portal_actions tool if required along with removing old
+portal_dropdownmenu one.
 
 Also installation procedure will uninstall qPloneDropDownMenu product itself
@@ -49,3 +50,2 @@
 Note: to successfully migrate old tabs it's required to have a valid html
 markup, otherwise migration procedure won't be able to move tabs correctly.
-
Index: /quintagroup.dropdownmenu/trunk/quintagroup/dropdownmenu/__init__.py
===================================================================
--- /quintagroup.dropdownmenu/trunk/quintagroup/dropdownmenu/__init__.py	(revision 1178)
+++ /quintagroup.dropdownmenu/trunk/quintagroup/dropdownmenu/__init__.py	(revision 1179)
@@ -1,3 +1,3 @@
+from zope.i18nmessageid import MessageFactory
 
-def initialize(context):
-    """Initializer called when used as a Zope 2 product."""
+_ = MessageFactory("quintagroup.dropdownmenu")
Index: /quintagroup.dropdownmenu/trunk/quintagroup/dropdownmenu/configure.zcml
===================================================================
--- /quintagroup.dropdownmenu/trunk/quintagroup/dropdownmenu/configure.zcml	(revision 1178)
+++ /quintagroup.dropdownmenu/trunk/quintagroup/dropdownmenu/configure.zcml	(revision 1179)
@@ -4,5 +4,16 @@
     i18n_domain="quintagroup.dropdownmenu">
 
-  <five:registerPackage package="." initialize=".initialize" />
+  <!-- Include configuration for dependencies listed in setup.py -->
+  <includeDependencies package="." />
+
+  <!-- Register the installation GenericSetup extension profile -->
+  <genericsetup:registerProfile
+      name="default"
+      title="Plone DropDown Menu"
+      description="DropDown Menu Product for Plone"
+      directory="profiles/default"
+      provides="Products.GenericSetup.interfaces.EXTENSION"
+      for="Products.CMFPlone.interfaces.IPloneSiteRoot"
+      />
 
 </configure>
Index: /quintagroup.dropdownmenu/trunk/quintagroup/dropdownmenu/interfaces.py
===================================================================
--- /quintagroup.dropdownmenu/trunk/quintagroup/dropdownmenu/interfaces.py	(revision 1179)
+++ /quintagroup.dropdownmenu/trunk/quintagroup/dropdownmenu/interfaces.py	(revision 1179)
@@ -0,0 +1,75 @@
+from zope import schema
+from zope.interface import Interface
+
+from quintagroup.dropdownmenu import _
+
+
+class IDropDownMenuSettings(Interface):
+    """Global dropdown menu settings. This describes records stored in the
+    configuration registry and obtainable via plone.registry.
+    """
+    
+    show_content_tabs = schema.Bool(
+        title=_(u"Show content tabs"),
+        description=_(u"Use this setting to enable or disable content structure "
+                      u"based (autogenerated) portal tabs."),
+        default=True)
+
+    show_nonfolderish_tabs = schema.Bool(
+        title=_(u"Show non-folderish content tabs"),
+        description=_(u"Use this setting to enable or disable non-folderish "
+                      u"content structure based (autogenerated) portal tabs. "
+                      u"This setting doesn't make sense in case Show content "
+                      u"tabs is switched off."),
+        default=True)
+
+    content_before_actions_tabs = schema.Bool(
+        title=_(u"Show content tabs before portal_actions tabs"),
+        description=_(u"By default portal_actons based tabs are placed before "
+                      u"those autogenerated from content structure. Check this "
+                      u"option to revert the behaviour."),
+        default=True)
+
+    content_tabs_level = schema.Int(
+        title=_(u"Content tabs level"),
+        description=_(u"How many folders should be included before the "
+                      u"nested menu stops. 0 means no limit. 1 only includes "
+                      u"the root folder."),
+        default=0)
+
+    show_actions_tabs = schema.Bool(
+        title=_(u"Show actions tabs"),
+        description=_(u"Use this setting to enable or disable portal_actions "
+                      u"based portal tabs."),
+        default=True)
+
+    actions_tabs_level = schema.Int(
+        title=_(u"Actions tabs level"),
+        description=_(u"How many folders should be included before the "
+                      u"nested menu stops. 0 means no limit. 1 only includes "
+                      u"the root folder."),
+        default=0)
+
+    actions_category = schema.TextLine(
+        title=_(u"Portal actions category"),
+        description=_(u"Root portal actions tool's category name to extract "
+                      u"tabs from."),
+        default=u"portal_tab")
+
+    nested_category_prefix = schema.TextLine(
+        title=_(u"Nested category prefix"),
+        description=_(u"Because portal_actions category object couldn't serve as"
+                      u" action itself we need to create appropriate action "
+                      u"for it. Prefix and sufix strings are used to make up "
+                      u"id for category while linking action to action category."
+                      u"E.g.: action id is 'index_html', prefix is 'pre_', sufix"
+                      u" is equal to '_sub' then category object with id equal "
+                      u"to 'pre_index_html_sub' will be looked up on the same "
+                      u"level to get nested menu for 'index_html' action."),
+        default=u"")
+
+    nested_category_sufix = schema.TextLine(
+        title=_(u"Nested category sufix"),
+        description=_(u"Sufix part of the category id to be looked up during "
+                      u"linking with action."),
+        default=u"_sub")
Index: /quintagroup.dropdownmenu/trunk/quintagroup/dropdownmenu/profiles/default/metadata.xml
===================================================================
--- /quintagroup.dropdownmenu/trunk/quintagroup/dropdownmenu/profiles/default/metadata.xml	(revision 1179)
+++ /quintagroup.dropdownmenu/trunk/quintagroup/dropdownmenu/profiles/default/metadata.xml	(revision 1179)
@@ -0,0 +1,6 @@
+<metadata>
+ <version>1</version>
+ <dependencies>
+  <dependency>profile-plone.app.registry:default</dependency>
+ </dependencies>
+</metadata>
Index: /quintagroup.dropdownmenu/trunk/quintagroup/dropdownmenu/profiles/default/registry.xml
===================================================================
--- /quintagroup.dropdownmenu/trunk/quintagroup/dropdownmenu/profiles/default/registry.xml	(revision 1179)
+++ /quintagroup.dropdownmenu/trunk/quintagroup/dropdownmenu/profiles/default/registry.xml	(revision 1179)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<registry>
+ <records interface="quintagroup.dropdownmenu.interfaces.IDropDownMenuSettings" />
+</registry>
Index: /quintagroup.dropdownmenu/trunk/setup.cfg
===================================================================
--- /quintagroup.dropdownmenu/trunk/setup.cfg	(revision 1178)
+++ /quintagroup.dropdownmenu/trunk/setup.cfg	(revision 1179)
@@ -1,5 +1,2 @@
-[zopeskel]
-template = plone
-
 [egg_info]
 tag_build = dev
Index: /quintagroup.dropdownmenu/trunk/setup.py
===================================================================
--- /quintagroup.dropdownmenu/trunk/setup.py	(revision 1178)
+++ /quintagroup.dropdownmenu/trunk/setup.py	(revision 1179)
@@ -28,18 +28,10 @@
       install_requires=[
           'setuptools',
-          # -*- Extra requirements: -*-
+          'Plone',
+          'plone.app.registry',
       ],
       entry_points="""
-      # -*- Entry points: -*-
-
-      [distutils.setup_keywords]
-      paster_plugins = setuptools.dist:assert_string_list
-
-      [egg_info.writers]
-      paster_plugins.txt = setuptools.command.egg_info:write_arg
-
       [z3c.autoinclude.plugin]
       target = plone
       """,
-      paster_plugins = ["ZopeSkel"],
       )
