[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdepim/kleopatra
From: Frank Osterfeld <frank.osterfeld () kdemail ! net>
Date: 2008-04-08 12:22:05
Message-ID: 1207657325.100811.30226.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 794713 by osterfeld:
watch gnupg files for changes and trigger a keylisting on change
M +2 -1 CMakeLists.txt
M +33 -1 mainwindow.cpp
A utils/detail.cpp [License: GPL (v2+) (+Qt exception)]
M +4 -0 utils/detail_p.h
A utils/filesystemwatcher.cpp [License: GPL (v2+) (+Qt exception)]
A utils/filesystemwatcher.h [License: GPL (v2+) (+Qt exception)]
--- trunk/KDE/kdepim/kleopatra/CMakeLists.txt #794712:794713
@@ -74,7 +74,8 @@
set( _kleopatra_common_SRCS
-
+ utils/detail.cpp
+ utils/filesystemwatcher.cpp
utils/kdpipeiodevice.cpp
utils/kdlogtextwidget.cpp
utils/headerview.cpp
--- trunk/KDE/kdepim/kleopatra/mainwindow.cpp #794712:794713
@@ -56,6 +56,8 @@
#include "conf/configuredialog.h"
+#include "utils/detail_p.h"
+#include <utils/filesystemwatcher.h>
#include "utils/stl_util.h"
#include "utils/action_data.h"
@@ -124,6 +126,22 @@
setValue( current );
}
};
+
+ QStringList fileSystemWatchList()
+ {
+ const QString baseDir = _detail::gnupgHomeDirectory();
+ QStringList res;
+ res.append( baseDir + "/pubring.gpg" );
+ res.append( baseDir + "/secring.gpg" );
+ res.append( baseDir + "/pubring.kbx" );
+ res.append( baseDir + "/private-keys-v1.d" );
+ res.append( baseDir + "/trustdb.gpg" );
+ res.append( baseDir + "/trustlist.txt" );
+ res.append( baseDir + "/gpg.conf" );
+ res.append( baseDir + "/gpgsm.conf" );
+ res.append( baseDir + "/gpg-agent.conf" );
+ return res;
+ }
}
KGuiItem KStandardGuiItem_quit() {
@@ -174,8 +192,10 @@
createAndStart<DetailsCommand>();
}
void refreshCertificates() {
+ refreshTimer.start(); // restart
createAndStart<RefreshKeysCommand>();
}
+
void deleteCertificates() {
createAndStart<DeleteCertificatesCommand>();
}
@@ -236,6 +256,8 @@
Kleo::KeyListController controller;
QTimer refreshTimer;
+ FileSystemWatcher gnupgHomeDirsWatcher;
+
QPointer<ConfigureDialog> configureDialog;
struct Actions {
@@ -289,20 +311,30 @@
hierarchicalModel( AbstractKeyListModel::createHierarchicalKeyListModel( q ) ),
controller( q ),
refreshTimer(),
+ gnupgHomeDirsWatcher(),
configureDialog(),
actions( q ),
ui( q )
{
KDAB_SET_OBJECT_NAME( controller );
KDAB_SET_OBJECT_NAME( refreshTimer );
+ KDAB_SET_OBJECT_NAME( gnupgHomeDirsWatcher );
KDAB_SET_OBJECT_NAME( flatModel );
KDAB_SET_OBJECT_NAME( hierarchicalModel );
- refreshTimer.setInterval( 5 * 60 * 1000 );
+ refreshTimer.setInterval( 2 * 60 * 60 * 1000 ); //2h
refreshTimer.setSingleShot( false );
refreshTimer.start();
connect( &refreshTimer, SIGNAL(timeout()), q, SLOT(refreshCertificates()) );
+ gnupgHomeDirsWatcher.addPaths( fileSystemWatchList() );
+ gnupgHomeDirsWatcher.setDelay( 1000 );
+
+ connect( &gnupgHomeDirsWatcher, SIGNAL( directoryChanged( QString ) ),
+ q, SLOT( refreshCertificates() ) );
+ connect( &gnupgHomeDirsWatcher, SIGNAL( fileChanged( QString ) ),
+ q, SLOT( refreshCertificates() ) );
+
controller.setFlatModel( flatModel );
controller.setHierarchicalModel( hierarchicalModel );
--- trunk/KDE/kdepim/kleopatra/utils/detail_p.h #794712:794713
@@ -43,6 +43,8 @@
#include <io.h>
#endif
+class QString;
+
namespace Kleo {
namespace _detail {
@@ -101,6 +103,8 @@
#endif
}
+ QString gnupgHomeDirectory();
+
}
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic