[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    kdegraphics/kpdf/kpdf
From:       Albert Astals Cid <tsdgeos () terra ! es>
Date:       2004-09-23 20:44:19
Message-ID: 20040923204419.CCAE29911 () office ! kde ! org
[Download RAW message or body]

CVS commit by aacid: 

Ask the user the password to open documents with password.
Suporting permission change is not up to a pwd viewer but a pdf editor/creator.
CCMAIL:90061-done@bugs.kde.org


  M +33 -1     kpdf_part.cpp   1.84


--- kdegraphics/kpdf/kpdf/kpdf_part.cpp  #1.83:1.84
@@ -46,4 +46,5 @@
 #include <krun.h>
 #include <kuserprofile.h>
+#include <kpassdlg.h>
 #include <kio/netaccess.h>
 
@@ -56,4 +57,5 @@
 #include "gfile.h"
 #include "Error.h"
+#include "xpdf/ErrorCodes.h"
 #include "GlobalParams.h"
 #include "PDFDoc.h"
@@ -413,5 +415,35 @@ Part::openFile()
 
   if (!m_doc->isOk())
-    return false;
+  {
+    if (m_doc->getErrorCode() == errEncrypted)
+    {
+      bool first, correct;
+      QString prompt;
+      QCString pwd;
+
+      first = true;
+      correct = false;
+      while(!correct)
+      {
+        if (first)
+        {
+          prompt = i18n("Please insert the password to read the document:");
+          first = false;
+        }
+        else prompt = i18n("Incorrect password. Try again:");
+        if (KPasswordDialog::getPassword(pwd, prompt) == KPasswordDialog::Accepted)
+        {
+          GString *pwd2;
+          pwd2 = new GString(pwd.data());
+          m_doc = new PDFDoc(filename, pwd2, pwd2);
+          delete pwd2;
+          correct = m_doc->isOk();
+          if (!correct && m_doc->getErrorCode() != errEncrypted) return false;
+        }
+        else return false;
+      }
+    }
+    else return false;
+  }
 
   m_find->setEnabled(true);


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic