summaryrefslogtreecommitdiff
authorzecke <zecke>2004-12-20 22:21:55 (UTC)
committer zecke <zecke>2004-12-20 22:21:55 (UTC)
commit2be4d5bf420dc4aff71cf78601c095a96ed88c47 (patch) (unidiff)
treef8d053d475501c2230a2c65acc1bed091d39faf9
parentb15930cd03acafd9770bca26f3388817f1a4dcbf (diff)
downloadopie-2be4d5bf420dc4aff71cf78601c095a96ed88c47.zip
opie-2be4d5bf420dc4aff71cf78601c095a96ed88c47.tar.gz
opie-2be4d5bf420dc4aff71cf78601c095a96ed88c47.tar.bz2
Create the 'Config' instance on the Stack to avoid
that we revert changes done in between of our creation and deletion
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/securityplugins/blueping/bluepingConfigWidget.cpp14
-rw-r--r--noncore/securityplugins/blueping/bluepingConfigWidget.h1
-rw-r--r--noncore/securityplugins/notice/noticeConfigWidget.cpp14
-rw-r--r--noncore/securityplugins/notice/noticeplugin.cpp10
-rw-r--r--noncore/securityplugins/notice/noticeplugin.h1
5 files changed, 17 insertions, 23 deletions
diff --git a/noncore/securityplugins/blueping/bluepingConfigWidget.cpp b/noncore/securityplugins/blueping/bluepingConfigWidget.cpp
index 876ccda..17168f9 100644
--- a/noncore/securityplugins/blueping/bluepingConfigWidget.cpp
+++ b/noncore/securityplugins/blueping/bluepingConfigWidget.cpp
@@ -3,72 +3,72 @@
3#include <qwidget.h> 3#include <qwidget.h>
4#include <qlayout.h> 4#include <qlayout.h>
5#include <qlabel.h> 5#include <qlabel.h>
6#include <qgroupbox.h> 6#include <qgroupbox.h>
7#include <qmessagebox.h> 7#include <qmessagebox.h>
8#include <qregexp.h> 8#include <qregexp.h>
9 9
10using Opie::Security::MultiauthConfigWidget; 10using Opie::Security::MultiauthConfigWidget;
11 11
12BluepingConfigWidget::BluepingConfigWidget(QWidget* parent = 0, const char* name = "Blueping configuration widget") 12BluepingConfigWidget::BluepingConfigWidget(QWidget* parent = 0, const char* name = "Blueping configuration widget")
13: MultiauthConfigWidget(parent, name) 13: MultiauthConfigWidget(parent, name)
14{ 14{
15 m_config = new Config("Security"); 15 Config config("Security");
16 m_config->setGroup("BluepingPlugin"); 16 config.setGroup("BluepingPlugin");
17 QVBoxLayout * baseLayout = new QVBoxLayout( this); 17 QVBoxLayout * baseLayout = new QVBoxLayout( this);
18 baseLayout->setSpacing(11); 18 baseLayout->setSpacing(11);
19 baseLayout->setMargin(11); 19 baseLayout->setMargin(11);
20 baseLayout->setAlignment( Qt::AlignTop ); 20 baseLayout->setAlignment( Qt::AlignTop );
21 21
22 QGroupBox * configBox = new QGroupBox(0, Qt::Vertical, tr("Set the MAC address to ping here"), this); 22 QGroupBox * configBox = new QGroupBox(0, Qt::Vertical, tr("Set the MAC address to ping here"), this);
23 baseLayout->addWidget(configBox); 23 baseLayout->addWidget(configBox);
24 QVBoxLayout *boxLayout = new QVBoxLayout( configBox->layout() ); 24 QVBoxLayout *boxLayout = new QVBoxLayout( configBox->layout() );
25 25
26 QHBoxLayout * configLayout = new QHBoxLayout(); 26 QHBoxLayout * configLayout = new QHBoxLayout();
27 configLayout->setSpacing(6); 27 configLayout->setSpacing(6);
28 boxLayout->addLayout(configLayout); 28 boxLayout->addLayout(configLayout);
29 29
30 QString mac = m_config->readEntry("mac"); 30 QString mac = config.readEntry("mac");
31 if ( mac.isEmpty() ) 31 if ( mac.isEmpty() )
32 mac = "00:00:00:00:00:00"; 32 mac = "00:00:00:00:00:00";
33 33
34 editMAC = new QLineEdit( mac, configBox, "editMAC" ); 34 editMAC = new QLineEdit( mac, configBox, "editMAC" );
35 setMAC = new QPushButton( tr("Set"), configBox, "setMAC" ); 35 setMAC = new QPushButton( tr("Set"), configBox, "setMAC" );
36 configLayout->addWidget(editMAC); 36 configLayout->addWidget(editMAC);
37 configLayout->addWidget(setMAC); 37 configLayout->addWidget(setMAC);
38 38
39 QLabel * description = new QLabel( "<p>" + tr("Detecting another Bluetooth device by its MAC address provides a minimal and automatic level of protection.") + "</p><p><em>" 39 QLabel * description = new QLabel( "<p>" + tr("Detecting another Bluetooth device by its MAC address provides a minimal and automatic level of protection.") + "</p><p><em>"
40 + tr("Note: if you don't put a valid MAC here but you activate the plugin, it will always succeed!") + "</em></p>", configBox ); 40 + tr("Note: if you don't put a valid MAC here but you activate the plugin, it will always succeed!") + "</em></p>", configBox );
41 boxLayout->addWidget(description); 41 boxLayout->addWidget(description);
42 42
43 43
44 connect(setMAC, SIGNAL( clicked() ), this, SLOT( changeMAC() )); 44 connect(setMAC, SIGNAL( clicked() ), this, SLOT( changeMAC() ));
45 45
46} 46}
47 47
48/// checks and writes the MAC in the config file, if its format is OK 48/// checks and writes the MAC in the config file, if its format is OK
49void BluepingConfigWidget::changeMAC() { 49void BluepingConfigWidget::changeMAC() {
50 QString mac = editMAC->text(); 50 QString mac = editMAC->text();
51 QRegExp macPattern("[0-9A-Fa-f][0-9A-Fa-f]:[0-9A-Fa-f][0-9A-Fa-f]:[0-9A-Fa-f][0-9A-Fa-f]:[0-9A-Fa-f][0-9A-Fa-f]:[0-9A-Fa-f][0-9A-Fa-f]:[0-9A-Fa-f][0-9A-Fa-f]"); 51 QRegExp macPattern("[0-9A-Fa-f][0-9A-Fa-f]:[0-9A-Fa-f][0-9A-Fa-f]:[0-9A-Fa-f][0-9A-Fa-f]:[0-9A-Fa-f][0-9A-Fa-f]:[0-9A-Fa-f][0-9A-Fa-f]:[0-9A-Fa-f][0-9A-Fa-f]");
52 if ( (mac.length() == 17) && (macPattern.match(mac) == 0) ) 52 if ( (mac.length() == 17) && (macPattern.match(mac) == 0) )
53 { 53 {
54 m_config->writeEntry("mac", mac); 54 Config config("Security");
55 config.setGroup("BluepingPlugin");
56 config.writeEntry("mac", mac);
55 QMessageBox success( tr("MAC address saved!"), "<p>" + tr("Make sure that Bluetooth is turned on on the corresponding device when the Blueping plugin needs it.") + "</p>", 57 QMessageBox success( tr("MAC address saved!"), "<p>" + tr("Make sure that Bluetooth is turned on on the corresponding device when the Blueping plugin needs it.") + "</p>",
56 QMessageBox::Information, QMessageBox::Ok, QMessageBox::NoButton, QMessageBox::NoButton ); 58 QMessageBox::Information, QMessageBox::Ok, QMessageBox::NoButton, QMessageBox::NoButton );
57 success.exec(); 59 success.exec();
58 } else { 60 } else {
59 QMessageBox failure( tr("Please enter a valid MAC"), "<p>" + tr("Please separate the six pairs of digits of your MAC like this: 01:02:03:04:05:06") + tr("</p>"), 61 QMessageBox failure( tr("Please enter a valid MAC"), "<p>" + tr("Please separate the six pairs of digits of your MAC like this: 01:02:03:04:05:06") + tr("</p>"),
60 QMessageBox::Warning, QMessageBox::Ok, QMessageBox::NoButton, QMessageBox::NoButton ); 62 QMessageBox::Warning, QMessageBox::Ok, QMessageBox::NoButton, QMessageBox::NoButton );
61 failure.exec(); 63 failure.exec();
62 } 64 }
63} 65}
64 66
65/// deletes the m_config pointer 67/// deletes the m_config pointer
66BluepingConfigWidget::~BluepingConfigWidget() 68BluepingConfigWidget::~BluepingConfigWidget()
67{ 69{}
68 delete m_config;
69}
70 70
71// does nothing (there's a button to save the config) 71// does nothing (there's a button to save the config)
72void BluepingConfigWidget::writeConfig() 72void BluepingConfigWidget::writeConfig()
73{ 73{
74} 74}
diff --git a/noncore/securityplugins/blueping/bluepingConfigWidget.h b/noncore/securityplugins/blueping/bluepingConfigWidget.h
index bd1bec9..643c97f 100644
--- a/noncore/securityplugins/blueping/bluepingConfigWidget.h
+++ b/noncore/securityplugins/blueping/bluepingConfigWidget.h
@@ -41,19 +41,18 @@
41 41
42class BluepingConfigWidget : public Opie::Security::MultiauthConfigWidget { 42class BluepingConfigWidget : public Opie::Security::MultiauthConfigWidget {
43 43
44 Q_OBJECT 44 Q_OBJECT
45 45
46public: 46public:
47 BluepingConfigWidget(QWidget* parent, const char* name); 47 BluepingConfigWidget(QWidget* parent, const char* name);
48 virtual ~BluepingConfigWidget(); 48 virtual ~BluepingConfigWidget();
49 virtual void writeConfig(); 49 virtual void writeConfig();
50private: 50private:
51 QLineEdit *editMAC; 51 QLineEdit *editMAC;
52 QPushButton *setMAC; 52 QPushButton *setMAC;
53 Config *m_config;
54private slots: 53private slots:
55 void changeMAC(); 54 void changeMAC();
56 55
57}; 56};
58 57
59#endif // BLUEPINGCONFIGWIDGET_H 58#endif // BLUEPINGCONFIGWIDGET_H
diff --git a/noncore/securityplugins/notice/noticeConfigWidget.cpp b/noncore/securityplugins/notice/noticeConfigWidget.cpp
index e0468a7..02084f8 100644
--- a/noncore/securityplugins/notice/noticeConfigWidget.cpp
+++ b/noncore/securityplugins/notice/noticeConfigWidget.cpp
@@ -56,28 +56,26 @@ void NoticeConfigWidget::writeConfig()
56 56
57/// reset the notice text to the hard-coded example defaultNoticeText 57/// reset the notice text to the hard-coded example defaultNoticeText
58void NoticeConfigWidget::resetNotice() 58void NoticeConfigWidget::resetNotice()
59{ 59{
60 noticeMLE->setText(QObject::tr(defaultNoticeText)); 60 noticeMLE->setText(QObject::tr(defaultNoticeText));
61} 61}
62 62
63/// get the notice text from the config file (with true new lines) 63/// get the notice text from the config file (with true new lines)
64/** 64/**
65 * if no text has been defined yet returns defaultNoticeText 65 * if no text has been defined yet returns defaultNoticeText
66 */ 66 */
67QString NoticeConfigWidget::getNoticeText() { 67QString NoticeConfigWidget::getNoticeText() {
68 m_config = new Config("Security"); 68 Config config("Security");
69 m_config->setGroup("NoticePlugin"); 69 config.setGroup("NoticePlugin");
70 // Note: C++ processes '\' character, so we have to type \\\\ to mean \\ to QRegExp 70 // Note: C++ processes '\' character, so we have to type \\\\ to mean \\ to QRegExp
71 QString noticeText = m_config->readEntry("noticeText", QObject::tr(defaultNoticeText) ).replace( QRegExp("\\\\n"), "\n" ); 71 QString noticeText = config.readEntry("noticeText", QObject::tr(defaultNoticeText) ).replace( QRegExp("\\\\n"), "\n" );
72 delete m_config;
73 return noticeText; 72 return noticeText;
74} 73}
75 74
76/// set the notice text in our m_config config file (escaping new lines) 75/// set the notice text in our m_config config file (escaping new lines)
77void NoticeConfigWidget::setNoticeText(QString noticeText) { 76void NoticeConfigWidget::setNoticeText(QString noticeText) {
78 m_config = new Config("Security"); 77 Config config("Security");
79 m_config->setGroup("NoticePlugin"); 78 config.setGroup("NoticePlugin");
80 // since Config files do not allow true newlines, we replace them with litteral "\n" 79 // since Config files do not allow true newlines, we replace them with litteral "\n"
81 m_config->writeEntry("noticeText", noticeText.replace( QRegExp("\n"), "\\n" )); 80 config.writeEntry("noticeText", noticeText.replace( QRegExp("\n"), "\\n" ));
82 delete m_config;
83} 81}
diff --git a/noncore/securityplugins/notice/noticeplugin.cpp b/noncore/securityplugins/notice/noticeplugin.cpp
index 5617855..d3dc7a4 100644
--- a/noncore/securityplugins/notice/noticeplugin.cpp
+++ b/noncore/securityplugins/notice/noticeplugin.cpp
@@ -1,33 +1,29 @@
1#include "noticeplugin.h" 1#include "noticeplugin.h"
2 2
3#include <opie2/oapplication.h> 3#include <opie2/oapplication.h>
4 4
5#include <qmessagebox.h> 5#include <qmessagebox.h>
6#include <qregexp.h> 6#include <qregexp.h>
7 7
8using Opie::Security::MultiauthPluginObject; 8using Opie::Security::MultiauthPluginObject;
9using Opie::Security::MultiauthConfigWidget; 9using Opie::Security::MultiauthConfigWidget;
10 10
11/// creates and initializes the m_config Config object 11/// creates and initializes the m_config Config object
12NoticePlugin::NoticePlugin() : MultiauthPluginObject(), m_noticeW(0) { 12NoticePlugin::NoticePlugin() : MultiauthPluginObject(), m_noticeW(0) {
13 m_config = new Config("Security");
14 m_config->setGroup("NoticePlugin");
15} 13}
16 14
17/// deletes the m_config Config object and noticeW if necessary 15/// deletes the m_config Config object and noticeW if necessary
18NoticePlugin::~NoticePlugin() { 16NoticePlugin::~NoticePlugin() {
19 delete m_config; 17 delete m_noticeW;
20 if (m_noticeW != 0)
21 delete m_noticeW;
22} 18}
23 19
24/// Simply return its name (Notice plugin) 20/// Simply return its name (Notice plugin)
25QString NoticePlugin::pluginName() const { 21QString NoticePlugin::pluginName() const {
26 return "Notice plugin"; 22 return "Notice plugin";
27} 23}
28 24
29/// return the Notice widget configuration widget 25/// return the Notice widget configuration widget
30/** 26/**
31 * \return noticeW, the NoticeConfigWidget 27 * \return noticeW, the NoticeConfigWidget
32 */ 28 */
33MultiauthConfigWidget * NoticePlugin::configWidget(QWidget * parent) { 29MultiauthConfigWidget * NoticePlugin::configWidget(QWidget * parent) {
@@ -72,15 +68,17 @@ int NoticePlugin::authenticate() {
72 case QMessageBox::Yes: 68 case QMessageBox::Yes:
73 return MultiauthPluginObject::Success; 69 return MultiauthPluginObject::Success;
74 } 70 }
75 return 255; //should not be returned anyway 71 return 255; //should not be returned anyway
76} 72}
77 73
78/// get the notice text from our m_config config file (with true new lines) 74/// get the notice text from our m_config config file (with true new lines)
79/** 75/**
80 * if no text has been defined yet returns defaultNoticeText 76 * if no text has been defined yet returns defaultNoticeText
81 */ 77 */
82QString NoticePlugin::getNoticeText() { 78QString NoticePlugin::getNoticeText() {
83 // Note: C++ processes '\' character, so we have to type \\\\ to mean \\ to QRegExp 79 // Note: C++ processes '\' character, so we have to type \\\\ to mean \\ to QRegExp
84 return m_config->readEntry("noticeText", QObject::tr(defaultNoticeText)).replace( QRegExp("\\\\n"), "\n" ); 80 Config config("Security");
81 config.setGroup("NoticePlugin");
82 return config.readEntry("noticeText", QObject::tr(defaultNoticeText)).replace( QRegExp("\\\\n"), "\n" );
85} 83}
86 84
diff --git a/noncore/securityplugins/notice/noticeplugin.h b/noncore/securityplugins/notice/noticeplugin.h
index 2828f58..22b2322 100644
--- a/noncore/securityplugins/notice/noticeplugin.h
+++ b/noncore/securityplugins/notice/noticeplugin.h
@@ -48,17 +48,16 @@ class NoticePlugin : public QObject, public Opie::Security::MultiauthPluginObjec
48 Q_OBJECT; 48 Q_OBJECT;
49 49
50public: 50public:
51 NoticePlugin(); 51 NoticePlugin();
52 virtual ~NoticePlugin(); 52 virtual ~NoticePlugin();
53 int authenticate(); 53 int authenticate();
54 Opie::Security::MultiauthConfigWidget * configWidget(QWidget * parent); 54 Opie::Security::MultiauthConfigWidget * configWidget(QWidget * parent);
55 QString pixmapNameConfig() const; 55 QString pixmapNameConfig() const;
56 QString pixmapNameWidget() const; 56 QString pixmapNameWidget() const;
57 QString pluginName() const; 57 QString pluginName() const;
58private: 58private:
59 NoticeConfigWidget * m_noticeW; 59 NoticeConfigWidget * m_noticeW;
60 Config * m_config;
61 QString getNoticeText(); 60 QString getNoticeText();
62}; 61};
63 62
64#endif 63#endif