Applied MArc's payches.
authorWerner Koch <wk@gnupg.org>
Fri, 19 Feb 2010 15:07:24 +0000 (15:07 +0000)
committerWerner Koch <wk@gnupg.org>
Fri, 19 Feb 2010 15:07:24 +0000 (15:07 +0000)
The QT2 Version does ow uild on GNU.

ChangeLog
qt4/Makefile.am
qt4/gtk-cancel.png [deleted file]
qt4/gtk-ok.png [deleted file]
qt4/main.cpp
qt4/pinentry.qrc [new file with mode: 0644]
qt4/pinentrydialog.cpp
qt4/pinentrydialog.h
qt4/pinentrydialog.moc
qt4/qrc_pinentry.cpp [new file with mode: 0644]
qt4/qsecurelineedit.moc

index 61fd910..645895b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,52 @@
+2010-02-19  Marc Mutz  <marc@kdab.com>  (wk)
+
+       * qt4/main.cpp (qt_cmd_handler), qt4/pinentrydialog.cpp
+       (PinentryDialog::PinEntryDialog): Use the button icons that come
+       with Qt.
+
+       * qt4/pinentry_qrc, qt4/qrc_pinentry.cpp: New.
+       * qt4/gtk-cancel.png, qt4/gtk-ok.png: Removed.
+       * qt4/Makefile.am (EXTRA_DIST): Remove the GTK icons, add
+       pinentry.qrc.
+       (pinentry_qt4_SOURCES): add qrc_pinentry.cpp.
+
+       * qt4/main.cpp (qt_cmd_handler): Remove i18n support again.
+
+       * qt4/pinentrydialog.cpp (PinentryDialog::PinentryDialog):
+       set PIN entry field as buddy of its prompt
+
+       * qt4/main.cpp (escape_accel): New.
+       (qt_cmd_handler): use it on default_cancel, default_ok, prompt.
+
+       * qt4/pinentrydialog.h, qt4/pinentrydialog.cpp
+       (PinEntryDialog::PinEntryDialog): don't use a nested vbox layout.
+
+       * qt4/pinentrydialog.h: replace include file with forward decl.
+       * qt4/pinentrydialog.cpp: add include file here.
+
+       * qt4/pinentrydialog.h, qt4/pinentrydialog.cpp
+       (PinentryDialog::keyPressEvent()): Removed.
+
+       * qt/4pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): use
+       QLayout::SetFixedSize instead of rolling our own solution.
+       * qt4/pinentrydialog.h: (PinentryDialog::setFixedSize): Removed.
+       * qt4/pinentrydialog.moc: Re-created.
+
+       * qt4/main.cpp: (qt_cmd_handler) make Cancel the default button
+       for CONFIRM
+
+       * qt4/main.cpp: (qt_cmd_handler) implement the confirm/message
+       logic correctly
+
+       * qt4/pinentrydialog.h (accepted, rejected): Removed; already
+       provided by base class.
+       * qt4/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Use
+       QDialog::{accepted,rejected}.
+       * qt4/pinentrydialog.moc: Re-created.
+
+       * qt4/pinentrydialog.moc, qt4/qsecurelineedit.moc: Make compatible
+       with newer Qt version.
+
 2010-02-19  Werner Koch  <wk@g10code.com>
 
        * gtk+-2/pinentry-gtk-2.c (create_window): Allow mnemonics in
index 2594bbe..66568a7 100644 (file)
@@ -22,7 +22,7 @@
 
 bin_PROGRAMS = pinentry-qt4
 
-EXTRA_DIST = document-encrypt.png gtk-cancel.png gtk-ok.png
+EXTRA_DIST = document-encrypt.png pinentry.qrc
 
 
 if FALLBACK_CURSES
@@ -44,4 +44,5 @@ pinentry_qt4_LDADD = $(QT4_CORE_LIBS) $(QT4_GUI_LIBS) $(libcurses) \
 pinentry_qt4_SOURCES = pinentrydialog.h pinentrydialog.cpp \
        main.cpp secstring.h secstring.cpp qsecurelineedit.h \
        qsecurelineedit.cpp pinentrydialog.moc qsecurelineedit.moc \
+       qrc_pinentry.cpp \
        qsecurelineedit_p.h
diff --git a/qt4/gtk-cancel.png b/qt4/gtk-cancel.png
deleted file mode 100644 (file)
index 0a395c0..0000000
Binary files a/qt4/gtk-cancel.png and /dev/null differ
diff --git a/qt4/gtk-ok.png b/qt4/gtk-ok.png
deleted file mode 100644 (file)
index c08115f..0000000
Binary files a/qt4/gtk-ok.png and /dev/null differ
index 5f49817..1e7bec1 100644 (file)
@@ -36,9 +36,6 @@
 #include <QString>
 #include <qwidget.h>
 #include <qmessagebox.h>
-#include <QLocale>
-#include <QTranslator>
-#include <QDialogButtonBox>
 #include <QPushButton>
 
 #include <stdio.h>
 #include <pinentry-curses.h>
 #endif
 
