author | zecke <zecke> | 2004-12-20 22:21:55 (UTC) |
---|---|---|
committer | zecke <zecke> | 2004-12-20 22:21:55 (UTC) |
commit | 2be4d5bf420dc4aff71cf78601c095a96ed88c47 (patch) (unidiff) | |
tree | f8d053d475501c2230a2c65acc1bed091d39faf9 | |
parent | b15930cd03acafd9770bca26f3388817f1a4dcbf (diff) | |
download | opie-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
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 | ||
10 | using Opie::Security::MultiauthConfigWidget; | 10 | using Opie::Security::MultiauthConfigWidget; |
11 | 11 | ||
12 | BluepingConfigWidget::BluepingConfigWidget(QWidget* parent = 0, const char* name = "Blueping configuration widget") | 12 | BluepingConfigWidget::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 |
49 | void BluepingConfigWidget::changeMAC() { | 49 | void 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 |
66 | BluepingConfigWidget::~BluepingConfigWidget() | 68 | BluepingConfigWidget::~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) |
72 | void BluepingConfigWidget::writeConfig() | 72 | void 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 | ||
42 | class BluepingConfigWidget : public Opie::Security::MultiauthConfigWidget { | 42 | class BluepingConfigWidget : public Opie::Security::MultiauthConfigWidget { |
43 | 43 | ||
44 | Q_OBJECT | 44 | Q_OBJECT |
45 | 45 | ||
46 | public: | 46 | public: |
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(); |
50 | private: | 50 | private: |
51 | QLineEdit *editMAC; | 51 | QLineEdit *editMAC; |
52 | QPushButton *setMAC; | 52 | QPushButton *setMAC; |
53 | Config *m_config; | ||
54 | private slots: | 53 | private 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 |
58 | void NoticeConfigWidget::resetNotice() | 58 | void 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 | */ |
67 | QString NoticeConfigWidget::getNoticeText() { | 67 | QString 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) |
77 | void NoticeConfigWidget::setNoticeText(QString noticeText) { | 76 | void 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 | ||
8 | using Opie::Security::MultiauthPluginObject; | 8 | using Opie::Security::MultiauthPluginObject; |
9 | using Opie::Security::MultiauthConfigWidget; | 9 | using Opie::Security::MultiauthConfigWidget; |
10 | 10 | ||
11 | /// creates and initializes the m_config Config object | 11 | /// creates and initializes the m_config Config object |
12 | NoticePlugin::NoticePlugin() : MultiauthPluginObject(), m_noticeW(0) { | 12 | NoticePlugin::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 |
18 | NoticePlugin::~NoticePlugin() { | 16 | NoticePlugin::~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) |
25 | QString NoticePlugin::pluginName() const { | 21 | QString 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 | */ |
33 | MultiauthConfigWidget * NoticePlugin::configWidget(QWidget * parent) { | 29 | MultiauthConfigWidget * 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 | */ |
82 | QString NoticePlugin::getNoticeText() { | 78 | QString 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 | ||
50 | public: | 50 | public: |
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; |
58 | private: | 58 | private: |
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 |