? .cvsignore
? format_permission_preview_setting4.patch
? format_permission_preview_setting_d6.patch
Index: privatemsg.admin.inc
===================================================================
RCS file: /cvs/drupal/contributions/modules/privatemsg/privatemsg.admin.inc,v
retrieving revision 1.9
diff -u -p -r1.9 privatemsg.admin.inc
--- privatemsg.admin.inc	20 Oct 2010 12:52:58 -0000	1.9
+++ privatemsg.admin.inc	20 Oct 2010 19:53:24 -0000
@@ -21,6 +21,7 @@ function privatemsg_admin_settings() {
     '#title'         => t('Private message display template'),
     '#default_value' => variable_get('private_message_view_template', 'privatemsg-view'),
     '#options'       => private_message_view_options(),
+    '#weight'        => -10,
   );
   $form['display_settings']['privatemsg_display_loginmessage'] = array(
     '#type' => 'checkbox',
@@ -50,6 +51,13 @@ function privatemsg_admin_settings() {
     '#description' => t('Also redirect to the defined page when replying.'),
     '#weight'      => 1,
   );
+  $form['display_settings']['privatemsg_display_preview_button'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Show preview button on compose form'),
+    '#description' => t('If checked, displays a preview button when sending new messages.'),
+    '#default_value' => variable_get('privatemsg_display_preview_button', FALSE),
+    '#weight' => 5,
+  );
 
   $form['integration'] = array(
     '#type' => 'fieldset',
Index: privatemsg.module
===================================================================
RCS file: /cvs/drupal/contributions/modules/privatemsg/privatemsg.module,v
retrieving revision 1.147
diff -u -p -r1.147 privatemsg.module
--- privatemsg.module	20 Oct 2010 12:52:58 -0000	1.147
+++ privatemsg.module	20 Oct 2010 19:53:34 -0000
@@ -31,6 +31,7 @@ function privatemsg_perm() {
     'write privatemsg',
     'delete privatemsg',
     'reply only privatemsg',
+    'select text format for privatemsg',
   );
 }
 
Index: privatemsg.pages.inc
===================================================================
RCS file: /cvs/drupal/contributions/modules/privatemsg/privatemsg.pages.inc,v
retrieving revision 1.16
diff -u -p -r1.16 privatemsg.pages.inc
--- privatemsg.pages.inc	20 Oct 2010 12:52:58 -0000	1.16
+++ privatemsg.pages.inc	20 Oct 2010 19:53:36 -0000
@@ -317,12 +317,15 @@ function privatemsg_new(&$form_state, $r
     $format = $form_state['values']['format'];
   }
   $form['format'] = filter_form($format);
-  $form['preview'] = array(
-    '#type'               => 'submit',
-    '#value'              => t('Preview message'),
-    '#submit'             => array('privatemsg_new_preview'),
-    '#weight'             => 10,
-  );
+  $form['format']['#access'] = privatemsg_user_access('select text format for privatemsg');
+  if (variable_get('privatemsg_display_preview_button', FALSE)) {
+    $form['preview'] = array(
+      '#type'               => 'submit',
+      '#value'              => t('Preview message'),
+      '#submit'             => array('privatemsg_new_preview'),
+      '#weight'             => 10,
+    );
+  }
   $form['submit'] = array(
     '#type'               => 'submit',
     '#value'              => t('Send message'),
@@ -753,4 +756,4 @@ function privatemsg_load_recipients($mid
   if ($context['finished'] >= 1) {
     db_query("UPDATE {pm_index} SET is_new = %d WHERE mid = %d AND recipient = %d AND type = '%s'", PRIVATEMSG_READ, $mid, $recipient->recipient, $recipient->type);
   }
-}
\ No newline at end of file
+}
Index: privatemsg.test
===================================================================
RCS file: /cvs/drupal/contributions/modules/privatemsg/privatemsg.test,v
retrieving revision 1.23
diff -u -p -r1.23 privatemsg.test
--- privatemsg.test	20 Oct 2010 12:52:58 -0000	1.23
+++ privatemsg.test	20 Oct 2010 19:53:46 -0000
@@ -200,7 +200,7 @@ class PrivatemsgTestCase extends DrupalW
    */
   function testWriteReplyPrivatemsg() {
     // Create a author and two recipients.
-    $author     = $this->drupalCreateUser(array('write privatemsg', 'administer filters'));
+    $author     = $this->drupalCreateUser(array('write privatemsg', 'administer filters', 'select text format for privatemsg'));
     $recipient  = $this->drupalCreateUser(array('read privatemsg'));
     $recipient2  = $this->drupalCreateUser(array('read privatemsg', 'write privatemsg'));
 
@@ -677,6 +677,9 @@ class PrivatemsgTestCase extends DrupalW
   function testPreview() {
     $user = $this->drupalCreateUser(array('read privatemsg', 'write privatemsg'));
 
+    // Enable preview button.
+    variable_set('privatemsg_display_preview_button', TRUE);
+
     $message = array(
       'recipient' => $user->name,
       'subject' => $this->randomName(),
