summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--apps/Applications/opie-smb.desktop6
-rw-r--r--core/applets/vmemo/vmemo.h6
-rw-r--r--core/apps/textedit/textedit.cpp0
-rw-r--r--core/pim/datebook/dateentry.ui360
-rw-r--r--inputmethods/dasher/opie-dasher-english.control2
-rw-r--r--noncore/applets/volumeapplet2/volumeapplet.cpp52
-rw-r--r--noncore/applets/volumeapplet2/volumeapplet.h15
-rw-r--r--noncore/apps/advancedfm/advancedfmData.cpp5
-rw-r--r--noncore/apps/advancedfm/advancedfmMenu.cpp18
-rw-r--r--noncore/net/opie-smb/config.in4
-rw-r--r--noncore/net/opie-smb/main.cpp6
-rw-r--r--noncore/net/opie-smb/opie-smb.control12
-rw-r--r--noncore/net/opie-smb/opie-smb.pro18
-rw-r--r--noncore/net/opie-smb/qsmb.cpp402
-rw-r--r--noncore/net/opie-smb/qsmb.h39
-rw-r--r--noncore/net/opie-smb/qsmbbase.cpp146
-rw-r--r--noncore/net/opie-smb/qsmbbase.h62
-rw-r--r--noncore/net/opie-smb/qsmbbase.ui298
-rw-r--r--noncore/settings/netsystemtime/formattabwidget.cpp0
-rw-r--r--noncore/tools/calc2/binary/binary.pro28
-rw-r--r--noncore/tools/calc2/binary/binaryfactory.cpp2
-rw-r--r--noncore/tools/calc2/binary/binaryfactory.h4
-rw-r--r--noncore/tools/calc2/binary/binaryimpl.cpp2
-rw-r--r--noncore/tools/calc2/binary/binaryimpl.h2
-rw-r--r--noncore/tools/calc2/calc.cpp1
-rw-r--r--noncore/tools/calc2/simple/simple.pro22
-rw-r--r--noncore/tools/calc2/simple/simplefactory.cpp2
-rw-r--r--noncore/tools/calc2/simple/simplefactory.h4
-rw-r--r--noncore/tools/calc2/simple/simpleimpl.cpp2
-rw-r--r--noncore/tools/calc2/simple/simpleimpl.h4
-rw-r--r--packages5
-rw-r--r--pics/opie-smb/opie-smb.pngbin0 -> 1833 bytes
32 files changed, 1422 insertions, 107 deletions
diff --git a/apps/Applications/opie-smb.desktop b/apps/Applications/opie-smb.desktop
new file mode 100644
index 0000000..f3fe239
--- a/dev/null
+++ b/apps/Applications/opie-smb.desktop
@@ -0,0 +1,6 @@
+[Desktop Entry]
+Comment=Samba Client Utility
+Exec=opie-smb
+Icon=opie-smb/opie-smb
+Type=Application
+Name=opie-smb
diff --git a/core/applets/vmemo/vmemo.h b/core/applets/vmemo/vmemo.h
index 1bd735f..806fe0e 100644
--- a/core/applets/vmemo/vmemo.h
+++ b/core/applets/vmemo/vmemo.h
@@ -31,3 +31,5 @@ class VMemo : public QWidget
Q_OBJECT
+
public:
+
VMemo( QWidget *parent, const char *name = NULL);
@@ -41,3 +43,5 @@ public:
bool usingIcon, useADPCM;
+
public slots:
+
bool record();
@@ -49,3 +53,5 @@ public slots:
void timerBreak();
+
private:
+
bool useAlerts;
diff --git a/core/apps/textedit/textedit.cpp b/core/apps/textedit/textedit.cpp
index ca760bb..759e440 100644
--- a/core/apps/textedit/textedit.cpp
+++ b/core/apps/textedit/textedit.cpp
diff --git a/core/pim/datebook/dateentry.ui b/core/pim/datebook/dateentry.ui
index f776911..6e4ada1 100644
--- a/core/pim/datebook/dateentry.ui
+++ b/core/pim/datebook/dateentry.ui
@@ -34,4 +34,4 @@
<y>0</y>
- <width>242</width>
- <height>339</height>
+ <width>286</width>
+ <height>396</height>
</rect>
@@ -42,2 +42,8 @@
</property>
+ <property>
+ <name>layoutMargin</name>
+ </property>
+ <property>
+ <name>layoutSpacing</name>
+ </property>
<grid>
@@ -49,24 +55,35 @@
<name>spacing</name>
- <number>0</number>
+ <number>2</number>
</property>
- <widget row="1" column="0" >
- <class>QLabel</class>
+ <widget row="0" column="0" >
+ <class>QLayoutWidget</class>
<property stdset="1">
<name>name</name>
- <cstring>TextLabel2</cstring>
+ <cstring>Layout19</cstring>
</property>
+ <vbox>
<property stdset="1">
- <name>frameShape</name>
- <enum>MShape</enum>
+ <name>margin</name>
+ <number>0</number>
</property>
<property stdset="1">
- <name>frameShadow</name>
- <enum>MShadow</enum>
+ <name>spacing</name>
+ <number>6</number>
</property>
+ <widget>
+ <class>QLayoutWidget</class>
<property stdset="1">
- <name>text</name>
- <string>Location</string>
+ <name>name</name>
+ <cstring>Layout1</cstring>
</property>
- </widget>
- <widget row="2" column="0" >
+ <hbox>
+ <property stdset="1">
+ <name>margin</name>
+ <number>0</number>
+ </property>
+ <property stdset="1">
+ <name>spacing</name>
+ <number>6</number>
+ </property>
+ <widget>
<class>QLabel</class>
@@ -74,3 +91,3 @@
<name>name</name>
- <cstring>TextLabel2_2</cstring>
+ <cstring>TextLabel1</cstring>
</property>
@@ -78,10 +95,6 @@
<name>text</name>
- <string>Category</string>
- </property>
- <property>
- <name>buddy</name>
- <cstring>comboPriority</cstring>
+ <string>Description </string>
</property>
</widget>
- <widget row="0" column="1" rowspan="1" colspan="3" >
+ <widget>
<class>QComboBox</class>
@@ -141,3 +154,20 @@
</widget>
- <widget row="0" column="0" >
+ </hbox>
+ </widget>
+ <widget>
+ <class>QLayoutWidget</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>Layout2</cstring>
+ </property>
+ <hbox>
+ <property stdset="1">
+ <name>margin</name>
+ <number>0</number>
+ </property>
+ <property stdset="1">
+ <name>spacing</name>
+ <number>6</number>
+ </property>
+ <widget>
<class>QLabel</class>
@@ -145,3 +175,11 @@
<name>name</name>
- <cstring>TextLabel1</cstring>
+ <cstring>TextLabel2</cstring>
+ </property>
+ <property stdset="1">
+ <name>frameShape</name>
+ <enum>MShape</enum>
+ </property>
+ <property stdset="1">
+ <name>frameShadow</name>
+ <enum>MShadow</enum>
</property>
@@ -149,6 +187,6 @@
<name>text</name>
- <string>Description </string>
+ <string>Location</string>
</property>
</widget>
- <widget row="1" column="1" rowspan="1" colspan="3" >
+ <widget>
<class>QComboBox</class>
@@ -196,3 +234,35 @@
</widget>
- <widget row="2" column="1" rowspan="1" colspan="3" >
+ </hbox>
+ </widget>
+ <widget>
+ <class>QLayoutWidget</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>Layout3</cstring>
+ </property>
+ <hbox>
+ <property stdset="1">
+ <name>margin</name>
+ <number>0</number>
+ </property>
+ <property stdset="1">
+ <name>spacing</name>
+ <number>6</number>
+ </property>
+ <widget>
+ <class>QLabel</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>TextLabel2_2</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>Category</string>
+ </property>
+ <property>
+ <name>buddy</name>
+ <cstring>comboPriority</cstring>
+ </property>
+ </widget>
+ <widget>
<class>CategorySelect</class>
@@ -210,3 +280,35 @@
</widget>
- <widget row="3" column="0" rowspan="2" colspan="1" >
+ </hbox>
+ </widget>
+ <widget>
+ <class>QLayoutWidget</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>Layout18</cstring>
+ </property>
+ <hbox>
+ <property stdset="1">
+ <name>margin</name>
+ <number>0</number>
+ </property>
+ <property stdset="1">
+ <name>spacing</name>
+ <number>6</number>
+ </property>
+ <widget>
+ <class>QLayoutWidget</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>Layout17</cstring>
+ </property>
+ <vbox>
+ <property stdset="1">
+ <name>margin</name>
+ <number>0</number>
+ </property>
+ <property stdset="1">
+ <name>spacing</name>
+ <number>6</number>
+ </property>
+ <widget>
<class>QLabel</class>
@@ -221,3 +323,20 @@
</widget>
- <widget row="3" column="1" >
+ </vbox>
+ </widget>
+ <widget>
+ <class>QLayoutWidget</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>Layout4</cstring>
+ </property>
+ <vbox>
+ <property stdset="1">
+ <name>margin</name>
+ <number>0</number>
+ </property>
+ <property stdset="1">
+ <name>spacing</name>
+ <number>6</number>
+ </property>
+ <widget>
<class>QPushButton</class>
@@ -246,3 +365,3 @@
</widget>
- <widget row="4" column="1" >
+ <widget>
<class>QLineEdit</class>
@@ -281,6 +400,8 @@
</widget>
- <spacer row="3" column="2" rowspan="2" colspan="1" >
+ </vbox>
+ </widget>
+ <spacer>
<property>
<name>name</name>
- <cstring>Spacer1_2</cstring>
+ <cstring>Spacer12</cstring>
</property>
@@ -302,17 +423,18 @@
</spacer>
- <widget row="5" column="1" rowspan="1" colspan="3" >
- <class>TimePicker</class>
+ <widget>
+ <class>QLayoutWidget</class>
<property stdset="1">
<name>name</name>
- <cstring>timePickerStart</cstring>
+ <cstring>Layout5</cstring>
</property>
+ <vbox>
<property stdset="1">
- <name>sizePolicy</name>
- <sizepolicy>
- <hsizetype>3</hsizetype>
- <vsizetype>1</vsizetype>
- </sizepolicy>
+ <name>margin</name>
+ <number>0</number>
</property>
- </widget>
- <widget row="3" column="3" >
+ <property stdset="1">
+ <name>spacing</name>
+ <number>6</number>
+ </property>
+ <widget>
<class>QPushButton</class>
@@ -341,3 +463,3 @@
</widget>
- <widget row="4" column="3" >
+ <widget>
<class>QLineEdit</class>
@@ -376,3 +498,22 @@
</widget>
- <widget row="5" column="0" >
+ </vbox>
+ </widget>
+ </hbox>
+ </widget>
+ <widget>
+ <class>QLayoutWidget</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>Layout7</cstring>
+ </property>
+ <hbox>
+ <property stdset="1">
+ <name>margin</name>
+ <number>0</number>
+ </property>
+ <property stdset="1">
+ <name>spacing</name>
+ <number>6</number>
+ </property>
+ <widget>
<class>QLabel</class>
@@ -387,3 +528,19 @@
</widget>
- <widget row="6" column="0" >
+ <widget>
+ <class>TimePicker</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>timePickerStart</cstring>
+ </property>
+ <property stdset="1">
+ <name>sizePolicy</name>
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>1</vsizetype>
+ </sizepolicy>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget>
<class>QCheckBox</class>
@@ -398,3 +555,18 @@
</widget>
- <widget row="7" column="0" >
+ <widget>
+ <class>QLayoutWidget</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>Layout8</cstring>
+ </property>
+ <hbox>
+ <property stdset="1">
+ <name>margin</name>
+ <number>0</number>
+ </property>
+ <property stdset="1">
+ <name>spacing</name>
+ <number>6</number>
+ </property>
+ <widget>
<class>QLabel</class>
@@ -409,3 +581,3 @@
</widget>
- <widget row="7" column="1" rowspan="1" colspan="3" >
+ <widget>
<class>TimeZoneSelector</class>
@@ -423,3 +595,23 @@
</widget>
- <widget row="8" column="0" >
+ </hbox>
+ </widget>
+ <widget>
+ <class>QLayoutWidget</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>Layout9</cstring>
+ </property>
+ <property>
+ <name>layoutSpacing</name>
+ </property>
+ <hbox>
+ <property stdset="1">
+ <name>margin</name>
+ <number>0</number>
+ </property>
+ <property stdset="1">
+ <name>spacing</name>
+ <number>1</number>
+ </property>
+ <widget>
<class>QCheckBox</class>
@@ -446,3 +638,3 @@
</widget>
- <widget row="8" column="1" rowspan="1" colspan="2" >
+ <widget>
<class>QSpinBox</class>
@@ -458,3 +650,3 @@
<name>suffix</name>
- <string> minutes</string>
+ <string></string>
</property>
@@ -470,3 +662,3 @@
<name>lineStep</name>
- <number>5</number>
+ <number>1</number>
</property>
@@ -477,3 +669,36 @@
</widget>
- <widget row="8" column="3" >
+ <widget>
+ <class>QComboBox</class>
+ <item>
+ <property>
+ <name>text</name>
+ <string>minutes</string>
+ </property>
+ </item>
+ <item>
+ <property>
+ <name>text</name>
+ <string>hours</string>
+ </property>
+ </item>
+ <item>
+ <property>
+ <name>text</name>
+ <string>days</string>
+ </property>
+ </item>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>ComboInterval</cstring>
+ </property>
+ <property stdset="1">
+ <name>enabled</name>
+ <bool>false</bool>
+ </property>
+ <property stdset="1">
+ <name>currentItem</name>
+ <number>0</number>
+ </property>
+ </widget>
+ <widget>
<class>QComboBox</class>
@@ -500,3 +725,20 @@
</widget>
- <widget row="9" column="0" >
+ </hbox>
+ </widget>
+ <widget>
+ <class>QLayoutWidget</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>Layout11</cstring>
+ </property>
+ <hbox>
+ <property stdset="1">
+ <name>margin</name>
+ <number>0</number>
+ </property>
+ <property stdset="1">
+ <name>spacing</name>
+ <number>6</number>
+ </property>
+ <widget>
<class>QLabel</class>
@@ -511,3 +753,3 @@
</widget>
- <widget row="9" column="1" rowspan="1" colspan="3" >
+ <widget>
<class>QToolButton</class>
@@ -533,3 +775,5 @@
</widget>
- <widget row="10" column="0" rowspan="1" colspan="4" >
+ </hbox>
+ </widget>
+ <widget>
<class>QToolButton</class>
@@ -544,2 +788,4 @@
</widget>
+ </vbox>
+ </widget>
</grid>
@@ -649,2 +895,8 @@
</connection>
+ <connection>
+ <sender>checkAlarm</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>ComboInterval</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
<slot access="public">endDateChanged( const QString &amp; )</slot>
diff --git a/inputmethods/dasher/opie-dasher-english.control b/inputmethods/dasher/opie-dasher-english.control
index 180f121..286b392 100644
--- a/inputmethods/dasher/opie-dasher-english.control
+++ b/inputmethods/dasher/opie-dasher-english.control
@@ -7,3 +7,3 @@ Architecture: arm
Version: $QPE_VERSION$EXTRAVERSION
-Depends: opie-dasher
+Depends: opie-dasher libexpat0
Description: Dasher text input method
diff --git a/noncore/applets/volumeapplet2/volumeapplet.cpp b/noncore/applets/volumeapplet2/volumeapplet.cpp
index 2f61f48..2122007 100644
--- a/noncore/applets/volumeapplet2/volumeapplet.cpp
+++ b/noncore/applets/volumeapplet2/volumeapplet.cpp
@@ -40,2 +40,3 @@ _;:, .> :=|. This program is free software; you can
#include <qpe/applnk.h>
+#include <qpe/qpeapplication.h>
@@ -90,3 +91,4 @@ void VolumeAppletControl::build()
- OMixerInterface* mixer = new OMixerInterface( this, "/dev/mixer" );
+// OMixerInterface*
+ mixer = new OMixerInterface( this, "/dev/mixer" );
@@ -99,4 +101,7 @@ void VolumeAppletControl::build()
{
- odebug << "OSSDEMO: Mixer has channel " << *it << "" << oendl;
- odebug << "OSSDEMO: +--- volume " << ( mixer->volume( *it ) & 0xff )
+ if((*it) == mixer->volume( "Vol")) {
+ m_vol_percent=mixer->volume( *it ) >> 8;
+ }
+ owarn << "OSSDEMO: Mixer has channel " << *it << "" << oendl;
+ owarn << "OSSDEMO: +--- volume " << ( mixer->volume( *it ) & 0xff )
<< " (left) | " << ( mixer->volume( *it ) >> 8 ) << " (right)" << oendl;
@@ -113,2 +118,12 @@ VolumeAppletControl::~VolumeAppletControl()
+int VolumeAppletControl::volPercent ( ) const
+{
+ return m_vol_percent;
+}
+
+bool VolumeAppletControl::volMuted ( ) const
+{
+ return m_vol_muted;
+}
+
@@ -130,3 +145,4 @@ QSize VolumeAppletControl::sizeHint() const
{
- return QSize( 200, 200 ); //QFrame::sizeHint();
+ int wd = QPEApplication::desktop()->width();
+ return QSize( wd, 200 ); //QFrame::sizeHint();
}
@@ -137,5 +153,5 @@ VolumeApplet::VolumeApplet( QWidget *parent, const char *name )
{
- setFixedHeight( AppLnk::smallIconSize() );
+ setFixedHeight( AppLnk::smallIconSize() +4);
setFixedWidth( AppLnk::smallIconSize() );
- _pixmap = Opie::Core::OResource::loadPixmap( "volume", Opie::Core::OResource::SmallIcon );
+ _pixmap = new QPixmap (Opie::Core::OResource::loadPixmap( "volume", Opie::Core::OResource::SmallIcon ));
_control = new VolumeAppletControl( this, "control" );
@@ -158,3 +174,25 @@ void VolumeApplet::paintEvent( QPaintEvent* )
QPainter p(this);
- p.drawPixmap(0, 2, _pixmap );
+
+ p. drawPixmap ( (width()- _pixmap->width())/2, QMAX( (height()-4-_pixmap->height() )/2, 1), *_pixmap );
+ p. setPen ( darkGray );
+ p. drawRect ( 1, height() - 4, width() - 2, 4 );
+
+ OMixerInterface* mixer = new OMixerInterface( this, "/dev/mixer" );
+
+ int volPercent = mixer->volume( "Vol" ) >> 8;
+
+ int pixelsWide = volPercent * ( width() - 4 ) / 100;
+ p. fillRect ( 2, height() - 3, pixelsWide, 2, red );
+ p. fillRect ( pixelsWide + 2, height() - 3, width() - 4 - pixelsWide, 2, lightGray );
+
+// if ( _control-> volMuted ( )) {
+// p. setPen ( red );
+// p. drawLine ( 1, 2, width() - 2, height() - 5 );
+// p. drawLine ( 1, 3, width() - 2, height() - 4 );
+// p. drawLine ( width() - 2, 2, 1, height() - 5 );
+// p. drawLine ( width() - 2, 3, 1, height() - 4 );
+// }
+
+// QPainter p(this);
+ // p.drawPixmap(0, 2, _pixmap );
}
diff --git a/noncore/applets/volumeapplet2/volumeapplet.h b/noncore/applets/volumeapplet2/volumeapplet.h
index c1f1a3a..953c305 100644
--- a/noncore/applets/volumeapplet2/volumeapplet.h
+++ b/noncore/applets/volumeapplet2/volumeapplet.h
@@ -34,2 +34,3 @@
#include <opie2/otaskbarapplet.h>
+#include <opie2/osoundsystem.h>
#include <qframe.h>
@@ -38,2 +39,3 @@
#include <qpixmap.h>
+//using namespace Opie::MM;
@@ -42,3 +44,3 @@ namespace Opie
namespace Ui { class OLedBox; }
- namespace MM { class OMixerInterface; }
+// namespace MM { class OMixerInterface; }
}
@@ -71,2 +73,9 @@ class VolumeAppletControl : public QFrame
~VolumeAppletControl();
+ bool volMuted() const;
+ int volPercent() const;
+
+ int m_vol_percent;
+ bool m_vol_muted;
+
+ Opie::MM::OMixerInterface* mixer;
@@ -80,4 +89,4 @@ class VolumeAppletControl : public QFrame
private:
- QGridLayout* l;
+ QGridLayout* l;
};
@@ -98,3 +107,3 @@ class VolumeApplet : public Opie::Ui::OTaskbarApplet
VolumeAppletControl* _control;
- QPixmap _pixmap;
+ QPixmap* _pixmap;
};
diff --git a/noncore/apps/advancedfm/advancedfmData.cpp b/noncore/apps/advancedfm/advancedfmData.cpp
index feda198..95e619b 100644
--- a/noncore/apps/advancedfm/advancedfmData.cpp
+++ b/noncore/apps/advancedfm/advancedfmData.cpp
@@ -24,2 +24,3 @@ using namespace Opie::Ui;
/* QT */
+#include <qframe.h>
#include <qlayout.h>
@@ -39,2 +40,6 @@ void AdvancedFm::init() {
+// QFrame* frame = new QFrame(this);
+// setCentralWidget(frame);
+// QVBoxLayout *layout = new QVBoxLayout( frame );
+
QVBoxLayout *layout = new QVBoxLayout( this );
diff --git a/noncore/apps/advancedfm/advancedfmMenu.cpp b/noncore/apps/advancedfm/advancedfmMenu.cpp
index 80324eb..ed280aa 100644
--- a/noncore/apps/advancedfm/advancedfmMenu.cpp
+++ b/noncore/apps/advancedfm/advancedfmMenu.cpp
@@ -658,3 +658,3 @@ void AdvancedFm::fileStatus() {
curFile = CurrentView()->currentItem()->text(0);
-
+ if(QFileInfo("/usr/bin/stat").exists()) {
QStringList command;
@@ -663,3 +663,2 @@ void AdvancedFm::fileStatus() {
command << "stat -l "+ curFile;
-
Output *outDlg;
@@ -667,2 +666,17 @@ void AdvancedFm::fileStatus() {
QPEApplication::execDialog( outDlg );
+ } else {
+/* struct stat buf;
+ stat( curFile.local8bit(), &buf);
+
+ st_dev dev;
+ st_uid uid;
+ st_gid gid;
+ st_size size;
+ st_atime atime;
+ st_mtime mtime;
+ st_ctime ctime;
+ st_mode mode;
+*/
+ }
+
qApp->processEvents();
diff --git a/noncore/net/opie-smb/config.in b/noncore/net/opie-smb/config.in
new file mode 100644
index 0000000..4ff78fd
--- a/dev/null
+++ b/noncore/net/opie-smb/config.in
@@ -0,0 +1,4 @@
+ config OPIESMB
+ boolean "opie-smb (samba front end client for Opie)"
+ default "n"
+ depends ( LIBQPE || LIBQPE-X11 ) && LIBOPIE2CORE
diff --git a/noncore/net/opie-smb/main.cpp b/noncore/net/opie-smb/main.cpp
new file mode 100644
index 0000000..5fae972
--- a/dev/null
+++ b/noncore/net/opie-smb/main.cpp
@@ -0,0 +1,6 @@
+#include "qsmb.h"
+#include <opie2/oapplicationfactory.h>
+using namespace Opie::Core;
+OPIE_EXPORT_APP( OApplicationFactory<Qsmb> )
+
+
diff --git a/noncore/net/opie-smb/opie-smb.control b/noncore/net/opie-smb/opie-smb.control
new file mode 100644
index 0000000..ce5c6bf
--- a/dev/null
+++ b/noncore/net/opie-smb/opie-smb.control
@@ -0,0 +1,12 @@
+Package: smbclient
+Version: 1.0
+Architecture: arm
+Arch: arm
+Maintainer: Kurt Korbatits (support@midget.net.au)
+Section: Network
+Priority: optional
+Description: Gui front end for samba utilities.
+Source:
+Depends: smbclient
+
+
diff --git a/noncore/net/opie-smb/opie-smb.pro b/noncore/net/opie-smb/opie-smb.pro
new file mode 100644
index 0000000..90f9980
--- a/dev/null
+++ b/noncore/net/opie-smb/opie-smb.pro
@@ -0,0 +1,18 @@
+TEMPLATE = app
+CONFIG += qte warn_on quickapp debug
+HEADERS = qsmb.h
+SOURCES = main.cpp qsmb.cpp
+INCLUDEPATH += $(OPIEDIR)/include
+DEPENDPATH += $(OPIEDIR)/include
+DESTDIR = $(OPIEDIR)/bin
+LIBS += -lqpe -lopiecore2 -lopieui2 -lpthread
+
+# INCLUDEPATH += $(QPEDIR)/include
+# DEPENDPATH += $(QPEDIR)/include
+# LIBS +=
+
+INTERFACES = qsmbbase.ui
+TARGET = opie-smb
+
+#DEFINES += QT_QWS_NONOPIE
+include( $(OPIEDIR)/include.pro )
diff --git a/noncore/net/opie-smb/qsmb.cpp b/noncore/net/opie-smb/qsmb.cpp
new file mode 100644
index 0000000..527ab38
--- a/dev/null
+++ b/noncore/net/opie-smb/qsmb.cpp
@@ -0,0 +1,402 @@
+#include "qsmb.h"
+#include <qpushbutton.h>
+#include <qpe/qpeapplication.h>
+
+#include <string.h>
+#include <qstring.h>
+#include <qdir.h>
+#include <qfileinfo.h>
+
+#include <qlabel.h>
+#include <qlineedit.h>
+#include <qcombobox.h>
+#include <qstringlist.h>
+#include <qcheckbox.h>
+#include <qtextview.h>
+#include <qmessagebox.h>
+
+
+#include <pthread.h>
+#include <signal.h>
+#include <ctype.h>
+
+
+#include <opie2/odebug.h>
+using namespace Opie::Core;
+
+
+Qsmb::Qsmb( QWidget* parent, const char* name, WFlags fl )
+ : FormQPESMBBase( parent, name, fl )
+{
+ connect(CBHost, SIGNAL(activated(int)), this, SLOT(hostSelected(int)));
+ connect(DoItBtn, SIGNAL(clicked()), this, SLOT(DoItClicked()));
+ connect(BtnScan, SIGNAL(clicked()), this, SLOT(scanClicked()));
+ connect(BtnClear, SIGNAL(clicked()), this, SLOT(clear()));
+
+//TODO configurable mount points
+ if(!QFileInfo("/mnt/samba1").exists()) system("mkdir /mnt/samba1");
+ if(!QFileInfo("/mnt/samba2").exists()) system("mkdir /mnt/samba2");
+ if(!QFileInfo("/mnt/samba2").exists()) system("mkdir /mnt/samba3");
+
+ mountpt->insertItem("/mnt/samba1",-1);
+ mountpt->insertItem("/mnt/samba2",-1);
+ mountpt->insertItem("/mnt/samba3",-1);
+
+ top_element = NULL;
+ scanning = false;
+}
+
+Qsmb::~Qsmb()
+{
+}
+
+void Qsmb::clear()
+{
+ if (scanning) return;
+ ListViewScan->clear();
+ TextViewOutput->setText("");
+ top_element = NULL;
+}
+
+void Qsmb::scanClicked()
+{
+ if (scanning) return;
+ pthread_create(&tpid, NULL, runit, (void *)this);
+}
+
+void Qsmb::DoItClicked()
+{
+
+ if(! ListViewScan->selectedItem()) {
+ QMessageBox::warning(this, tr("Error"),tr("<p>No share selected!</p>"));
+ return;
+ }
+ if (scanning) return;
+ pthread_create(&tpid, NULL, runitm, (void *)this);
+}
+
+void* runit(void* arg)
+{
+ Qsmb* caller = (Qsmb*)arg;
+ caller->scan();
+ return(0);
+}
+
+void* runitm(void* arg)
+{
+ Qsmb* caller = (Qsmb*)arg;
+ caller->DoIt();
+ return(0);
+}
+
+void Qsmb::scan()
+{
+ int i;
+
+ if (scanning) return;
+ scanning = true;
+
+ char match[512], lmhosts[512];
+ QString cmd;
+ char result[256];
+
+ FILE *pipe, *pipe2;
+
+ LScan->setText("Scanning...");
+ qApp->processEvents();
+
+ cmd = "ifconfig |grep 'addr:'|awk '{print $2}'|awk 'BEGIN{FS=\":\"}{print $2}'|sed 's/\\.[0-9]*$//'|head -n1";
+
+ owarn << "cmd: " << cmd << oendl;
+
+ /* run findsmb & read output */
+ if ((pipe = popen(cmd.latin1(), "r")) == NULL) {
+ snprintf(result, 256, "Error: Can't run %s", cmd.latin1());
+ TextViewOutput->append(result);
+ return;
+ }
+ while(fgets(result, 256, pipe) != NULL) {
+ strcpy( match, result);
+ match[5]='\0';
+ break;
+ }
+ owarn << "match: " << match << oendl;
+
+ cmd = "/usr/bin/findsmb";
+ owarn <<"cmd: " << cmd << oendl;
+
+ TextViewOutput->append(cmd);
+
+ snprintf(lmhosts, 512, "echo '127.0.0.1 localhost'>/etc/samba/lmhosts");
+
+ if ((pipe2 = popen(lmhosts, "r")) == NULL) {
+ snprintf(result, 256, "Error: Can't run %s", lmhosts);
+ //TextViewOutput->append(result);
+ return;
+ }
+
+ /* run command & read output */
+ if ((pipe = popen(cmd.latin1(), "r")) == NULL) {
+ snprintf(result, 256, "Error: Can't run %s", cmd.latin1());
+ TextViewOutput->append(result);
+ return;
+ }
+
+ /* parse output and display in ListViewScan */
+ while(fgets(result, 256, pipe) != NULL) {
+ /* put result into TextViewOutput */
+ TextViewOutput->append(result);
+
+ if( strstr(result, match) != NULL ) {
+ char ip_addr[256], host[256], *ptr1;
+
+ strcpy( ip_addr, result);
+ ptr1 = strchr(ip_addr,' ');
+ strcpy( host, ptr1);
+ ip_addr[ptr1 - ip_addr]='\0';
+
+ for(i = 0; i < 256; i++) {
+ if(host[i]!=' ') {
+ strcpy( host, host + i);
+ break;
+ }
+ }
+ ptr1 = strchr(host,' ');
+ host[ptr1 - host] = '\0';
+
+ owarn << "add host: " << host << oendl;
+
+ CBHost->insertItem( host, -1);
+ snprintf( lmhosts, 512, "echo '%s %s'>>/etc/samba/lmhosts", ip_addr,host);
+
+ owarn << "lmhosts: " << lmhosts << oendl;
+
+ if ((pipe2 = popen(lmhosts, "r")) == NULL) {
+ snprintf(result, 256, "Error: Can't run %s", lmhosts);
+ return;
+ }
+ }
+ }
+
+ TextViewOutput->append("\n\n============================================\n");
+ LScan->setText("");
+ scanning = false;
+}
+
+void Qsmb::hostSelected(int index)
+{
+ owarn << "hostSelected" << oendl;
+ int i;
+
+ QListViewItem *element;
+ QListViewItem *parent;
+
+ QString text = CBHost->currentText();
+
+ if (scanning) return;
+ scanning = true;
+
+ QString cmd;
+ char result[256];
+
+ FILE *pipe;
+
+ LScan->setText("Scanning...");
+
+ if((const char *)username->text() == '\0')
+ cmd = "/usr/bin/smbclient -L //"+CBHost->currentText()+" -N 2>&1 |grep Disk";
+ else
+ cmd = "/usr/bin/smbclient -L //"+CBHost->currentText()+" -N -U"+username->text()+":"+password->text()+" 2>&1 |grep Disk";
+
+ for(i = 0; i < 512; i++) {
+ if(cmd[i]==':') {
+ cmd[i]='%';
+ break;
+ }
+ if(cmd[i]=='\0')
+ break;
+ }
+
+ owarn << "i="<< index << "cmd:" << cmd << oendl;
+
+ TextViewOutput->append(cmd);
+
+ /* run smbclient & read output */
+ if ((pipe = popen(cmd.latin1(), "r")) == NULL) {
+ snprintf(result, 256, "Error: Can't run %s", cmd.latin1());
+// cmd = "Error: Can't run "+cmd;
+ TextViewOutput->append(result);
+ return;
+ }
+
+ /* parse output and display in ListViewScan */
+ while(fgets(result, 256, pipe) != NULL) {
+ /* put result into TextViewOutput */
+ TextViewOutput->append(result);
+
+ if( strchr(result, '$') == NULL ) {
+ char share[256], *ptr1;
+
+ strcpy(share,result);
+ ptr1 = strchr(share,' ');
+ share[ptr1 - share]='\0';
+
+ owarn<< "add share: " << share << oendl;
+
+ if(top_element != NULL) {
+ bool found = false;
+ element = top_element;
+
+ while(element != NULL && !found) {
+ if(strcmp( element->text(0).ascii(), share)==0) {
+ parent = element;
+ found = true;
+ }
+ element = element->nextSibling();
+ }
+
+ if(!found) {
+ element = new QListViewItem(ListViewScan,share);
+ element->setOpen(true);
+ parent=element;
+ }
+ } else {
+ element = new QListViewItem(ListViewScan,share);
+ element->setOpen(true);
+ top_element = element;
+ parent = element;
+ }
+ }
+ }
+
+ TextViewOutput->append("\n\n============================================\n");
+ LScan->setText("");
+ scanning = false;
+}
+
+void Qsmb::DoIt()
+{
+ QListViewItem *element;
+ element = ListViewScan->selectedItem();
+ if(!element) {
+ QMessageBox::warning(this, tr("Error!!"),tr("<p><b>No</b> share selected!!</p>"));
+ return;
+ }
+
+ if (scanning) return;
+ scanning = true;
+
+ int i;
+
+ char share[512];
+ QString cmd;
+ QString cmd2;
+ char result[256];
+// QString result;
+ QString text = mountpt->currentText();
+
+ FILE *pipe,*pipe2;
+
+ LScan->setText("Mounting...");
+ qApp->processEvents();
+
+ cmd = "mkdir -p "+ text;
+
+ owarn<<"cmd: "<< cmd << oendl;
+
+ /* make sure mount exists! */
+ if ((pipe2 = popen(cmd.latin1(), "r")) == NULL) {
+
+ snprintf(result, 256, "Error: Can't run %s", cmd.latin1());
+ // result = "Error: Can't run " + cmd;
+ TextViewOutput->append(result);
+ return;
+ }
+
+ while(fgets(result, 256, pipe2) != NULL) {
+ /* put result into TextViewOutput */
+ TextViewOutput->append(result);
+ }
+
+
+ strcpy(share,(const char *)element->text(0));
+
+ for(i = 0; i < 256; i++) {
+ if(isalpha( share[i])) {
+ strcpy( share, share + i);
+ break;
+ }
+ }
+
+ cmd = "/usr/bin/smbmount //"+CBHost->currentText()+"/"+share+" "+mountpt->currentText()+" -U"+username->text()+":"+password->text();
+
+ for(i = 0; i < 512; i++) {
+ if(cmd[i]==':') {
+ cmd[i]='%';
+ break;
+ }
+ if(cmd[i]=='\0')
+ break;
+ }
+
+ owarn << "cmd: " << cmd << oendl;
+ TextViewOutput->append(cmd.latin1());
+
+
+ if(onbootBtn->isChecked()) {
+ owarn << "Saving Setting permanently..." << oendl;
+ cmd2 = "echo '" + cmd + "'>/opt/QtPalmtop/etc/samba.env";
+
+ /* run command & read output */
+ if ((pipe = popen(cmd2.latin1(), "r")) == NULL) {
+
+ snprintf(result, 256, "Error: Can't run %s", cmd.latin1());
+// result = "Error: Can't run "+ cmd;
+ //TextViewOutput->append(result);
+ return;
+ }
+ /* parse output and display in ListViewScan */
+ while(fgets(result, 256, pipe) != NULL) {
+ /* put result into TextViewOutput */
+ //TextViewOutput->append(result);
+ }
+ }
+
+ /* run command & read output */
+ if ((pipe = popen(cmd.latin1(), "r")) == NULL) {
+
+// result = "Error: Can't run "+ cmd;
+ snprintf(result, 256, "Error: Can't run %s", cmd.latin1());
+
+ TextViewOutput->append(result);
+ return;
+ }
+
+ /* parse output and display in ListViewScan */
+ while(fgets(result, 256, pipe) != NULL) {
+ /* put result into TextViewOutput */
+ TextViewOutput->append(result);
+ }
+ TextViewOutput->append("\n\n================CheckMounts==================\n");
+ LScan->setText("");
+
+ cmd = "/bin/mount 2>&1";
+ owarn << "cmd: " << cmd << oendl;
+
+ if ((pipe2 = popen(cmd.latin1(), "r")) == NULL) {
+
+ snprintf(result, 256, "Error: Can't run %s", cmd.latin1());
+// result = "Error: Can't run "+ cmd;
+
+ TextViewOutput->append(result);
+ return;
+ }
+ /* parse output and display in ListViewScan */
+ while(fgets(result, 256, pipe2) != NULL) {
+ /* put result into TextViewOutput */
+ TextViewOutput->append(result);
+ }
+
+ TextViewOutput->append("\n\n============================================\n");
+ scanning = false;
+}
diff --git a/noncore/net/opie-smb/qsmb.h b/noncore/net/opie-smb/qsmb.h
new file mode 100644
index 0000000..8fefe91
--- a/dev/null
+++ b/noncore/net/opie-smb/qsmb.h
@@ -0,0 +1,39 @@
+#ifndef QSMB_H
+#define QSMB_H
+
+#include "qsmbbase.h"
+
+#include <stdlib.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+#include <qlistview.h>
+#include <pthread.h>
+
+class Qsmb : public FormQPESMBBase
+{
+ Q_OBJECT
+
+public:
+ static QString appName() { return QString::fromLatin1("opie-smb"); }
+ Qsmb( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
+ ~Qsmb();
+ void scan();
+ void DoIt();
+
+private:
+ QListViewItem *top_element;
+ QComboBox *hosts;
+ pthread_t tpid;
+ bool scanning;
+
+public slots:
+ void clear();
+ void scanClicked();
+ void hostSelected(int);
+ void DoItClicked();
+};
+void* runit(void *arg);
+void* runitm(void *arg);
+
+#endif // QSMB_H
diff --git a/noncore/net/opie-smb/qsmbbase.cpp b/noncore/net/opie-smb/qsmbbase.cpp
new file mode 100644
index 0000000..21cd306
--- a/dev/null
+++ b/noncore/net/opie-smb/qsmbbase.cpp
@@ -0,0 +1,146 @@
+/****************************************************************************
+** Form implementation generated from reading ui file 'qsmbbase.ui'
+**
+** Created: Thu Aug 11 19:30:44 2005
+** by: The User Interface Compiler (uic)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+#include "qsmbbase.h"
+
+#include <qcheckbox.h>
+#include <qcombobox.h>
+#include <qheader.h>
+#include <qlabel.h>
+#include <qlineedit.h>
+#include <qlistview.h>
+#include <qpushbutton.h>
+#include <qtabwidget.h>
+#include <qtextview.h>
+#include <qlayout.h>
+#include <qvariant.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+
+/*
+ * Constructs a FormQPESMBBase which is a child of 'parent', with the
+ * name 'name' and widget flags set to 'f'
+ */
+FormQPESMBBase::FormQPESMBBase( QWidget* parent, const char* name, WFlags fl )
+ : QWidget( parent, name, fl )
+{
+ if ( !name )
+ setName( "FormQPESMBBase" );
+ resize( 254, 352 );
+ QFont f( font() );
+ setFont( f );
+ setCaption( tr( "Opie Smb" ) );
+ FormQPESMBBaseLayout = new QGridLayout( this );
+ FormQPESMBBaseLayout->setSpacing( 2 );
+ FormQPESMBBaseLayout->setMargin( 0 );
+
+ TabWidget2 = new QTabWidget( this, "TabWidget2" );
+
+ tab = new QWidget( TabWidget2, "tab" );
+ tabLayout = new QGridLayout( tab );
+ tabLayout->setSpacing( 0 );
+ tabLayout->setMargin( 2 );
+
+ CBHost = new QComboBox( FALSE, tab, "CBHost" );
+
+ tabLayout->addMultiCellWidget( CBHost, 1, 1, 0, 3 );
+
+ mountpt = new QComboBox( FALSE, tab, "mountpt" );
+
+ tabLayout->addMultiCellWidget( mountpt, 4, 4, 1, 3 );
+
+ LScan = new QLabel( tab, "LScan" );
+ LScan->setText( tr( "" ) );
+
+ tabLayout->addWidget( LScan, 0, 3 );
+
+ textLabel1 = new QLabel( tab, "textLabel1" );
+ textLabel1->setText( tr( "mount pt:" ) );
+
+ tabLayout->addWidget( textLabel1, 4, 0 );
+
+ ListViewScan = new QListView( tab, "ListViewScan" );
+ ListViewScan->addColumn( tr( "Shares" ) );
+
+ tabLayout->addMultiCellWidget( ListViewScan, 2, 2, 0, 3 );
+
+ BtnScan = new QPushButton( tab, "BtnScan" );
+ BtnScan->setText( tr( "&Scan" ) );
+
+ tabLayout->addMultiCellWidget( BtnScan, 0, 0, 0, 1 );
+
+ BtnClear = new QPushButton( tab, "BtnClear" );
+ BtnClear->setText( tr( "&Clear" ) );
+
+ tabLayout->addWidget( BtnClear, 0, 2 );
+
+ onbootBtn = new QCheckBox( tab, "onbootBtn" );
+ onbootBtn->setText( tr( "Reconnect on boot" ) );
+
+ tabLayout->addMultiCellWidget( onbootBtn, 3, 3, 0, 2 );
+
+ DoItBtn = new QPushButton( tab, "DoItBtn" );
+ DoItBtn->setText( tr( "&Login" ) );
+
+ tabLayout->addMultiCellWidget( DoItBtn, 5, 5, 0, 1 );
+
+ Layout6 = new QGridLayout;
+ Layout6->setSpacing( 6 );
+ Layout6->setMargin( 0 );
+
+ Layout2 = new QHBoxLayout;
+ Layout2->setSpacing( 6 );
+ Layout2->setMargin( 0 );
+
+ pwdlabel = new QLabel( tab, "pwdlabel" );
+ pwdlabel->setText( tr( "password" ) );
+ Layout2->addWidget( pwdlabel );
+
+ password = new QLineEdit( tab, "password" );
+ Layout2->addWidget( password );
+
+ Layout6->addLayout( Layout2, 1, 0 );
+
+ Layout5 = new QHBoxLayout;
+ Layout5->setSpacing( 6 );
+ Layout5->setMargin( 0 );
+
+ usrlabel = new QLabel( tab, "usrlabel" );
+ usrlabel->setText( tr( "username" ) );
+ Layout5->addWidget( usrlabel );
+
+ username = new QLineEdit( tab, "username" );
+ Layout5->addWidget( username );
+
+ Layout6->addLayout( Layout5, 0, 0 );
+
+ tabLayout->addMultiCellLayout( Layout6, 5, 5, 2, 3 );
+ TabWidget2->insertTab( tab, tr( "Scan" ) );
+
+ tab_2 = new QWidget( TabWidget2, "tab_2" );
+ tabLayout_2 = new QGridLayout( tab_2 );
+ tabLayout_2->setSpacing( 6 );
+ tabLayout_2->setMargin( 11 );
+
+ TextViewOutput = new QTextView( tab_2, "TextViewOutput" );
+ TextViewOutput->setTextFormat( QTextView::PlainText );
+
+ tabLayout_2->addWidget( TextViewOutput, 0, 0 );
+ TabWidget2->insertTab( tab_2, tr( "SMB Output" ) );
+
+ FormQPESMBBaseLayout->addWidget( TabWidget2, 0, 0 );
+}
+
+/*
+ * Destroys the object and frees any allocated resources
+ */
+FormQPESMBBase::~FormQPESMBBase()
+{
+ // no need to delete child widgets, Qt does it all for us
+}
+
diff --git a/noncore/net/opie-smb/qsmbbase.h b/noncore/net/opie-smb/qsmbbase.h
new file mode 100644
index 0000000..3ee2f57
--- a/dev/null
+++ b/noncore/net/opie-smb/qsmbbase.h
@@ -0,0 +1,62 @@
+/****************************************************************************
+** Form interface generated from reading ui file 'qsmbbase.ui'
+**
+** Created: Thu Aug 11 19:30:41 2005
+** by: The User Interface Compiler (uic)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+#ifndef FORMQPESMBBASE_H
+#define FORMQPESMBBASE_H
+
+#include <qvariant.h>
+#include <qwidget.h>
+class QVBoxLayout;
+class QHBoxLayout;
+class QGridLayout;
+class QCheckBox;
+class QComboBox;
+class QLabel;
+class QLineEdit;
+class QListView;
+class QListViewItem;
+class QPushButton;
+class QTabWidget;
+class QTextView;
+
+class FormQPESMBBase : public QWidget
+{
+ Q_OBJECT
+
+public:
+ FormQPESMBBase( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
+ ~FormQPESMBBase();
+
+ QTabWidget* TabWidget2;
+ QWidget* tab;
+ QComboBox* CBHost;
+ QComboBox* mountpt;
+ QLabel* LScan;
+ QLabel* textLabel1;
+ QListView* ListViewScan;
+ QPushButton* BtnScan;
+ QPushButton* BtnClear;
+ QCheckBox* onbootBtn;
+ QPushButton* DoItBtn;
+ QLabel* pwdlabel;
+ QLineEdit* password;
+ QLabel* usrlabel;
+ QLineEdit* username;
+ QWidget* tab_2;
+ QTextView* TextViewOutput;
+
+protected:
+ QGridLayout* FormQPESMBBaseLayout;
+ QGridLayout* tabLayout;
+ QGridLayout* Layout6;
+ QHBoxLayout* Layout2;
+ QHBoxLayout* Layout5;
+ QGridLayout* tabLayout_2;
+};
+
+#endif // FORMQPESMBBASE_H
diff --git a/noncore/net/opie-smb/qsmbbase.ui b/noncore/net/opie-smb/qsmbbase.ui
new file mode 100644
index 0000000..35a1aec
--- a/dev/null
+++ b/noncore/net/opie-smb/qsmbbase.ui
@@ -0,0 +1,298 @@
+<!DOCTYPE UI><UI>
+<class>FormQPESMBBase</class>
+<widget>
+ <class>QWidget</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>FormQPESMBBase</cstring>
+ </property>
+ <property stdset="1">
+ <name>geometry</name>
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>254</width>
+ <height>352</height>
+ </rect>
+ </property>
+ <property stdset="1">
+ <name>font</name>
+ <font>
+ </font>
+ </property>
+ <property stdset="1">
+ <name>caption</name>
+ <string>Opie Smb</string>
+ </property>
+ <property>
+ <name>layoutMargin</name>
+ </property>
+ <property>
+ <name>layoutSpacing</name>
+ </property>
+ <grid>
+ <property stdset="1">
+ <name>margin</name>
+ <number>0</number>
+ </property>
+ <property stdset="1">
+ <name>spacing</name>
+ <number>2</number>
+ </property>
+ <widget row="0" column="0" >
+ <class>QTabWidget</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>TabWidget2</cstring>
+ </property>
+ <property>
+ <name>layoutMargin</name>
+ </property>
+ <property>
+ <name>layoutSpacing</name>
+ </property>
+ <widget>
+ <class>QWidget</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>tab</cstring>
+ </property>
+ <attribute>
+ <name>title</name>
+ <string>Scan</string>
+ </attribute>
+ <grid>
+ <property stdset="1">
+ <name>margin</name>
+ <number>2</number>
+ </property>
+ <property stdset="1">
+ <name>spacing</name>
+ <number>0</number>
+ </property>
+ <widget row="1" column="0" rowspan="1" colspan="4" >
+ <class>QComboBox</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>CBHost</cstring>
+ </property>
+ </widget>
+ <widget row="4" column="1" rowspan="1" colspan="3" >
+ <class>QComboBox</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>mountpt</cstring>
+ </property>
+ </widget>
+ <widget row="0" column="3" >
+ <class>QLabel</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>LScan</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string></string>
+ </property>
+ </widget>
+ <widget row="4" column="0" >
+ <class>QLabel</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>textLabel1</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>mount pt:</string>
+ </property>
+ </widget>
+ <widget row="2" column="0" rowspan="1" colspan="4" >
+ <class>QListView</class>
+ <column>
+ <property>
+ <name>text</name>
+ <string>Shares</string>
+ </property>
+ <property>
+ <name>clickable</name>
+ <bool>true</bool>
+ </property>
+ <property>
+ <name>resizeable</name>
+ <bool>true</bool>
+ </property>
+ </column>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>ListViewScan</cstring>
+ </property>
+ </widget>
+ <widget row="0" column="0" rowspan="1" colspan="2" >
+ <class>QPushButton</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>BtnScan</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>&amp;Scan</string>
+ </property>
+ </widget>
+ <widget row="0" column="2" >
+ <class>QPushButton</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>BtnClear</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>&amp;Clear</string>
+ </property>
+ </widget>
+ <widget row="3" column="0" rowspan="1" colspan="3" >
+ <class>QCheckBox</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>onbootBtn</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>Reconnect on boot</string>
+ </property>
+ </widget>
+ <widget row="5" column="0" rowspan="1" colspan="2" >
+ <class>QPushButton</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>DoItBtn</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>&amp;Login</string>
+ </property>
+ </widget>
+ <widget row="5" column="2" rowspan="1" colspan="2" >
+ <class>QLayoutWidget</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>Layout6</cstring>
+ </property>
+ <grid>
+ <property stdset="1">
+ <name>margin</name>
+ <number>0</number>
+ </property>
+ <property stdset="1">
+ <name>spacing</name>
+ <number>6</number>
+ </property>
+ <widget row="1" column="0" >
+ <class>QLayoutWidget</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>Layout2</cstring>
+ </property>
+ <hbox>
+ <property stdset="1">
+ <name>margin</name>
+ <number>0</number>
+ </property>
+ <property stdset="1">
+ <name>spacing</name>
+ <number>6</number>
+ </property>
+ <widget>
+ <class>QLabel</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>pwdlabel</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>password</string>
+ </property>
+ </widget>
+ <widget>
+ <class>QLineEdit</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>password</cstring>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget row="0" column="0" >
+ <class>QLayoutWidget</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>Layout5</cstring>
+ </property>
+ <hbox>
+ <property stdset="1">
+ <name>margin</name>
+ <number>0</number>
+ </property>
+ <property stdset="1">
+ <name>spacing</name>
+ <number>6</number>
+ </property>
+ <widget>
+ <class>QLabel</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>usrlabel</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>username</string>
+ </property>
+ </widget>
+ <widget>
+ <class>QLineEdit</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>username</cstring>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ </grid>
+ </widget>
+ </grid>
+ </widget>
+ <widget>
+ <class>QWidget</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>tab</cstring>
+ </property>
+ <attribute>
+ <name>title</name>
+ <string>SMB Output</string>
+ </attribute>
+ <grid>
+ <property stdset="1">
+ <name>margin</name>
+ <number>11</number>
+ </property>
+ <property stdset="1">
+ <name>spacing</name>
+ <number>6</number>
+ </property>
+ <widget row="0" column="0" >
+ <class>QTextView</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>TextViewOutput</cstring>
+ </property>
+ <property stdset="1">
+ <name>textFormat</name>
+ <enum>PlainText</enum>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ </widget>
+ </grid>
+</widget>
+</UI>
diff --git a/noncore/settings/netsystemtime/formattabwidget.cpp b/noncore/settings/netsystemtime/formattabwidget.cpp
index 7d01bff..a037881 100644
--- a/noncore/settings/netsystemtime/formattabwidget.cpp
+++ b/noncore/settings/netsystemtime/formattabwidget.cpp
diff --git a/noncore/tools/calc2/binary/binary.pro b/noncore/tools/calc2/binary/binary.pro
index 1348d00..9cbb0ff 100644
--- a/noncore/tools/calc2/binary/binary.pro
+++ b/noncore/tools/calc2/binary/binary.pro
@@ -1,16 +1,14 @@
-#TEMPLATE = lib
-#CONFIG -= moc
-#CONFIG += qt
-## Input
-#INTERFACES += binary.ui
-#HEADERS = binaryimpl.h \
-# binaryfactory.h
-#SOURCES = binaryimpl.cpp \
-# binaryfactory.cpp
-#INCLUDEPATH += $(OPIEDIR)/include \
-# $(OPIEDIR)/calc2
-#DEPENDPATH += $(OPIEDIR)/include
-#DESTDIR = $(OPIEDIR)/plugins/calculator
-#TARGET = binary
-#
+TEMPLATE = lib
+CONFIG += qt
+INTERFACES += binary.ui
+HEADERS = binaryimpl.h \
+ binaryfactory.h
+SOURCES = binaryimpl.cpp \
+ binaryfactory.cpp
+INCLUDEPATH += $(OPIEDIR)/include \
+ $(OPIEDIR)/calc2
+DEPENDPATH += $(OPIEDIR)/include
+DESTDIR = $(OPIEDIR)/plugins/calculator
+TARGET = binary
+
diff --git a/noncore/tools/calc2/binary/binaryfactory.cpp b/noncore/tools/calc2/binary/binaryfactory.cpp
index 110334f..bccc9ca 100644
--- a/noncore/tools/calc2/binary/binaryfactory.cpp
+++ b/noncore/tools/calc2/binary/binaryfactory.cpp
@@ -24,3 +24,3 @@
#include "binaryimpl.h"
-#include <engine.h>
+#include "../engine.h"
diff --git a/noncore/tools/calc2/binary/binaryfactory.h b/noncore/tools/calc2/binary/binaryfactory.h
index e015384..237a926 100644
--- a/noncore/tools/calc2/binary/binaryfactory.h
+++ b/noncore/tools/calc2/binary/binaryfactory.h
@@ -24,4 +24,4 @@
#include "binaryimpl.h"
-#include <plugininterface.h>
-#include <engine.h>
+#include "../plugininterface.h"
+#include "../engine.h"
diff --git a/noncore/tools/calc2/binary/binaryimpl.cpp b/noncore/tools/calc2/binary/binaryimpl.cpp
index ffc56ad..ecbf232 100644
--- a/noncore/tools/calc2/binary/binaryimpl.cpp
+++ b/noncore/tools/calc2/binary/binaryimpl.cpp
@@ -21,3 +21,3 @@
#include "binaryimpl.h"
-#include <instruction.h>
+#include "../instruction.h"
diff --git a/noncore/tools/calc2/binary/binaryimpl.h b/noncore/tools/calc2/binary/binaryimpl.h
index bf9e3a7..7bf123a 100644
--- a/noncore/tools/calc2/binary/binaryimpl.h
+++ b/noncore/tools/calc2/binary/binaryimpl.h
@@ -23,3 +23,3 @@
#include "binary.h"
-#include <engine.h>
+#include "../engine.h"
diff --git a/noncore/tools/calc2/calc.cpp b/noncore/tools/calc2/calc.cpp
index c7656bf..8c50c2c 100644
--- a/noncore/tools/calc2/calc.cpp
+++ b/noncore/tools/calc2/calc.cpp
@@ -70,3 +70,2 @@ LCD->setSegmentStyle(QLCDNumber::Filled);
QLibrary *lib = new QLibrary (path + "/" + *it);
-
Plugin plugin;
diff --git a/noncore/tools/calc2/simple/simple.pro b/noncore/tools/calc2/simple/simple.pro
index 2312f99..dde5e7d 100644
--- a/noncore/tools/calc2/simple/simple.pro
+++ b/noncore/tools/calc2/simple/simple.pro
@@ -1,13 +1,11 @@
-#TEMPLATE = lib
-#CONFIG -= moc
-#CONFIG += qt
-## Input
-#INTERFACES += simple.ui
-#HEADERS = simpleimpl.h simplefactory.h stdinstructions.h
-#SOURCES = simpleimpl.cpp simplefactory.cpp
-#INCLUDEPATH += $(OPIEDIR)/include \
-# $(OPIEDIR)/calc2
-#DEPENDPATH += $(OPIEDIR)/include
-#DESTDIR = $(OPIEDIR)/plugins/calculator
-#
+TEMPLATE = lib
+CONFIG += qt
+INTERFACES += simple.ui
+HEADERS = simpleimpl.h simplefactory.h stdinstructions.h
+SOURCES = simpleimpl.cpp simplefactory.cpp
+INCLUDEPATH += $(OPIEDIR)/include \
+ $(OPIEDIR)/calc2
+DEPENDPATH += $(OPIEDIR)/include
+DESTDIR = $(OPIEDIR)/plugins/calculator
+
diff --git a/noncore/tools/calc2/simple/simplefactory.cpp b/noncore/tools/calc2/simple/simplefactory.cpp
index 515418f..52b090b 100644
--- a/noncore/tools/calc2/simple/simplefactory.cpp
+++ b/noncore/tools/calc2/simple/simplefactory.cpp
@@ -24,3 +24,3 @@
#include "simpleimpl.h"
-#include <engine.h>
+#include "../engine.h"
diff --git a/noncore/tools/calc2/simple/simplefactory.h b/noncore/tools/calc2/simple/simplefactory.h
index e1022fd..460c2b9 100644
--- a/noncore/tools/calc2/simple/simplefactory.h
+++ b/noncore/tools/calc2/simple/simplefactory.h
@@ -24,4 +24,4 @@
#include "simpleimpl.h"
-#include <plugininterface.h>
-#include <engine.h>
+#include "../plugininterface.h"
+#include "../engine.h"
diff --git a/noncore/tools/calc2/simple/simpleimpl.cpp b/noncore/tools/calc2/simple/simpleimpl.cpp
index f71f000..447cbdf 100644
--- a/noncore/tools/calc2/simple/simpleimpl.cpp
+++ b/noncore/tools/calc2/simple/simpleimpl.cpp
@@ -24,3 +24,3 @@
#include "simpleimpl.h"
-#include <stdinstructions.h>
+#include "../stdinstructions.h"
diff --git a/noncore/tools/calc2/simple/simpleimpl.h b/noncore/tools/calc2/simple/simpleimpl.h
index a2db154..b7b83e2 100644
--- a/noncore/tools/calc2/simple/simpleimpl.h
+++ b/noncore/tools/calc2/simple/simpleimpl.h
@@ -27,4 +27,4 @@
#include "simple.h"
-#include "engine.h"
-#include "instruction.h"
+#include "../engine.h"
+#include "../instruction.h"
diff --git a/packages b/packages
index 433bd06..86dcab4 100644
--- a/packages
+++ b/packages
@@ -19,3 +19,5 @@ CONFIG_BUTTON-SETTINGS core/settings/button button.pro
CONFIG_BUZZWORD noncore/games/buzzword buzzword.pro
-CONFIG_CALC2 noncore/tools/calc2 calc.pro
+CONFIG_CALC2 noncore/tools/calc2 calc2.pro
+CONFIG_CALC2-BINARY noncore/tools/calc2/binary binary.pro
+CONFIG_CALC2-SIMPLE noncore/tools/calc2/simple simple.pro
CONFIG_CALCULATOR noncore/tools/calculator calculator.pro
@@ -172,2 +174,3 @@ CONFIG_OPIE-READER-FLITEDYN16 noncore/apps/opie-reader/FliteDyn16 FliteDyn16.pro
CONFIG_OPIEREC noncore/multimedia/opierec opierec.pro
+CONFIG_OPIESMB noncore/net/opie-smb opie-smb.pro
CONFIG_OPIE-SHEET noncore/apps/opie-sheet opie-sheet.pro
diff --git a/pics/opie-smb/opie-smb.png b/pics/opie-smb/opie-smb.png
new file mode 100644
index 0000000..0cf5d67
--- a/dev/null
+++ b/pics/opie-smb/opie-smb.png
Binary files differ