Index: modules/openlayers_ui/includes/openlayers_ui.presets.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/openlayers/modules/openlayers_ui/includes/Attic/openlayers_ui.presets.inc,v
retrieving revision 1.1.2.28
diff -u -p -r1.1.2.28 openlayers_ui.presets.inc
--- modules/openlayers_ui/includes/openlayers_ui.presets.inc	4 Aug 2010 17:33:23 -0000	1.1.2.28
+++ modules/openlayers_ui/includes/openlayers_ui.presets.inc	30 Aug 2010 15:29:41 -0000
@@ -297,15 +297,43 @@ function openlayers_ui_presets_form(&$fo
   $overlay_options = openlayers_ui_get_layer_options('overlay', $defaults['projection']);
   $form['layerstyles']['layers']['overlaylabels'] = array();
   if (!empty($overlay_options)) {
+    $form['layerstyles']['layer_styles']['#tree'] = TRUE;
+    $form['layerstyles']['layer_weight']['#tree'] = TRUE;
+
+    // Put enabled layers first, maintaining their order,
+    // then add remaining options.
+    // TODO: make this block more elegant
+    {
+      $sorted_options = array();
+      foreach ($defaults['layers'] as $id => $junk) {
+        if ( $overlay_options[$id] )
+          $sorted_options[$id] = $overlay_options[$id];
+      };
+      foreach ($overlay_options as $id => $description) {
+        if ( ! $sorted_options[$id] )
+          $sorted_options[$id] = $overlay_options[$id];
+      }
+      $overlay_options = $sorted_options;
+    }
+
+    // TODO: check out to make this automatic...
+    $nextweight = -10;
     foreach ($overlay_options as $id => $description) {
       $form['layerstyles']['layers']['overlaylabels'][$id] = array('#type' => 'markup', '#value' => $description);
-      $form['layerstyles']['layer_styles']['#tree'] = TRUE;
       $form['layerstyles']['layer_styles'][$id] = array(
         '#type' => 'select',
         '#options' => array('-- '. t('Default style') .' --') + openlayers_ui_get_style_options(),
         '#default_value' => !empty($defaults['layer_styles'][$id]) ?
           $defaults['layer_styles'][$id] : '',
       );
+      $form['layerstyles']['layer_weight'][$id] = array(
+        '#type' => 'weight',
+        // TODO: check out to make this automatic...
+        '#default_value' => $nextweight++,
+        '#attributes' => array(
+          'class' => 'layer-weight'
+        )
+      );
     }
   }
   $form['layerstyles']['layers']['overlays'] = array(
Index: modules/openlayers_ui/includes/openlayers_ui.theme.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/openlayers/modules/openlayers_ui/includes/Attic/openlayers_ui.theme.inc,v
retrieving revision 1.1.2.8
diff -u -p -r1.1.2.8 openlayers_ui.theme.inc
--- modules/openlayers_ui/includes/openlayers_ui.theme.inc	22 Mar 2010 23:55:10 -0000	1.1.2.8
+++ modules/openlayers_ui/includes/openlayers_ui.theme.inc	30 Aug 2010 15:29:41 -0000
@@ -97,13 +97,16 @@ function theme_openlayers_ui_presets_for
     unset($form['layer_switcher'][$key]['#title']);
 
     $row[] = drupal_render($form['layers']['overlaylabels'][$key]);
+    $row[] = drupal_render($form['layer_weight'][$key]); 
     $row[] = drupal_render($form['layers']['overlays'][$key]);
     $row[] = drupal_render($form['layer_activated'][$key]);
     $row[] = drupal_render($form['layer_switcher'][$key]);
     $row[] = drupal_render($form['layer_styles'][$key]);
-    $rows[] = $row;
+    $rows[] = array( 'data' => $row, 'class' => 'draggable' );
   }
-  $output .= theme('table', array(t('Overlay layers'), t('Enabled'), t('Activated'), t('In Switcher'), t('Style')), $rows);
+  $output .= theme('table', array(t('Overlay layers'), t('Weight'), t('Enabled'), t('Activated'), t('In Switcher'), t('Style')), $rows, array('id' => 'overlay-layer-table'));
+
+  drupal_add_tabledrag('overlay-layer-table', 'order', 'sibling', 'layer-weight');
   $output .= drupal_render($form);
   return $output;
 }
