summaryrefslogtreecommitdiff
path: root/noncore
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 /noncore
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 (limited to 'noncore') (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
@@ -11,7 +11,7 @@
<rect>
<x>0</x>
<y>0</y>
- <width>240</width>
+ <width>340</width>
<height>289</height>
</rect>
</property>
@@ -41,6 +41,9 @@
<property>
<name>layoutMargin</name>
</property>
+ <property>
+ <name>layoutSpacing</name>
+ </property>
<widget>
<class>QWidget</class>
<property stdset="1">
@@ -432,9 +435,108 @@
</widget>
</grid>
</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>
</vbox>
</widget>
+<connections>
+ <connection>
+ <sender>m_setButton</sender>
+ <signal>clicked()</signal>
+ <receiver>MainWindow</receiver>
+ <slot>setHostname()</slot>
+ </connection>
+ <slot access="protected">setHostname()</slot>
+</connections>
<tabstops>
<tabstop>tabWidget</tabstop>
<tabstop>connectionList</tabstop>
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
@@ -8,6 +8,7 @@
/* OPIE */
#include <opie2/odebug.h>
+#include <opie2/oprocess.h>
#include <qpe/applnk.h>
#include <qpe/qcopenvelope_qws.h>
#include <qpe/qpeapplication.h>
@@ -24,6 +25,7 @@
#include <qlabel.h>
#include <qtabwidget.h> // in order to disable the profiles tab
#include <qmessagebox.h>
+#include <qtextstream.h>
#if QT_VERSION < 0x030000
@@ -44,6 +46,12 @@
#define DEFAULT_SCHEME "/var/lib/pcmcia/scheme"
#define _PROCNETDEV "/proc/net/dev"
+// 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)
{
connect(addConnectionButton, SIGNAL(clicked()), this, SLOT(addClicked()));
@@ -122,6 +130,7 @@ MainWindowImp::MainWindowImp(QWidget *parent, const char *name, WFlags) : MainWi
file.close();
}
makeChannel();
+ initHostname();
}
/**
@@ -714,3 +723,53 @@ void MainWindowImp::receive(const QCString &msg, const QByteArray &arg)
if (found) QPEApplication::setKeepRunning();
else odebug << "Huh what do ya want" << oendl;
}
+
+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
@@ -18,6 +18,11 @@ class KLibLoader;
#define QLibrary KLibrary
#endif
+namespace Opie {
+namespace Core {
+ class OProcess;
+}
+}
class MainWindowImp : public MainWindow {
Q_OBJECT
@@ -46,12 +51,17 @@ private slots:
void receive (const QCString &, const QByteArray &);
+protected slots:
+ virtual void setHostname();
+ virtual void slotHostname(Opie::Core::OProcess *proc, char *buffer, int buflen);
+
private:
void makeChannel();
void loadModules(const QString &path);
+ void initHostname();
Module* loadPlugin(const QString &pluginFileName,
- const QString &resolveString = "create_plugin");
+ const QString &resolveString = "create_plugin");
// For our local list of names
QMap<QString, Interface*> interfaceNames;
@@ -66,6 +76,7 @@ private:
bool advancedUserMode;
QString scheme;
+ QString _procTemp;
#ifndef QWS
KLibLoader *loader;
#endif