+static QString escape_accel( const QString & s ) {
+
+  QString result;
+  result.reserve( s.size() );
+
+  bool afterUnderscore = false;
+
+  for ( unsigned int i = 0, end = s.size() ; i != end ; ++i ) {
+    const QChar ch = s[i];
+    if ( ch == QLatin1Char( '_' ) )
+      {
+        if ( afterUnderscore ) // escaped _
+          {
+            result += QLatin1Char( '_' );
+            afterUnderscore = false;
+          }
+        else // accel
+          {
+            afterUnderscore = true;
+          }
+      }
+    else
+      {
+        if ( afterUnderscore || // accel
+             ch == QLatin1Char( '&' ) ) // escape & from being interpreted by Qt
+          result += QLatin1Char( '&' );
+        result += ch;
+        afterUnderscore = false;
+      }
+  }
+
+  if ( afterUnderscore )
+    // trailing single underscore: shouldn't happen, but deal with it robustly:
+    result += QLatin1Char( '_' );
+
+  return result;
+}
+
 /* Hack for creating a QWidget with a "foreign" window ID */
 class ForeignWidget : public QWidget
 {
@@ -72,23 +107,31 @@ qt_cmd_handler (pinentry_t pe)
 {
   QWidget *parent = 0;
 
-  QTranslator trans;
-  const QString lang = pe->lc_messages ? QString::fromLatin1 (pe->lc_messages) : QLocale ().name () ;
-  if( trans.load (QString::fromLatin1(":/qt_%1").arg(lang)) )
-    qApp->installTranslator (&trans);
-
   /* FIXME: Add parent window ID to pinentry and GTK.  */
   if (pe->parent_wid)
     parent = new ForeignWidget ((WId) pe->parent_wid);
 
   int want_pass = !!pe->pin;
 
+  const QString ok =
+      pe->ok             ?               QString::fromUtf8( pe->ok ) :
+      pe->default_ok     ? escape_accel( QString::fromUtf8( pe->default_ok ) ) :
+      /* else */           QLatin1String( "&OK" ) ;
+  const QString cancel =
+      pe->cancel         ?               QString::fromUtf8( pe->cancel ) :
+      pe->default_cancel ? escape_accel( QString::fromUtf8( pe->default_cancel ) ) :
+      /* else */           QLatin1String( "&Cancel" ) ;
+  const QString title =
+      pe->title ? QString::fromUtf8( pe->title ) :
+      /* else */  QLatin1String( "pinentry-qt4" ) ;
+      
+
   if (want_pass)
     {
       PinEntryDialog pinentry (parent, 0, true, !!pe->quality_bar);
 
       pinentry.setPinentryInfo (pe);
-      pinentry.setPrompt (QString::fromUtf8 (pe->prompt));
+      pinentry.setPrompt (escape_accel (QString::fromUtf8 (pe->prompt)) );
       pinentry.setDescription (QString::fromUtf8 (pe->description));
       if ( pe->title )
           pinentry.setWindowTitle( QString::fromUtf8( pe->title ) );
@@ -96,10 +139,8 @@ qt_cmd_handler (pinentry_t pe)
       /* If we reuse the same dialog window.  */
       pinentry.setPin (secqstring());
 
-      if (pe->ok)
-       pinentry.setOkText (QString::fromUtf8 (pe->ok));
-      if (pe->cancel)
-       pinentry.setCancelText (QString::fromUtf8 (pe->cancel));
+      pinentry.setOkText (ok);
+      pinentry.setCancelText (cancel);
       if (pe->error)
        pinentry.setError (QString::fromUtf8 (pe->error));
       if (pe->quality_bar)
@@ -128,48 +169,45 @@ qt_cmd_handler (pinentry_t pe)
     }
   else
     {
-      const QString title = pe->title       ? QString::fromUtf8 ( pe->title )       : QString();
       const QString desc  = pe->description ? QString::fromUtf8 ( pe->description ) : QString();
-      const QString ok    = pe->ok          ? QString::fromUtf8 ( pe->ok )          : QDialogButtonBox::tr( "&OK" );
-      const QString can   = pe->cancel      ? QString::fromUtf8 ( pe->cancel )      : QDialogButtonBox::tr( "Cancel" );
-
-      QMessageBox box( parent );
-
-      if ( !title.isEmpty() )
-        box.setWindowTitle( title );
-
-      if ( !ok.isEmpty() )
-          if ( !can.isEmpty() )
-              box.setStandardButtons( QMessageBox::Ok|QMessageBox::Cancel );
-          else
-              box.setStandardButtons( QMessageBox::Ok );
-      else
-          if ( !can.isEmpty() )
-              box.setStandardButtons( QMessageBox::Cancel );
-          else
-              box.setStandardButtons( QMessageBox::NoButton );
-
-      if ( !ok.isEmpty() )
-        {
-          box.button( QMessageBox::Ok )->setText( ok );
-          if ( box.style()->styleHint( QStyle::SH_DialogButtonBox_ButtonsHaveIcons ) )
-            box.button( QMessageBox::Ok )->setIcon( QIcon( QLatin1String( ":/gtk-ok.png" ) ) );
-        }
+      const QString notok = pe->notok       ? QString::fromUtf8 ( pe->notok )       : QString();
 
-      if ( !can.isEmpty() )
-        {
-          box.button( QMessageBox::Cancel )->setText( can );
-          if ( box.style()->styleHint( QStyle::SH_DialogButtonBox_ButtonsHaveIcons ) )
-            box.button( QMessageBox::Cancel )->setIcon( QIcon( QLatin1String( ":/gtk-cancel.png" ) ) );
-        }
+      const QMessageBox::StandardButtons buttons =
+          pe->one_button ? QMessageBox::Ok :
+          pe->notok      ? QMessageBox::Yes|QMessageBox::No|QMessageBox::Cancel :
+          /* else */       QMessageBox::Ok|QMessageBox::Cancel ;
+
+      QMessageBox box( QMessageBox::Information, title, desc, buttons, parent );
+
+      const struct {
+          QMessageBox::StandardButton button;
+          QString label;
+      } buttonLabels[] = {
+          { QMessageBox::Ok,     ok     },
+          { QMessageBox::Yes,    ok     },
+          { QMessageBox::No,     notok  },
+          { QMessageBox::Cancel, cancel },
+      };
+
+      for ( size_t i = 0 ; i < sizeof buttonLabels / sizeof *buttonLabels ; ++i )
+        if ( (buttons & buttonLabels[i].button) && !buttonLabels[i].label.isEmpty() )
+            box.button( buttonLabels[i].button )->setText( buttonLabels[i].label );
 
-      box.setText( desc );
       box.setIconPixmap( icon() );
 
+      if ( !pe->one_button )
+        box.setDefaultButton( QMessageBox::Cancel );
+
       box.show();
       raiseWindow( &box );
 
-      return box.exec() == QMessageBox::Ok ;
+      const int rc = box.exec();
+
+      if ( rc == QMessageBox::Cancel )
+        pe->canceled = true;
+
+      return rc == QMessageBox::Ok || rc == QMessageBox::Yes ;
+
     }
 }
 
diff --git a/qt4/pinentry.qrc b/qt4/pinentry.qrc
new file mode 100644 (file)
index 0000000..94db054
--- /dev/null
@@ -0,0 +1,6 @@
+<!DOCTYPE RCC>
+<RCC version="1.0">
+<qresource>
+    <file>document-encrypt.png</file>
+</qresource>
+</RCC>
index da0ebda..8644136 100644 (file)
 
 #include "qsecurelineedit.h"
 
+#include <QProgressBar>
 #include <QApplication>
 #include <QStyle>
 #include <QPainter>
-#include <QVBoxLayout>
-#include <QHBoxLayout>
 #include <QPushButton>
 #include <QDialogButtonBox>
 #include <QKeyEvent>
 #include <QLabel>
-#include <QMessageBox>
-#include <QTextDocument>
 #include <QPalette>
 
 #ifdef Q_WS_WIN
@@ -114,6 +111,8 @@ PinEntryDialog::PinEntryDialog( QWidget* parent, const char* name, bool modal,
   _edit = new QSecureLineEdit( this );
   _edit->setMaxLength( 256 );
 
+  _prompt->setBuddy( _edit );
+
   if (enable_quality_bar)
   {
     _quality_bar_label = new QLabel( this );
@@ -134,43 +133,32 @@ PinEntryDialog::PinEntryDialog( QWidget* parent, const char* name, bool modal,
 
   if ( style()->styleHint( QStyle::SH_DialogButtonBox_ButtonsHaveIcons ) )
     {
-      _ok->setIcon( QIcon( QLatin1String( ":/gtk-ok.png" ) ) );
-      _cancel->setIcon( QIcon( QLatin1String( ":/gtk-cancel.png" ) ) );
+      _ok->setIcon( style()->standardIcon( QStyle::SP_DialogOkButton ) );
+      _cancel->setIcon( style()->standardIcon( QStyle::SP_DialogCancelButton ) );
     }
  
-  connect( _ok, SIGNAL( clicked() ),
-          this, SIGNAL( accepted() ) );
-  connect( _cancel, SIGNAL( clicked() ),
-          this, SIGNAL( rejected() ) );
+  connect( buttons, SIGNAL(accepted()), this, SLOT(accept()) );
+  connect( buttons, SIGNAL(rejected()), this, SLOT(reject()) );
   connect( _edit, SIGNAL( textChanged(secqstring) ),
           this, SLOT( updateQuality(secqstring) ) );
-  connect (this, SIGNAL (accepted ()),
-          this, SLOT (accept ()));
-  connect (this, SIGNAL (rejected ()),
-          this, SLOT (reject ()));
 
   _edit->setFocus();
 
-  QBoxLayout* const labels = new QVBoxLayout;
-  labels->addWidget( _error );
-  labels->addWidget( _desc );
-  labels->addItem( new QSpacerItem( 0, 1, QSizePolicy::Minimum, QSizePolicy::Expanding ) );
-
   QGridLayout* const grid = new QGridLayout( this );
-  grid->addWidget( _icon, 0, 0, 4, 1, Qt::AlignTop|Qt::AlignLeft );
-  grid->addLayout( labels, 0, 1, 1, 2 );
-  grid->addItem( new QSpacerItem( 0, _edit->height() / 10, QSizePolicy::Minimum, QSizePolicy::Fixed ), 1, 1 );
-  grid->addWidget( _prompt, 2, 1 );
-  grid->addWidget( _edit, 2, 2 );
+  grid->addWidget( _icon, 0, 0, 5, 1, Qt::AlignTop|Qt::AlignLeft );
+  grid->addWidget( _error, 1, 1, 1, 2 );
+  grid->addWidget( _desc,  2, 1, 1, 2 );
+  //grid->addItem( new QSpacerItem( 0, _edit->height() / 10, QSizePolicy::Minimum, QSizePolicy::Fixed ), 1, 1 );
+  grid->addWidget( _prompt, 3, 1 );
+  grid->addWidget( _edit, 3, 2 );
   if( enable_quality_bar )
   {
-    grid->addWidget( _quality_bar_label, 3, 1 );
-    grid->addWidget( _quality_bar, 3, 2 );
+    grid->addWidget( _quality_bar_label, 4, 1 );
+    grid->addWidget( _quality_bar, 4, 2 );
   }
-  grid->addWidget( buttons, 4, 0, 1, 3 );
+  grid->addWidget( buttons, 5, 0, 1, 3 );
 
-  setMinimumWidth( 450 );
-  resize( minimumSizeHint() );
+  grid->setSizeConstraint( QLayout::SetFixedSize );
 }
 
 void PinEntryDialog::hideEvent( QHideEvent* ev )
@@ -184,33 +172,9 @@ void PinEntryDialog::hideEvent( QHideEvent* ev )
 void PinEntryDialog::showEvent( QShowEvent* event )
 {
     QDialog::showEvent( event );
-    QMetaObject::invokeMethod( this, "setFixedSize", Qt::QueuedConnection );
-}
-
-void PinEntryDialog::setFixedSize()
-{
-    QTextDocument doc;
-    doc.setDefaultFont( _desc->font() );
-    doc.setHtml( _desc->text() );
-    doc.setTextWidth( _desc->width() );
-    _desc->setFixedSize( doc.size().toSize() );
-   
-    layout()->activate();
-    setFixedHeight( minimumSizeHint().height() + 5 );
-    QDialog::setFixedSize( size() );
-    
     raiseWindow( this );
 }
 
-void PinEntryDialog::keyPressEvent( QKeyEvent* e )
-{
-  if ( e->modifiers() == Qt::NoModifier && e->key() == Qt::Key_Escape ) {
-    emit rejected();
-    return;
-  }
-  QDialog::keyPressEvent( e );
-}
-
 void PinEntryDialog::setDescription( const QString& txt )
 {
   _desc->setVisible( !txt.isEmpty() );
index 1d925ef..416abfe 100644 (file)
@@ -24,7 +24,6 @@
 #ifndef __PINENTRYDIALOG_H__
 #define __PINENTRYDIALOG_H__
 
-#include <QProgressBar>
 #include <QDialog>
 #include <QStyle>
 
@@ -35,6 +34,7 @@ class QLabel;
 class QPushButton;
 class QSecureLineEdit;
 class QString;
+class QProgressBar;
 
 QPixmap icon( QStyle::StandardPixmap which = QStyle::SP_CustomBase );
 
@@ -74,19 +74,11 @@ public:
 public slots:
   void updateQuality(const secqstring&);
 
-signals:
-  void accepted();
-  void rejected();
-
 protected:
   /* reimp */ void showEvent( QShowEvent* event );
-  /* reimp */ void keyPressEvent( QKeyEvent *e );
   /* reimp */ void hideEvent( QHideEvent* );
   /* reimp */ void paintEvent( QPaintEvent* event );
 
-private Q_SLOTS:
-  void setFixedSize();
-
 private:
   QLabel*    _icon;
   QLabel*    _desc;
index e0972e4..c9a0930 100644 (file)
@@ -10,7 +10,7 @@
 #include "pinentrydialog.h"
 #if !defined(Q_MOC_OUTPUT_REVISION)
 #error "The header file 'pinentrydialog.h' doesn't include <QObject>."
-#elif Q_MOC_OUTPUT_REVISION != 59
+#elif Q_MOC_OUTPUT_REVISION < 59
 #error "This file was generated using the moc from 4.4.1. It"
 #error "cannot be used with the include files from this version of Qt."
 #error "(The moc has changed too much.)"
@@ -23,30 +23,24 @@ static const uint qt_meta_data_PinEntryDialog[] = {
        1,       // revision
        0,       // classname
        0,    0, // classinfo
-       4,   10, // methods
-       4,   30, // properties
+       1,   10, // methods
+       4,   15, // properties
        0,    0, // enums/sets
 
- // signals: signature, parameters, type, tag, flags
-      16,   15,   15,   15, 0x05,
-      27,   15,   15,   15, 0x05,
-
  // slots: signature, parameters, type, tag, flags
-      38,   15,   15,   15, 0x0a,
-      64,   15,   15,   15, 0x08,
+      16,   15,   15,   15, 0x0a,
 
  // properties: name, type, flags
-      87,   79, 0x0a095103,
-      99,   79, 0x0a095103,
-     116,  105, 0x0009510b,
-     120,   79, 0x0a095103,
+      50,   42, 0x0a095103,
+      62,   42, 0x0a095103,
+      79,   68, 0x0009510b,
+      83,   42, 0x0a095103,
 
        0        // eod
 };
 
 static const char qt_meta_stringdata_PinEntryDialog[] = {
-    "PinEntryDialog\0\0accepted()\0rejected()\0"
-    "updateQuality(secqstring)\0setFixedSize()\0"
+    "PinEntryDialog\0\0updateQuality(secqstring)\0"
     "QString\0description\0error\0secqstring\0"
     "pin\0prompt\0"
 };
@@ -76,12 +70,9 @@ int PinEntryDialog::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
         return _id;
     if (_c == QMetaObject::InvokeMetaMethod) {
         switch (_id) {
-        case 0: accepted(); break;
-        case 1: rejected(); break;
-        case 2: updateQuality((*reinterpret_cast< const secqstring(*)>(_a[1]))); break;
-        case 3: setFixedSize(); break;
+        case 0: updateQuality((*reinterpret_cast< const secqstring(*)>(_a[1]))); break;
         }
-        _id -= 4;
+        _id -= 1;
     }
 #ifndef QT_NO_PROPERTIES
       else if (_c == QMetaObject::ReadProperty) {
@@ -118,16 +109,4 @@ int PinEntryDialog::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
 #endif // QT_NO_PROPERTIES
     return _id;
 }
-
-// SIGNAL 0
-void PinEntryDialog::accepted()
-{
-    QMetaObject::activate(this, &staticMetaObject, 0, 0);
-}
-
-// SIGNAL 1
-void PinEntryDialog::rejected()
-{
-    QMetaObject::activate(this, &staticMetaObject, 1, 0);
-}
 QT_END_MOC_NAMESPACE
diff --git a/qt4/qrc_pinentry.cpp b/qt4/qrc_pinentry.cpp
new file mode 100644 (file)
index 0000000..d15f01b
--- /dev/null
@@ -0,0 +1,180 @@
+/****************************************************************************
+** Resource object code
+**
+** Created: Wed Feb 17 23:35:02 2010
+**      by: The Resource Compiler for Qt version 4.4.3
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include <QtCore/qglobal.h>
+
+static const unsigned char qt_resource_data[] = {
+  // /home/marc/KDE/src/gnupg-backend/pinentry/qt4/document-encrypt.png
+  0x0,0x0,0x7,0x2b,
+  0x89,
+  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+  0x0,0x0,0x30,0x0,0x0,0x0,0x30,0x8,0x6,0x0,0x0,0x0,0x57,0x2,0xf9,0x87,
+  0x0,0x0,0x0,0x4,0x73,0x42,0x49,0x54,0x8,0x8,0x8,0x8,0x7c,0x8,0x64,0x88,
+  0x0,0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0x5,0x31,0x0,0x0,0x5,0x31,
+  0x1,0xb7,0xed,0x28,0x52,0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,
+  0x74,0x77,0x61,0x72,0x65,0x0,0x77,0x77,0x77,0x2e,0x69,0x6e,0x6b,0x73,0x63,0x61,
+  0x70,0x65,0x2e,0x6f,0x72,0x67,0x9b,0xee,0x3c,0x1a,0x0,0x0,0x6,0xa8,0x49,0x44,
+  0x41,0x54,0x78,0xda,0xd5,0x59,0x4b,0x6c,0x55,0x45,0x18,0xfe,0x67,0xce,0x7d,0xf5,
+  0xfd,0xc0,0x82,0xb1,0xd,0xb,0xdd,0x11,0x34,0x46,0xd1,0xd,0x1b,0x42,0x4c,0x48,
+  0x31,0xb4,0x68,0x52,0x16,0xb8,0x31,0xae,0x4c,0xec,0x92,0x85,0xa9,0x8b,0x6e,0x8c,
+  0xb2,0x60,0xa9,0x21,0xee,0x5c,0xdb,0xf8,0x58,0xb9,0xa1,0x6d,0x60,0x61,0x42,0xb4,
+  0xe0,0x2,0x41,0xd,0x8,0xd1,0xb6,0x94,0x36,0x5c,0xfb,0xa6,0xbd,0xf7,0x9e,0x73,
+  0xc6,0xef,0xfb,0x73,0x99,0x73,0xe3,0xc5,0x40,0xd3,0x9e,0x5b,0x99,0xe4,0xe3,0x9f,
+  0x33,0x33,0x67,0xce,0xff,0xfd,0xaf,0x99,0x72,0x8d,0x73,0x4e,0x9e,0xe6,0x96,0x91,
+  0x14,0xda,0x8d,0x1b,0x37,0x72,0xd7,0xaf,0x5f,0x7f,0xb1,0x54,0x2a,0xbd,0xba,0xb9,
+  0xb9,0xc9,0xa1,0x2b,0xb3,0xb3,0xb3,0xd7,0x46,0x47,0x47,0xcb,0xb2,0xc3,0x6d,0xc7,
+  0x3c,0x30,0x3e,0x3e,0xbe,0xbf,0x52,0xa9,0x7c,0x8,0xa5,0x5f,0xc9,0x66,0xb3,0x2f,
+  0x37,0x37,0x37,0xe7,0x3b,0x3a,0x3a,0xc4,0x5a,0x2b,0x2b,0x2b,0x2b,0xb2,0xbc,0xbc,
+  0x5c,0xba,0x7f,0xff,0xfe,0x35,0xcc,0xff,0xb4,0x67,0xcf,0x9e,0xb3,0x43,0x43,0x43,
+  0x7f,0xfd,0x6f,0x8,0x4c,0x4c,0x4c,0x7c,0x10,0x86,0xe1,0x68,0x6b,0x6b,0x6b,0x4f,
+  0x77,0x77,0xb7,0xe4,0x72,0x39,0xe1,0xbe,0x4b,0x4b,0x4b,0x2a,0xf7,0xee,0xdd,0x2b,
+  0x50,0x5a,0xc7,0x17,0x16,0x16,0xe4,0xd2,0xa5,0x4b,0x45,0x90,0x1c,0x3d,0x75,0xea,
+  0xd4,0xe7,0xbb,0x4a,0x60,0x72,0x72,0xb2,0x17,0x8a,0x7f,0x89,0xee,0x1b,0x5d,0x5d,
+  0x5d,0x2,0xf,0xc8,0xad,0x5b,0xb7,0x64,0x71,0x71,0x51,0x15,0x6f,0x6b,0x6b,0x13,
+  0x63,0xc,0x3d,0xa0,0x63,0x50,0x5a,0xe,0x1e,0x3c,0x28,0xc7,0x8e,0x1d,0x93,0xa9,
+  0xa9,0x29,0x29,0x16,0x8b,0xe3,0xed,0xed,0xed,0xef,0x1e,0x3d,0x7a,0x74,0xb6,0xe1,
+  0x4,0xc6,0xc6,0xc6,0x72,0xb0,0xf6,0x1f,0xe8,0xf6,0xc1,0xf2,0x72,0xf7,0xee,0x5d,
+  0x86,0x89,0x74,0x76,0x76,0x4a,0x14,0x45,0x12,0xc7,0xb1,0x80,0x9c,0xca,0x20,0x8,
+  0x24,0x93,0xc9,0x28,0x90,0xb,0x32,0x3d,0x3d,0x2d,0xc3,0xc3,0xc3,0x3a,0x7f,0xf3,
+  0xe6,0xcd,0x99,0xde,0xde,0xde,0x17,0xe,0x1c,0x38,0x50,0x6e,0x24,0x1,0x86,0xcd,
+  0x37,0x78,0xf7,0xad,0x7c,0x3e,0x2f,0xb7,0x6f,0xdf,0x16,0xc4,0x3c,0xad,0x4e,0x8b,
+  0xff,0xd,0xa5,0x3f,0x3,0xa6,0x40,0x64,0xea,0xc1,0x83,0x7,0x24,0x70,0xa8,0x5c,
+  0x2e,0x1f,0x82,0x1c,0x46,0x5e,0x74,0x93,0xe0,0xd5,0xab,0x57,0x65,0x70,0x70,0x50,
+  0xf0,0x3e,0x3d,0xf7,0xed,0xe1,0xc3,0x87,0xdf,0x6e,0x18,0x81,0xb,0x17,0x2e,0x1c,
+  0x47,0x72,0x7e,0x7,0x8b,0x66,0x69,0x51,0x48,0x2a,0x41,0x12,0x5f,0x6d,0x6c,0x6c,
+  0xbc,0x7f,0xfa,0xf4,0xe9,0x45,0x79,0x44,0x3b,0x7f,0xfe,0x7c,0x17,0xac,0xfe,0x5,
+  0x3c,0x36,0x54,0x28,0x14,0xe4,0xf2,0xe5,0xcb,0x32,0x32,0x32,0x42,0x2f,0x84,0x20,
+  0x3e,0x8,0x12,0xdf,0xa7,0x4e,0xe0,0xe2,0xc5,0x8b,0x19,0x28,0x39,0x3,0xcb,0xed,
+  0xa3,0xd2,0xf3,0xf3,0xf3,0x6a,0x79,0xe4,0xc0,0xc8,0xc0,0xc0,0xc0,0xa7,0xf2,0x4,
+  0xed,0xdc,0xb9,0x73,0x1f,0xf5,0xf4,0xf4,0x7c,0xbc,0xbe,0xbe,0xae,0x89,0xdd,0xdf,
+  0xdf,0x2f,0x73,0x73,0x73,0xf3,0x6b,0x6b,0x6b,0x7d,0x47,0x8e,0x1c,0x9,0x65,0xb,
+  0xcd,0x6e,0x91,0x30,0xe3,0xfc,0x24,0x3e,0xba,0x8f,0xc9,0x39,0x33,0x33,0xa3,0xf1,
+  0xe,0x32,0xbf,0x42,0xf9,0xb3,0xf2,0x84,0xed,0xcc,0x99,0x33,0x9f,0x20,0xb1,0x7f,
+  0x69,0x6a,0x6a,0xd2,0xdc,0x41,0x69,0xa5,0x7,0xf7,0x61,0xea,0x24,0x20,0x69,0x12,
+  0x60,0xe2,0xf5,0xb3,0x9a,0xd0,0xea,0x54,0x9e,0x7,0x55,0x4b,0x4b,0xcb,0x9b,0x98,
+  0xda,0x8a,0x2b,0x1d,0x94,0x1e,0x0,0x1c,0x3c,0xc7,0x83,0x8f,0x15,0x8a,0xf9,0xd3,
+  0x9f,0x36,0x1,0x5a,0x8a,0xc9,0x28,0x48,0x4a,0x92,0xe1,0x47,0x57,0x4f,0x9c,0x38,
+  0x71,0x47,0xb6,0xd6,0xe8,0x85,0x3b,0x78,0x7f,0x81,0x7b,0xdd,0xbb,0x77,0x4f,0xe8,
+  0xd,0xe4,0xd5,0xa1,0xb4,0x9,0xb0,0x2c,0xf6,0x2,0xac,0xed,0x24,0xc1,0x4,0xfe,
+  0xdd,0x4f,0x6e,0x7d,0xaf,0x6b,0xf4,0x22,0xf,0x37,0x96,0x62,0xb4,0xde,0xb4,0x9,
+  0xd0,0x4a,0x9d,0xc,0x9f,0xd5,0xd5,0x55,0x12,0xe0,0x61,0x35,0xe9,0x27,0xb7,0xbe,
+  0xd7,0xf,0xc,0x41,0x1a,0xa4,0xda,0x3a,0xd3,0x26,0xc0,0x90,0x9,0xf0,0x61,0x86,
+  0xf,0xad,0xcf,0xa1,0x95,0x6d,0x10,0x58,0xe6,0x1e,0x2c,0x8,0xa8,0x40,0x1c,0xa,
+  0xd2,0x23,0x50,0xff,0x71,0x3d,0x84,0xd8,0x76,0x62,0xf,0x5f,0xce,0x1b,0x45,0x0,
+  0xc9,0xc7,0xc4,0xdb,0x2e,0x81,0x6d,0xef,0x91,0xd9,0xe,0x1,0x1e,0x42,0xdb,0x6d,
+  0x3c,0x91,0x7d,0x6b,0xb0,0x7,0xfc,0xc7,0x53,0xda,0x23,0x7d,0x2,0x8c,0xdf,0x6d,
+  0x36,0xee,0xf1,0xd4,0x12,0x60,0xe,0x30,0xc,0xd3,0xff,0x83,0xe6,0xc7,0xaf,0xdf,
+  0x71,0x2f,0xbd,0xe6,0xa4,0x38,0xdd,0x2d,0x8b,0xc5,0x66,0xdc,0x5d,0x22,0x9e,0x1,
+  0x1e,0x15,0x95,0x25,0xf6,0xeb,0x20,0xce,0xb1,0xdc,0x12,0xbc,0x2e,0x40,0xe1,0xbc,
+  0xe4,0xf2,0x39,0x55,0x3c,0x8b,0x3e,0x25,0xd,0x41,0x14,0x9a,0x72,0xd2,0xdd,0xd7,
+  0x25,0xd9,0x67,0x9c,0x5c,0x99,0xf8,0x59,0x8e,0xbf,0x37,0x66,0x76,0x2c,0x89,0x6d,
+  0x26,0x94,0x67,0xf7,0xff,0x26,0xdd,0x1d,0x7f,0xca,0xc6,0x52,0x28,0xeb,0xeb,0x4d,
+  0xb8,0x7,0x65,0x65,0x63,0xc3,0x0,0x56,0x36,0x36,0x45,0x4a,0x81,0x91,0x4d,0xeb,
+  0xa4,0xa4,0x88,0x25,0xb,0x80,0x0,0x94,0x34,0x92,0x27,0xf2,0x84,0x95,0x2,0x1c,
+  0x97,0x2f,0x20,0x81,0x5b,0x9c,0x34,0x17,0x80,0xf6,0xb2,0x74,0xf4,0x64,0xa5,0xe9,
+  0xb9,0xd7,0xc5,0xb4,0x3d,0x2f,0xc5,0xb9,0x62,0x7a,0x55,0xc8,0x18,0x7,0x65,0x8a,
+  0x92,0x33,0xeb,0x52,0xce,0xc4,0xb2,0x89,0x1d,0xd6,0x4c,0x20,0xad,0x90,0x65,0x44,
+  0x43,0x58,0xe0,0x15,0x81,0xb0,0x12,0x58,0x86,0x1a,0xde,0x81,0xcc,0x6,0xec,0x43,
+  0xe2,0x1d,0x95,0x58,0x97,0x6b,0x1,0x89,0x56,0x10,0x6c,0xc5,0x73,0x4b,0x9f,0x2e,
+  0xc4,0x9b,0xc,0xad,0x74,0x8,0x50,0xa9,0x28,0x22,0x2,0x71,0x84,0x33,0x12,0x39,
+  0xc6,0x32,0x89,0x19,0x82,0x4a,0x60,0xdc,0xa2,0xaf,0x74,0x1,0x84,0x90,0xce,0x13,
+  0xb1,0x44,0x92,0xc1,0x12,0x23,0xb1,0xe5,0xd7,0x1d,0xd6,0xc6,0x80,0xc3,0x1c,0xde,
+  0xe1,0x46,0x0,0xae,0x16,0xe9,0x10,0xb0,0x96,0xd6,0x73,0x30,0x25,0x3e,0x8a,0x8f,
+  0x84,0xb4,0x96,0xe8,0x4c,0x95,0x0,0x3e,0xc,0x38,0x6b,0x34,0x74,0x38,0x19,0x83,
+  0x44,0x88,0xe1,0x80,0xd6,0xd5,0x57,0x23,0x90,0xc7,0x32,0x40,0x42,0xc,0x68,0x1d,
+  0xa8,0x0,0xbc,0xd9,0x2,0xd6,0xa6,0xe4,0x1,0xdf,0x9c,0xc4,0x80,0x8b,0x61,0xb5,
+  0xc0,0xd1,0x60,0x0,0x65,0xa4,0x16,0x57,0xc3,0x1a,0xc7,0x2e,0x43,0x88,0xc4,0x54,
+  0x5a,0x8c,0x5,0xec,0x63,0x5c,0x3,0x5,0x2f,0x3a,0x1a,0xc2,0x71,0x4d,0x6,0x32,
+  0x20,0x68,0x98,0xd4,0x3c,0xe0,0xc3,0xa8,0xea,0x7f,0xc8,0x90,0xa,0x78,0x44,0x40,
+  0x88,0xb9,0x58,0x17,0x92,0x26,0x63,0x5f,0x9f,0xc4,0xa8,0x53,0xac,0x5f,0x6b,0xa2,
+  0x8,0x88,0x51,0x9d,0x1c,0x40,0x19,0x81,0x19,0x90,0xb6,0x7,0x18,0x46,0x21,0xc3,
+  0xc4,0x44,0x4c,0x68,0x40,0x3c,0xb2,0x81,0xc6,0x35,0x74,0xd7,0xf0,0xf1,0x49,0x5c,
+  0xcd,0x1,0xed,0x5b,0x63,0x28,0x81,0x98,0xde,0x21,0x4f,0xcd,0x29,0xb,0x18,0x1a,
+  0x26,0x5d,0xf,0xf8,0xd0,0x96,0xd8,0x51,0x51,0x42,0x95,0xa8,0xc2,0xe8,0x58,0x54,
+  0x55,0xc0,0xe9,0xba,0x2c,0x3d,0xa2,0x4a,0x87,0x21,0xc3,0xc9,0xe1,0x3c,0x88,0xa1,
+  0xb0,0xd3,0x67,0x74,0x7d,0x75,0x13,0xd1,0x87,0x74,0x3d,0x60,0x4c,0x2d,0x8c,0xa2,
+  0x36,0x3f,0xf8,0x64,0xf9,0xaf,0x4a,0x5a,0x3f,0xe4,0x70,0xd5,0x3,0xde,0x2b,0x55,
+  0x90,0x8c,0x46,0x8d,0x42,0x14,0xb6,0x31,0xb7,0x51,0x63,0x34,0x79,0x21,0x1d,0xa4,
+  0xa9,0x8b,0x71,0x6d,0xec,0x13,0x31,0xd7,0xea,0x9c,0xe,0x26,0x9c,0xd,0xbc,0x80,
+  0xb9,0x10,0x79,0x0,0xaf,0xd9,0xf4,0xaf,0xd3,0xac,0xd1,0x55,0xe8,0x79,0x60,0x7c,
+  0x8,0x51,0xb9,0x84,0x84,0xe6,0x8a,0xf7,0x54,0xc6,0x5b,0xd9,0x2b,0xf,0x19,0xd5,
+  0x78,0x42,0x47,0xf0,0x9e,0x6e,0x90,0x26,0x81,0x58,0x15,0x73,0x80,0x9,0x20,0x81,
+  0x87,0xa,0xc4,0x80,0xf,0x5,0xd1,0x40,0xaa,0x3b,0xc1,0xf9,0x2e,0xc7,0x95,0x84,
+  0xca,0x8,0x48,0xc8,0x89,0x21,0x4c,0x63,0x42,0x28,0x49,0x5c,0xab,0x32,0xf1,0x2,
+  0x51,0x1b,0x2a,0xc6,0xaf,0xe7,0x69,0x9b,0x9,0x9c,0x5f,0x1f,0x86,0x56,0x72,0x2e,
+  0xd9,0x47,0x20,0xd1,0x69,0xc,0x1,0x6b,0x1f,0x22,0xae,0xb9,0x4a,0xd4,0x12,0x20,
+  0xa1,0xc4,0xb,0xc9,0x5a,0x2d,0xa3,0x94,0x80,0xf8,0xbc,0xa8,0xae,0xda,0xb5,0x9f,
+  0x98,0x18,0xbf,0x80,0xd4,0x82,0x25,0x93,0xe3,0xfe,0x0,0xa4,0x7,0x24,0x88,0x94,
+  0x48,0x12,0xff,0x9,0x39,0x51,0xd8,0xc6,0x11,0x88,0x63,0x8f,0x5a,0x2b,0x7a,0xa5,
+  0xd9,0xa2,0x88,0xb7,0x21,0xab,0xa7,0xad,0x88,0xc1,0xb3,0x55,0xeb,0x4b,0x5,0x28,
+  0x63,0x75,0xe,0xa3,0x15,0xbd,0x5e,0x35,0xa2,0xa,0xd1,0xca,0xa,0xad,0x3e,0xf8,
+  0x6c,0xd,0x91,0xa0,0x2e,0x17,0xd0,0x83,0xe2,0x3c,0x7d,0x35,0x79,0x6b,0xae,0x14,
+  0x9a,0xd0,0x3c,0x3,0x38,0xaf,0x30,0x9c,0x48,0x9f,0x0,0x13,0x53,0xc1,0xaa,0xe1,
+  0xe3,0x9f,0xa,0xb8,0x38,0xa2,0xf2,0xe8,0xf8,0x3c,0xd4,0x6b,0x83,0xf5,0x57,0x8a,
+  0x8,0x10,0x26,0x31,0x43,0x9,0xf0,0x21,0x87,0x7e,0xc,0xb8,0xdd,0xfc,0x99,0xd5,
+  0xd7,0x7f,0xf,0x25,0x61,0xab,0xca,0x9,0x9,0xb0,0x2f,0xc9,0x19,0x91,0x24,0x7d,
+  0x42,0x64,0xb7,0x8,0x38,0x47,0xc4,0x2a,0x13,0xab,0xd6,0xa2,0x76,0x6d,0x1d,0x59,
+  0xc0,0xed,0x2e,0x1,0x7f,0x18,0x29,0x1e,0x55,0x6a,0x3d,0x89,0xda,0xd2,0x5b,0x87,
+  0x54,0xff,0x5b,0x25,0xfd,0xf6,0x14,0x12,0x48,0xe1,0x97,0x7a,0x5f,0xce,0x32,0x40,
+  0xf0,0x18,0x58,0x2f,0x13,0x18,0x2f,0x89,0xfa,0xe6,0xaa,0x88,0xbd,0x4c,0x10,0x3d,
+  0x94,0x8f,0x41,0x48,0x9d,0x6b,0x9,0x50,0xe9,0xa0,0xaa,0x74,0x96,0x72,0x87,0x61,
+  0xab,0x8a,0x85,0x3b,0x88,0xa,0x50,0x66,0xff,0xbf,0x3c,0x60,0xeb,0x91,0x58,0xfd,
+  0x31,0xb0,0x89,0xe2,0xa,0xa9,0xb3,0xb4,0x87,0x7f,0xe,0xeb,0x3d,0x50,0xef,0x1d,
+  0xc2,0xfd,0x4b,0xe1,0x7f,0x0,0xd8,0x6e,0xc6,0xdd,0x5d,0xd6,0xb,0x18,0x0,0x0,
+  0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+  
+};
+
+static const unsigned char qt_resource_name[] = {
+  // document-encrypt.png
+  0x0,0x14,
+  0x8,0xbf,0x25,0x67,
+  0x0,0x64,
+  0x0,0x6f,0x0,0x63,0x0,0x75,0x0,0x6d,0x0,0x65,0x0,0x6e,0x0,0x74,0x0,0x2d,0x0,0x65,0x0,0x6e,0x0,0x63,0x0,0x72,0x0,0x79,0x0,0x70,0x0,0x74,0x0,0x2e,
+  0x0,0x70,0x0,0x6e,0x0,0x67,
+  
+};
+
+static const unsigned char qt_resource_struct[] = {
+  // :
+  0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x1,
+  // :/document-encrypt.png
+  0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,
+
+};
+
+QT_BEGIN_NAMESPACE
+
+extern bool qRegisterResourceData
+    (int, const unsigned char *, const unsigned char *, const unsigned char *);
+
+extern bool qUnregisterResourceData
+    (int, const unsigned char *, const unsigned char *, const unsigned char *);
+
+QT_END_NAMESPACE
+
+
+int QT_MANGLE_NAMESPACE(qInitResources_pinentry)()
+{
+    QT_PREPEND_NAMESPACE(qRegisterResourceData)
+        (0x01, qt_resource_struct, qt_resource_name, qt_resource_data);
+    return 1;
+}
+
+Q_CONSTRUCTOR_FUNCTION(QT_MANGLE_NAMESPACE(qInitResources_pinentry))
+
+int QT_MANGLE_NAMESPACE(qCleanupResources_pinentry)()
+{
+    QT_PREPEND_NAMESPACE(qUnregisterResourceData)
+       (0x01, qt_resource_struct, qt_resource_name, qt_resource_data);
+    return 1;
+}
+
+Q_DESTRUCTOR_FUNCTION(QT_MANGLE_NAMESPACE(qCleanupResources_pinentry))
+
index a07d1dd..ab1030e 100644 (file)
@@ -10,7 +10,7 @@
 #include "qsecurelineedit.h"
 #if !defined(Q_MOC_OUTPUT_REVISION)
 #error "The header file 'qsecurelineedit.h' doesn't include <QObject>."
-#elif Q_MOC_OUTPUT_REVISION != 59
+#elif Q_MOC_OUTPUT_REVISION < 59
 #error "This file was generated using the moc from 4.4.1. It"
 #error "cannot be used with the include files from this version of Qt."
 #error "(The moc has changed too much.)"