summaryrefslogtreecommitdiff
authoralwin <alwin>2005-03-07 17:43:40 (UTC)
committer alwin <alwin>2005-03-07 17:43:40 (UTC)
commitb9b5ec22a5969c57a2e2b940faf42ae6f9fd74d2 (patch) (side-by-side diff)
tree4f93456e3f1d4bb9334bccf0e97c04c51d7b2133
parent5ab00b78b199b1a03d3f27faa8b1dcffd9a86ff7 (diff)
downloadopie-b9b5ec22a5969c57a2e2b940faf42ae6f9fd74d2.zip
opie-b9b5ec22a5969c57a2e2b940faf42ae6f9fd74d2.tar.gz
opie-b9b5ec22a5969c57a2e2b940faf42ae6f9fd74d2.tar.bz2
let users set hostname via dialog. the same name will set as
IRDA name so user can give their personal device a personal name. ;) ToDO: fixup init scripts in OE so hostname will set on startup into IRDA name
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/networksettings/mainwindow/mainwindow.ui104
-rw-r--r--noncore/settings/networksettings/mainwindow/mainwindowimp.cpp59
-rw-r--r--noncore/settings/networksettings/mainwindow/mainwindowimp.h13
3 files changed, 174 insertions, 2 deletions
diff --git a/noncore/settings/networksettings/mainwindow/mainwindow.ui b/noncore/settings/networksettings/mainwindow/mainwindow.ui
index a730dd5..185b345 100644
--- a/noncore/settings/networksettings/mainwindow/mainwindow.ui
+++ b/noncore/settings/networksettings/mainwindow/mainwindow.ui
@@ -13,3 +13,3 @@
<y>0</y>
- <width>240</width>
+ <width>340</width>
<height>289</height>
@@ -43,2 +43,5 @@
</property>
+ <property>
+ <name>layoutSpacing</name>
+ </property>
<widget>
@@ -434,2 +437,92 @@
</widget>
+ <widget>
+ <class>QWidget</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>devicenametab</cstring>
+ </property>
+ <attribute>
+ <name>title</name>
+ <string>Device name</string>
+ </attribute>
+ <vbox>
+ <property stdset="1">
+ <name>margin</name>
+ <number>11</number>
+ </property>
+ <property stdset="1">
+ <name>spacing</name>
+ <number>6</number>
+ </property>
+ <widget>
+ <class>QLabel</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>m_NameHead</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>&lt;b&gt;Name of the device&lt;/b&gt;</string>
+ </property>
+ </widget>
+ <widget>
+ <class>QLineEdit</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>m_Nameinput</cstring>
+ </property>
+ </widget>
+ <widget>
+ <class>QPushButton</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>m_setButton</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>Set value</string>
+ </property>
+ </widget>
+ <widget>
+ <class>QLabel</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>m_Infolabel</cstring>
+ </property>
+ <property stdset="1">
+ <name>sizePolicy</name>
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>3</vsizetype>
+ </sizepolicy>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>The name here is that one your device identifying with on
+console or infrared.</string>
+ </property>
+ </widget>
+ <spacer>
+ <property>
+ <name>name</name>
+ <cstring>Spacer5</cstring>
+ </property>
+ <property stdset="1">
+ <name>orientation</name>
+ <enum>Vertical</enum>
+ </property>
+ <property stdset="1">
+ <name>sizeType</name>
+ <enum>Expanding</enum>
+ </property>
+ <property>
+ <name>sizeHint</name>
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </vbox>
+ </widget>
</widget>
@@ -437,2 +530,11 @@
</widget>
+<connections>
+ <connection>
+ <sender>m_setButton</sender>
+ <signal>clicked()</signal>
+ <receiver>MainWindow</receiver>
+ <slot>setHostname()</slot>
+ </connection>
+ <slot access="protected">setHostname()</slot>
+</connections>
<tabstops>
diff --git a/noncore/settings/networksettings/mainwindow/mainwindowimp.cpp b/noncore/settings/networksettings/mainwindow/mainwindowimp.cpp
index f83e370..0a3312c 100644
--- a/noncore/settings/networksettings/mainwindow/mainwindowimp.cpp
+++ b/noncore/settings/networksettings/mainwindow/mainwindowimp.cpp
@@ -10,2 +10,3 @@
#include <opie2/odebug.h>
+#include <opie2/oprocess.h>
#include <qpe/applnk.h>
@@ -26,2 +27,3 @@
#include <qmessagebox.h>
+#include <qtextstream.h>
@@ -46,2 +48,8 @@
+// is this always right?
+#define _HOSTFILE "/etc/hostname"
+#define _IRDANAME "/proc/sys/net/irda/devname"
+
+using namespace Opie::Core;
+
MainWindowImp::MainWindowImp(QWidget *parent, const char *name, WFlags) : MainWindow(parent, name, Qt::WStyle_ContextHelp), advancedUserMode(true), scheme(DEFAULT_SCHEME)
@@ -124,2 +132,3 @@ MainWindowImp::MainWindowImp(QWidget *parent, const char *name, WFlags) : MainWi
makeChannel();
+ initHostname();
}
@@ -716 +725,51 @@ void MainWindowImp::receive(const QCString &msg, const QByteArray &arg)
}
+
+void MainWindowImp::setHostname()
+{
+ QFile f(_HOSTFILE);
+
+ OProcess*h = new OProcess;
+ _procTemp="";
+ *h << "hostname" << m_Nameinput->text();
+ connect(h,SIGNAL(receivedStderr(Opie::Core::OProcess*,char*,int)),this,SLOT(slotHostname(Opie::Core::OProcess*,char*,int)));
+ h->start(OProcess::Block,OProcess::Stderr);
+ odebug << "Got " << _procTemp << " - " << h->exitStatus() << oendl;
+ _procTemp="";
+ delete h;
+
+ if (f.open(IO_Truncate|IO_WriteOnly))
+ {
+ QTextStream s(&f);
+ s << m_Nameinput->text();
+ }
+ f.close();
+ f.setName(_IRDANAME);
+ if (f.open(IO_WriteOnly))
+ {
+ QTextStream s(&f);
+ s << m_Nameinput->text();
+ }
+}
+
+void MainWindowImp::initHostname()
+{
+ OProcess h;
+ _procTemp="";
+
+ h << "hostname";
+ connect(&h,SIGNAL(receivedStdout(Opie::Core::OProcess*,char*,int)),this,SLOT(slotHostname(Opie::Core::OProcess*,char*,int)));
+ h.start(OProcess::Block,OProcess::AllOutput);
+ odebug << "Got " << _procTemp <<oendl;
+ m_Nameinput->setText(_procTemp);
+ _procTemp="";
+}
+
+void MainWindowImp::slotHostname(Opie::Core::OProcess *proc, char *buffer, int buflen)
+{
+ if (buflen < 1 || buffer==0) return;
+ char*_t = new char[buflen+1];
+ ::memset(_t,0,buflen+1);
+ ::memcpy(_t,buffer,buflen);
+ _procTemp+=_t;
+ delete[]_t;
+}
diff --git a/noncore/settings/networksettings/mainwindow/mainwindowimp.h b/noncore/settings/networksettings/mainwindow/mainwindowimp.h
index f211d6e..da1bb8f 100644
--- a/noncore/settings/networksettings/mainwindow/mainwindowimp.h
+++ b/noncore/settings/networksettings/mainwindow/mainwindowimp.h
@@ -20,2 +20,7 @@ class KLibLoader;
+namespace Opie {
+namespace Core {
+ class OProcess;
+}
+}
@@ -48,2 +53,6 @@ private slots:
+protected slots:
+ virtual void setHostname();
+ virtual void slotHostname(Opie::Core::OProcess *proc, char *buffer, int buflen);
+
private:
@@ -51,5 +60,6 @@ private:
void loadModules(const QString &path);
+ void initHostname();
Module* loadPlugin(const QString &pluginFileName,
- const QString &resolveString = "create_plugin");
+ const QString &resolveString = "create_plugin");
@@ -68,2 +78,3 @@ private:
QString scheme;
+ QString _procTemp;
#ifndef QWS