author | alwin <alwin> | 2005-03-07 17:43:40 (UTC) |
---|---|---|
committer | alwin <alwin> | 2005-03-07 17:43:40 (UTC) |
commit | b9b5ec22a5969c57a2e2b940faf42ae6f9fd74d2 (patch) (side-by-side diff) | |
tree | 4f93456e3f1d4bb9334bccf0e97c04c51d7b2133 | |
parent | 5ab00b78b199b1a03d3f27faa8b1dcffd9a86ff7 (diff) | |
download | opie-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
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><b>Name of the device</b></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 |