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
@@ -1,65 +1,71 @@
/**************************************************************************************94x78**
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
*********************************************************************************************/
/*
* $Id$
*/
#ifndef __VMEMO_H__
#define __VMEMO_H__
#include <qwidget.h>
#include <qpixmap.h>
#include <qpe/applnk.h>
#include <qfile.h>
#include <qpe/qcopenvelope_qws.h>
#include <qlabel.h>
#include <qtimer.h>
class VMemo : public QWidget
{
Q_OBJECT
+
public:
+
VMemo( QWidget *parent, const char *name = NULL);
~VMemo();
static int position();
QFile track;
int length;
QString fileName, errorMsg, date;
QLabel* msgLabel;
QTimer *t_timer;
bool usingIcon, useADPCM;
+
public slots:
+
bool record();
void mousePressEvent( QMouseEvent * );
void mouseReleaseEvent( QMouseEvent * );
void receive( const QCString &msg, const QByteArray &data );
bool startRecording();
void stopRecording();
void timerBreak();
+
private:
+
bool useAlerts;
void paintEvent( QPaintEvent* );
int setToggleButton(int);
int openDSP();
int openWAV(const char *filename);
bool fromToggle;
QPixmap vmemoPixmap;
QCopChannel *myChannel;
bool systemZaurus;
int dsp, wav, rate, speed, channels, format, resolution;
bool recording;
};
#endif // __VMEMO_H__
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
@@ -1,661 +1,913 @@
<!DOCTYPE UI><UI>
<class>DateEntryBase</class>
<comment>*********************************************************************
** Copyright (C) 2000 Trolltech AS. All rights reserved.
**
** This file is part of Qtopia Environment.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
** $Id$
**
*********************************************************************</comment>
<widget>
<class>QWidget</class>
<property stdset="1">
<name>name</name>
<cstring>DateEntryBase</cstring>
</property>
<property stdset="1">
<name>geometry</name>
<rect>
<x>0</x>
<y>0</y>
- <width>242</width>
- <height>339</height>
+ <width>286</width>
+ <height>396</height>
</rect>
</property>
<property stdset="1">
<name>caption</name>
<string>New Event</string>
</property>
+ <property>
+ <name>layoutMargin</name>
+ </property>
+ <property>
+ <name>layoutSpacing</name>
+ </property>
<grid>
<property stdset="1">
<name>margin</name>
<number>2</number>
</property>
<property stdset="1">
<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>
<property stdset="1">
<name>name</name>
- <cstring>TextLabel2_2</cstring>
+ <cstring>TextLabel1</cstring>
</property>
<property stdset="1">
<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>
<item>
<property>
<name>text</name>
<string></string>
</property>
</item>
<item>
<property>
<name>text</name>
<string>Meeting</string>
</property>
</item>
<item>
<property>
<name>text</name>
<string>Lunch</string>
</property>
</item>
<item>
<property>
<name>text</name>
<string>Dinner</string>
</property>
</item>
<item>
<property>
<name>text</name>
<string>Travel</string>
</property>
</item>
<property stdset="1">
<name>name</name>
<cstring>comboDescription</cstring>
</property>
<property stdset="1">
<name>sizePolicy</name>
<sizepolicy>
<hsizetype>3</hsizetype>
<vsizetype>0</vsizetype>
</sizepolicy>
</property>
<property stdset="1">
<name>editable</name>
<bool>true</bool>
</property>
<property stdset="1">
<name>currentItem</name>
<number>0</number>
</property>
<property stdset="1">
<name>duplicatesEnabled</name>
<bool>false</bool>
</property>
</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>
<property stdset="1">
<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>
<property stdset="1">
<name>text</name>
- <string>Description </string>
+ <string>Location</string>
</property>
</widget>
- <widget row="1" column="1" rowspan="1" colspan="3" >
+ <widget>
<class>QComboBox</class>
<item>
<property>
<name>text</name>
<string></string>
</property>
</item>
<item>
<property>
<name>text</name>
<string>Office</string>
</property>
</item>
<item>
<property>
<name>text</name>
<string>Home</string>
</property>
</item>
<property stdset="1">
<name>name</name>
<cstring>comboLocation</cstring>
</property>
<property stdset="1">
<name>sizePolicy</name>
<sizepolicy>
<hsizetype>3</hsizetype>
<vsizetype>0</vsizetype>
</sizepolicy>
</property>
<property stdset="1">
<name>editable</name>
<bool>true</bool>
</property>
<property stdset="1">
<name>currentItem</name>
<number>0</number>
</property>
<property stdset="1">
<name>duplicatesEnabled</name>
<bool>false</bool>
</property>
</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>
<property stdset="1">
<name>name</name>
<cstring>comboCategory</cstring>
</property>
<property stdset="1">
<name>sizePolicy</name>
<sizepolicy>
<hsizetype>3</hsizetype>
<vsizetype>1</vsizetype>
</sizepolicy>
</property>
</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>
<property stdset="1">
<name>name</name>
<cstring>TextLabel3</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>Start - End </string>
</property>
</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>
<property stdset="1">
<name>name</name>
<cstring>buttonStart</cstring>
</property>
<property stdset="1">
<name>minimumSize</name>
<size>
<width>70</width>
<height>0</height>
</size>
</property>
<property stdset="1">
<name>maximumSize</name>
<size>
<width>70</width>
<height>32767</height>
</size>
</property>
<property stdset="1">
<name>text</name>
<string>Jan 02 00</string>
</property>
</widget>
- <widget row="4" column="1" >
+ <widget>
<class>QLineEdit</class>
<property stdset="1">
<name>name</name>
<cstring>comboStart</cstring>
</property>
<property stdset="1">
<name>sizePolicy</name>
<sizepolicy>
<hsizetype>3</hsizetype>
<vsizetype>0</vsizetype>
</sizepolicy>
</property>
<property stdset="1">
<name>minimumSize</name>
<size>
<width>70</width>
<height>0</height>
</size>
</property>
<property stdset="1">
<name>maximumSize</name>
<size>
<width>70</width>
<height>32767</height>
</size>
</property>
<property stdset="1">
<name>alignment</name>
<set>AlignHCenter</set>
</property>
<property>
<name>hAlign</name>
</property>
</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>
<property stdset="1">
<name>orientation</name>
<enum>Horizontal</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>
- <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>
<property stdset="1">
<name>name</name>
<cstring>buttonEnd</cstring>
</property>
<property stdset="1">
<name>minimumSize</name>
<size>
<width>70</width>
<height>0</height>
</size>
</property>
<property stdset="1">
<name>maximumSize</name>
<size>
<width>70</width>
<height>32767</height>
</size>
</property>
<property stdset="1">
<name>text</name>
<string>Jan 02 00</string>
</property>
</widget>
- <widget row="4" column="3" >
+ <widget>
<class>QLineEdit</class>
<property stdset="1">
<name>name</name>
<cstring>comboEnd</cstring>
</property>
<property stdset="1">
<name>sizePolicy</name>
<sizepolicy>
<hsizetype>3</hsizetype>
<vsizetype>0</vsizetype>
</sizepolicy>
</property>
<property stdset="1">
<name>minimumSize</name>
<size>
<width>70</width>
<height>0</height>
</size>
</property>
<property stdset="1">
<name>maximumSize</name>
<size>
<width>70</width>
<height>32767</height>
</size>
</property>
<property stdset="1">
<name>alignment</name>
<set>AlignHCenter</set>
</property>
<property>
<name>hAlign</name>
</property>
</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>
<property stdset="1">
<name>name</name>
<cstring>TimePickerLabel</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>Start time</string>
</property>
</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>
<property stdset="1">
<name>name</name>
<cstring>checkAllDay</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>All day</string>
</property>
</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>
<property stdset="1">
<name>name</name>
<cstring>TextLabel3_2_2</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>Time zone</string>
</property>
</widget>
- <widget row="7" column="1" rowspan="1" colspan="3" >
+ <widget>
<class>TimeZoneSelector</class>
<property stdset="1">
<name>name</name>
<cstring>timezone</cstring>
</property>
<property stdset="1">
<name>sizePolicy</name>
<sizepolicy>
<hsizetype>3</hsizetype>
<vsizetype>1</vsizetype>
</sizepolicy>
</property>
</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>
<property stdset="1">
<name>name</name>
<cstring>checkAlarm</cstring>
</property>
<property stdset="1">
<name>enabled</name>
<bool>true</bool>
</property>
<property stdset="1">
<name>autoMask</name>
<bool>false</bool>
</property>
<property stdset="1">
<name>text</name>
<string>&amp;Alarm</string>
</property>
<property stdset="1">
<name>checked</name>
<bool>false</bool>
</property>
</widget>
- <widget row="8" column="1" rowspan="1" colspan="2" >
+ <widget>
<class>QSpinBox</class>
<property stdset="1">
<name>name</name>
<cstring>spinAlarm</cstring>
</property>
<property stdset="1">
<name>enabled</name>
<bool>false</bool>
</property>
<property stdset="1">
<name>suffix</name>
- <string> minutes</string>
+ <string></string>
</property>
<property stdset="1">
<name>maxValue</name>
<number>180</number>
</property>
<property stdset="1">
<name>minValue</name>
<number>0</number>
</property>
<property stdset="1">
<name>lineStep</name>
- <number>5</number>
+ <number>1</number>
</property>
<property stdset="1">
<name>value</name>
<number>5</number>
</property>
</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>
<item>
<property>
<name>text</name>
<string>Silent</string>
</property>
</item>
<item>
<property>
<name>text</name>
<string>Loud</string>
</property>
</item>
<property stdset="1">
<name>name</name>
<cstring>comboSound</cstring>
</property>
<property stdset="1">
<name>enabled</name>
<bool>false</bool>
</property>
</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>
<property stdset="1">
<name>name</name>
<cstring>lblRepeat</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>Repeat</string>
</property>
</widget>
- <widget row="9" column="1" rowspan="1" colspan="3" >
+ <widget>
<class>QToolButton</class>
<property stdset="1">
<name>name</name>
<cstring>cmdRepeat</cstring>
</property>
<property stdset="1">
<name>sizePolicy</name>
<sizepolicy>
<hsizetype>3</hsizetype>
<vsizetype>0</vsizetype>
</sizepolicy>
</property>
<property stdset="1">
<name>focusPolicy</name>
<enum>TabFocus</enum>
</property>
<property stdset="1">
<name>text</name>
<string>No Repeat...</string>
</property>
</widget>
- <widget row="10" column="0" rowspan="1" colspan="4" >
+ </hbox>
+ </widget>
+ <widget>
<class>QToolButton</class>
<property stdset="1">
<name>name</name>
<cstring>editNote</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>Note...</string>
</property>
</widget>
+ </vbox>
+ </widget>
</grid>
</widget>
<customwidgets>
<customwidget>
<class>TimeZoneSelector</class>
<header location="global">qpe/tzselect.h</header>
<sizehint>
<width>21</width>
<height>10</height>
</sizehint>
<container>0</container>
<sizepolicy>
<hordata>7</hordata>
<verdata>1</verdata>
</sizepolicy>
<pixmap>image0</pixmap>
</customwidget>
<customwidget>
<class>CategorySelect</class>
<header location="global">qpe/categoryselect.h</header>
<sizehint>
<width>-1</width>
<height>-1</height>
</sizehint>
<container>0</container>
<sizepolicy>
<hordata>7</hordata>
<verdata>1</verdata>
</sizepolicy>
<pixmap>image1</pixmap>
</customwidget>
<customwidget>
<class>TimePicker</class>
<header location="local">namespace_hack.h</header>
<sizehint>
<width>-1</width>
<height>-1</height>
</sizehint>
<container>0</container>
<sizepolicy>
<hordata>7</hordata>
<verdata>1</verdata>
</sizepolicy>
<pixmap>image1</pixmap>
</customwidget>
</customwidgets>
<images>
<image>
<name>image0</name>
<data format="XPM.GZ" length="45">789cd3d7528808f055d0d2e72a2e492cc94c5648ce482c52d04a29cdcdad8c8eb5ade6523250004143a55a6b2e0026630c4f</data>
</image>
<image>
<name>image1</name>
<data format="XPM.GZ" length="646">789c6dd2c10ac2300c00d07bbf2234b7229d1be245fc04c5a3201e4615f430059d0711ff5ddb2e6bb236ec90eed134cb5a19d8ef36602af5ecdbfeeac05dda0798d3abebde87e3faa374d3807fa0d633a52d38d8de6f679fe33fc776e196f53cd010188256a3600a292882096246517815ca99884606e18044a3a40d91824820924265a7923a2e8bcd05f33db1173e002913175f2a6be6d3294871a2d95fa00e8a94ee017b69d339d90df1e77c57ea072ede6758</data>
</image>
</images>
<connections>
<connection>
<sender>checkAlarm</sender>
<signal>toggled(bool)</signal>
<receiver>spinAlarm</receiver>
<slot>setEnabled(bool)</slot>
</connection>
<connection>
<sender>comboEnd</sender>
<signal>textChanged(const QString&amp;)</signal>
<receiver>DateEntryBase</receiver>
<slot>endTimeChanged( const QString &amp; )</slot>
</connection>
<connection>
<sender>cmdRepeat</sender>
<signal>clicked()</signal>
<receiver>DateEntryBase</receiver>
<slot>slotRepeat()</slot>
</connection>
<connection>
<sender>comboStart</sender>
<signal>textChanged(const QString &amp;)</signal>
<receiver>DateEntryBase</receiver>
<slot>startTimeEdited( const QString &amp; )</slot>
</connection>
<connection>
<sender>checkAllDay</sender>
<signal>toggled(bool)</signal>
<receiver>comboEnd</receiver>
<slot>setDisabled(bool)</slot>
</connection>
<connection>
<sender>checkAllDay</sender>
<signal>toggled(bool)</signal>
<receiver>timePickerStart</receiver>
<slot>setDisabled(bool)</slot>
</connection>
<connection>
<sender>checkAlarm</sender>
<signal>toggled(bool)</signal>
<receiver>comboSound</receiver>
<slot>setEnabled(bool)</slot>
</connection>
<connection>
<sender>checkAllDay</sender>
<signal>toggled(bool)</signal>
<receiver>comboStart</receiver>
<slot>setDisabled(bool)</slot>
</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>
<slot access="public">endDateChanged( int, int, int )</slot>
<slot access="public">endTimeChanged( const QString &amp; )</slot>
<slot access="public">slotRepeat()</slot>
<slot access="public">slotWait( int )</slot>
<slot access="public">startDateChanged( const QString &amp; )</slot>
<slot access="public">startDateChanged(int, int, int)</slot>
<slot access="public">startTimeEdited( const QString &amp; )</slot>
<slot access="public">typeChanged( const QString &amp; )</slot>
<slot access="public">tzexecute(void)</slot>
</connections>
</UI>
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
@@ -1,12 +1,12 @@
Package: opie-dasher-english
Files: share/dasher/training_english_GB.txt
Priority: optional
Section: opie/inputmethods
Maintainer: Matthew Garrett <mjg59@srcf.ucam.org>
Architecture: arm
Version: $QPE_VERSION$EXTRAVERSION
-Depends: opie-dasher
+Depends: opie-dasher libexpat0
Description: Dasher text input method
Dasher is a novel zooming text entry method that allows significantly faster
text entry than traditional methods. This package provides the necessary
data file to allow it to make predictions in English.
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
@@ -1,175 +1,213 @@
/*
This file is part of the Opie Project
=. (C) 2005 Michael 'Mickey' Lauer <mickey@Vanille.de>
.=l.
.>+-=
_;:, .> :=|. This program is free software; you can
.> <`_, > . <= redistribute it and/or modify it under
:`=1 )Y*s>-.-- : the terms of the GNU Library General Public
.="- .-=="i, .._ License as published by the Free Software
- . .-<_> .<> Foundation; either version 2 of the License,
._= =} : or (at your option) any later version.
.%`+i> _;_.
.i_,=:_. -<s. This program is distributed in the hope that
+ . -:. = it will be useful, but WITHOUT ANY WARRANTY;
: .. .:, . . . without even the implied warranty of
=_ + =;=|` MERCHANTABILITY or FITNESS FOR A
_.=:. : :=>`: PARTICULAR PURPOSE. See the GNU
..}^=.= = ; Library General Public License for more
++= -. .` .: details.
: = ...= . :.=-
-. .:....=;==+<; You should have received a copy of the GNU
-_. . . )=. = Library General Public License along with
-- :-=` this library; see the file COPYING.LIB.
If not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#include "volumeapplet.h"
/* OPIE */
#include <opie2/odebug.h>
#include <opie2/otaskbarapplet.h>
#include <opie2/osoundsystem.h>
#include <opie2/oledbox.h>
#include <opie2/oresource.h>
#include <qpe/applnk.h>
+#include <qpe/qpeapplication.h>
using namespace Opie::Core;
using namespace Opie::MM;
using namespace Opie::Ui;
/* QT */
#include <qpainter.h>
#include <qlabel.h>
#include <qlayout.h>
#include <qslider.h>
/* STD */
#include <assert.h>
Channel::Channel( OMixerInterface* mixer, QWidget* parent, const char* name )
:QVBox( parent, name )
{
_name = new QLabel( name, this );
_name->setFont( QFont( "Vera", 8 ) );
_volume = new QSlider( 0, 100, 10, mixer->volume( name ) & 0xff, QSlider::Vertical, this );
_volume->setTickmarks( QSlider::Both );
_volume->setTickInterval( 20 );
_mute = new OLedBox( green, this );
_mute->setFocusPolicy( QWidget::NoFocus );
_mute->setFixedSize( AppLnk::smallIconSize(), AppLnk::smallIconSize() );
_name->show();
_volume->show();
_mute->show();
}
Channel::~Channel()
{
}
VolumeAppletControl::VolumeAppletControl( OTaskbarApplet* parent, const char* name )
:QFrame( parent, name, WStyle_StaysOnTop | WType_Popup ), l(0)
{
setFrameStyle( QFrame::PopupPanel | QFrame::Raised );
l = new QGridLayout( this );
build();
}
void VolumeAppletControl::build()
{
OSoundSystem* sound = OSoundSystem::instance();
OSoundSystem::CardIterator it = sound->iterator();
- OMixerInterface* mixer = new OMixerInterface( this, "/dev/mixer" );
+// OMixerInterface*
+ mixer = new OMixerInterface( this, "/dev/mixer" );
QStringList channels = mixer->allChannels();
int x = 0;
// int y = 0;
for ( QStringList::Iterator it = channels.begin(); it != channels.end(); ++it )
{
- 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;
l->addWidget( new Channel( mixer, this, *it ), 0, x++, AlignCenter );
}
}
VolumeAppletControl::~VolumeAppletControl()
{
}
+int VolumeAppletControl::volPercent ( ) const
+{
+ return m_vol_percent;
+}
+
+bool VolumeAppletControl::volMuted ( ) const
+{
+ return m_vol_muted;
+}
+
void VolumeAppletControl::showEvent( QShowEvent* e )
{
odebug << "showEvent" << oendl;
QWidget::showEvent( e );
}
void VolumeAppletControl::hideEvent( QHideEvent* e )
{
odebug << "hideEvent" << oendl;
QWidget::hideEvent( e );
}
QSize VolumeAppletControl::sizeHint() const
{
- return QSize( 200, 200 ); //QFrame::sizeHint();
+ int wd = QPEApplication::desktop()->width();
+ return QSize( wd, 200 ); //QFrame::sizeHint();
}
VolumeApplet::VolumeApplet( QWidget *parent, const char *name )
:OTaskbarApplet( parent, 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" );
}
VolumeApplet::~VolumeApplet()
{
}
int VolumeApplet::position()
{
return 4;
}
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 );
}
void VolumeApplet::mousePressEvent( QMouseEvent* )
{
if ( !_control->isVisible() )
{
popup( _control );
}
else
{
_control->hide();
}
}
EXPORT_OPIE_APPLET_v1( VolumeApplet )
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
@@ -1,103 +1,112 @@
/*
                This file is part of the Opie Project
=. (C) 2005 Michael 'Mickey' Lauer <mickey@Vanille.de>
.=l.
           .>+-=
 _;:,     .>    :=|. This program is free software; you can
.> <`_,   >  .   <= redistribute it and/or modify it under
:`=1 )Y*s>-.--   : the terms of the GNU Library General Public
.="- .-=="i,     .._ License as published by the Free Software
 - .   .-<_>     .<> Foundation; either version 2 of the License,
     ._= =}       : or (at your option) any later version.
    .%`+i>       _;_.
    .i_,=:_.      -<s. This program is distributed in the hope that
     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
    : ..    .:,     . . . without even the implied warranty of
    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
..}^=.=       =       ; Library General Public License for more
++=   -.     .`     .: details.
 :     =  ...= . :.=-
 -.   .:....=;==+<; You should have received a copy of the GNU
  -_. . .   )=.  = Library General Public License along with
    --        :-=` this library; see the file COPYING.LIB.
If not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#ifndef VOLUMEAPPLET_H
#define VOLUMEAPPLET_H
#include <opie2/otaskbarapplet.h>
+#include <opie2/osoundsystem.h>
#include <qframe.h>
#include <qstring.h>
#include <qvbox.h>
#include <qpixmap.h>
+//using namespace Opie::MM;
namespace Opie
{
namespace Ui { class OLedBox; }
- namespace MM { class OMixerInterface; }
+// namespace MM { class OMixerInterface; }
}
class QLabel;
class QSlider;
class QShowEvent;
class QHideEvent;
class QGridLayout;
class Channel : public QVBox
{
public:
Channel( Opie::MM::OMixerInterface* mixer, QWidget* parent, const char* name );
virtual ~Channel();
// public slots:
// virtual void clicked();
private:
QLabel* _name;
QSlider* _volume;
Opie::Ui::OLedBox* _mute;
Opie::MM::OMixerInterface* _mixer;
};
class VolumeAppletControl : public QFrame
{
public:
VolumeAppletControl( Opie::Ui::OTaskbarApplet* parent, const char* name = 0 );
~VolumeAppletControl();
+ bool volMuted() const;
+ int volPercent() const;
+
+ int m_vol_percent;
+ bool m_vol_muted;
+
+ Opie::MM::OMixerInterface* mixer;
virtual QSize sizeHint() const;
protected:
virtual void showEvent( QShowEvent* );
virtual void hideEvent( QHideEvent* );
void build();
private:
- QGridLayout* l;
+ QGridLayout* l;
};
class VolumeApplet : public Opie::Ui::OTaskbarApplet
{
public:
VolumeApplet( QWidget* parent = 0, const char* name = 0 );
~VolumeApplet();
static int position();
protected:
virtual void paintEvent( QPaintEvent* );
virtual void mousePressEvent( QMouseEvent* );
private:
VolumeAppletControl* _control;
- QPixmap _pixmap;
+ QPixmap* _pixmap;
};
#endif
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
@@ -1,277 +1,282 @@
/***************************************************************************
advancedfmData.cpp
-------------------
** Created: Mon 09-23-2002 13:24:11
copyright : (C) 2002 by ljp
email : ljp@llornkcor.com
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
***************************************************************************/
#include "advancedfm.h"
/* OPIE */
#include <opie2/odebug.h>
#include <opie2/oresource.h>
#include <qpe/applnk.h>
#include <qpe/storage.h>
#include <qpe/qpeapplication.h>
#include <qpe/menubutton.h>
using namespace Opie::Core;
using namespace Opie::Ui;
/* QT */
+#include <qframe.h>
#include <qlayout.h>
#include <qhbox.h>
#include <qmenubar.h>
#include <qcombobox.h>
#include <qtoolbutton.h>
#include <qlineedit.h>
#include <qlistview.h>
/* STD */
#include <sys/utsname.h>
void AdvancedFm::init() {
b = false;
setCaption( tr( "AdvancedFm" ) );
+// QFrame* frame = new QFrame(this);
+// setCentralWidget(frame);
+// QVBoxLayout *layout = new QVBoxLayout( frame );
+
QVBoxLayout *layout = new QVBoxLayout( this );
layout->setSpacing( 2);
layout->setMargin( 0); // squeeze
QMenuBar *menuBar = new QMenuBar(this);
menuBar->setMargin( 0 ); // squeeze
fileMenu = new QPopupMenu( this );
viewMenu = new QPopupMenu( this );
// customDirMenu = new QPopupMenu( this );
layout->addWidget( menuBar );
menuBar->insertItem( tr( "File" ), fileMenu);
menuBar->insertItem( tr( "View" ), viewMenu);
bool useBigIcon = qApp->desktop()->size().width() > 330;
cdUpButton = new QToolButton( 0,"cdUpButton");
cdUpButton->setUsesBigPixmap( useBigIcon );
cdUpButton->setPixmap( Opie::Core::OResource::loadPixmap( "up", Opie::Core::OResource::SmallIcon ) );
cdUpButton->setAutoRaise( true );
menuBar->insertItem( cdUpButton );
qpeDirButton= new QToolButton( 0,"QPEButton");
qpeDirButton->setUsesBigPixmap( useBigIcon );
qpeDirButton->setPixmap( Opie::Core::OResource::loadPixmap( "logo/opielogo", Opie::Core::OResource::SmallIcon ) );
qpeDirButton->setAutoRaise( true );
menuBar->insertItem( qpeDirButton );
cfButton = new QToolButton( 0, "CFButton");
cfButton->setUsesBigPixmap( useBigIcon );
cfButton->setPixmap( Opie::Core::OResource::loadPixmap( "pcmcia", Opie::Core::OResource::SmallIcon ) );
cfButton->setAutoRaise( true );
menuBar->insertItem( cfButton );
sdButton = new QToolButton( 0, "SDButton");
sdButton->setUsesBigPixmap( useBigIcon );
sdButton->setPixmap( Opie::Core::OResource::loadPixmap( "advancedfm/sdcard", Opie::Core::OResource::SmallIcon ) );
sdButton->setAutoRaise( true );
menuBar->insertItem( sdButton );
docButton = new QToolButton( 0,"docsButton");
docButton->setUsesBigPixmap( useBigIcon );
docButton->setPixmap( Opie::Core::OResource::loadPixmap( "DocsIcon", Opie::Core::OResource::SmallIcon ) );
docButton->setAutoRaise( true );
menuBar->insertItem( docButton );
homeButton = new QToolButton( 0, "homeButton");
homeButton->setUsesBigPixmap( useBigIcon );
homeButton->setPixmap( Opie::Core::OResource::loadPixmap( "home", Opie::Core::OResource::SmallIcon ) );
homeButton->setAutoRaise( true );
menuBar->insertItem( homeButton );
fileMenu->insertItem( tr( "Show Hidden Files" ), this, SLOT( showMenuHidden() ));
fileMenu->setItemChecked( fileMenu->idAt(0),TRUE);
fileMenu->insertSeparator();
fileMenu->insertItem( tr( "File Search" ), this, SLOT( openSearch() ));
fileMenu->insertSeparator();
fileMenu->insertItem( tr( "Make Directory" ), this, SLOT( mkDir() ));
fileMenu->insertItem( tr( "Rename" ), this, SLOT( rn() ));
fileMenu->insertItem( tr( "Run Command" ), this, SLOT( runCommandStd() ));
fileMenu->insertItem( tr( "Run Command with Output" ), this, SLOT( runCommand() ));
fileMenu->insertSeparator();
fileMenu->insertItem( tr( "Make Symlink" ), this, SLOT( mkSym() ));
fileMenu->insertItem( tr( "Select All" ), this, SLOT( selectAll() ));
fileMenu->insertItem( tr( "Add To Documents" ), this, SLOT( addToDocs() ));
fileMenu->insertItem( tr( "Delete" ), this, SLOT( del() ));
fileMenu->setCheckable(TRUE);
viewMenu->insertItem( tr( "Switch to View 1" ), this, SLOT( switchToLocalTab()));
viewMenu->insertItem( tr( "Switch to View 2" ), this, SLOT( switchToRemoteTab()));
viewMenu->insertItem( tr( "Refresh" ), this, SLOT( refreshCurrentTab()));
// viewMenu->insertSeparator();
// viewMenu->insertItem( tr( "About" ), this, SLOT( doAbout() ));
viewMenu->setCheckable(true);
viewMenu->setItemChecked( viewMenu->idAt(0), true);
viewMenu->setItemChecked( viewMenu->idAt(1), false);
s_addBookmark = tr("Bookmark Directory");
s_removeBookmark = tr("Remove Current Directory from Bookmarks");
// menuButton->insertItem("");
// customDirMenu->insertItem(tr("Add This Directory"));
// customDirMenu->insertItem(tr("Remove This Directory"));
// customDirMenu->insertSeparator();
QHBoxLayout *CBHB = new QHBoxLayout(); // parent layout will be set later
CBHB->setMargin( 0 );
CBHB->setSpacing( 1 );
menuButton = new MenuButton( this );
menuButton->setUseLabel(false);
menuButton->setMaximumWidth( 20 );
menuButton->insertItem( s_addBookmark);
menuButton->insertItem( s_removeBookmark);
menuButton->insertSeparator();
// menuButton->setFocusPolicy(NoFocus);
CBHB->addWidget( menuButton );
customDirsToMenu();
currentPathCombo = new QComboBox( FALSE, this, "currentPathCombo" );
currentPathCombo->setEditable(TRUE);
currentPathCombo->lineEdit()->setText( currentDir.canonicalPath());
// currentPathCombo->setFocusPolicy(NoFocus);
CBHB->addWidget( currentPathCombo );
layout->addLayout( CBHB );
TabWidget = new OSplitter( Horizontal, this, "TabWidget" );
// TabWidget = new QTabWidget( this, "TabWidget" );
layout->addWidget( TabWidget, 4 );
tab = new QWidget( TabWidget, "tab" );
tabLayout = new QGridLayout( tab );
tabLayout->setSpacing( 2);
tabLayout->setMargin( 2);
Local_View = new QListView( tab, "Local_View" );
Local_View->addColumn( tr("File"),130);
Local_View->addColumn( tr("Size"),-1);
Local_View->setColumnAlignment(1,QListView::AlignRight);
Local_View->addColumn( tr("Date"),-1);
Local_View->setColumnAlignment(2,QListView::AlignRight);
Local_View->setAllColumnsShowFocus(TRUE);
Local_View->setMultiSelection( TRUE );
Local_View->setSelectionMode(QListView::Extended);
Local_View->setFocusPolicy(StrongFocus);
Local_View->installEventFilter( this );
QPEApplication::setStylusOperation( Local_View->viewport() , QPEApplication::RightOnHold);
tabLayout->addWidget( Local_View, 0, 0 );
TabWidget->addWidget( tab,"advancedfm/smFileBrowser.png", tr("1"));
// TabWidget->insertTab( tab, tr("1"));
tab_2 = new QWidget( TabWidget, "tab_2" );
tabLayout_2 = new QGridLayout( tab_2 );
tabLayout_2->setSpacing( 2);
tabLayout_2->setMargin( 2);
Remote_View = new QListView( tab_2, "Remote_View" );
Remote_View->addColumn( tr("File"),130);
Remote_View->addColumn( tr("Size"),-1);
Remote_View->setColumnAlignment(1,QListView::AlignRight);
Remote_View->addColumn( tr("Date"),-1);
Remote_View->setColumnAlignment(2,QListView::AlignRight);
Remote_View->setAllColumnsShowFocus(TRUE);
Remote_View->setMultiSelection( TRUE );
Remote_View->setSelectionMode(QListView::Extended);
Remote_View->setFocusPolicy(StrongFocus);
Remote_View->installEventFilter( this );
QPEApplication::setStylusOperation( Remote_View->viewport(), QPEApplication::RightOnHold);
tabLayout_2->addWidget( Remote_View, 0, 0 );
TabWidget->addWidget( tab_2, "advancedfm/smFileBrowser.png",tr( "2"));
TabWidget->setSizeChange( 370 );
// TabWidget->insertTab( tab_2, tr( "2"));
/* tab_3 = new QWidget( TabWidget, "tab_3" );
tabLayout_3 = new QGridLayout( tab_3 );
tabLayout_3->setSpacing( 2);
tabLayout_3->setMargin( 2);
// OFileDialog fileDialog;
// fileDialog;
// fileSelector = new FileSelector( "*",tab_3, "fileselector" , FALSE, FALSE); //buggy
// fileDialog = new OFileDialog("bangalow", tab_3, 4, 2, "Bungalow");
// OFileSelector fileDialog = new OFileSelector( tab_3, 4, 2,"/");
QListView *fileTree;
fileTree = new QListView( tab_3, "tree" );
tabLayout_3->addMultiCellWidget( fileTree, 0, 0, 0, 3 );
TabWidget->insertTab( tab_3, tr( "Remote" ) );
*/
///////////////
if( !StorageInfo::hasSd() || !StorageInfo::hasMmc()) {
sdButton->hide();
}
if( !StorageInfo::hasCf() ) {
cfButton->hide();
}
currentDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All);
currentDir.setPath( QDir::currentDirPath());
currentRemoteDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All);
currentRemoteDir.setPath( QDir::currentDirPath());
filterStr="*";
showMenuHidden();
TabWidget->setCurrentWidget(0);
}
void AdvancedFm::initConnections()
{
connect(qApp,SIGNAL(aboutToQuit()),this,SLOT(cleanUp()));
connect(qpeDirButton,SIGNAL(released()),this,SLOT(QPEButtonPushed()));
connect(cfButton,SIGNAL(released()),this,SLOT(CFButtonPushed()));
connect(sdButton,SIGNAL(released()),this,SLOT(SDButtonPushed()));
connect(cdUpButton,SIGNAL(released()),this,SLOT(upDir()));
connect(docButton,SIGNAL(released()),this,SLOT(docButtonPushed()));
connect(homeButton,SIGNAL(released()),this,SLOT(homeButtonPushed()));
connect(currentPathCombo,SIGNAL(activated(const QString&)),this,SLOT(changeTo(const QString&)));
connect(currentPathCombo->lineEdit(),SIGNAL(returnPressed()),this,SLOT(currentPathComboChanged()));
connect(Local_View,SIGNAL(clicked(QListViewItem*)),this,SLOT( ListClicked(QListViewItem*)));
connect(Local_View,SIGNAL(mouseButtonPressed(int,QListViewItem*,const QPoint&,int)),this,SLOT( ListPressed(int,QListViewItem*,const QPoint&,int)) );
connect(Remote_View,SIGNAL(clicked(QListViewItem*)),this,SLOT(ListClicked(QListViewItem*)));
connect(Remote_View,SIGNAL(mouseButtonPressed(int,QListViewItem*,const QPoint&,int)),this,SLOT(ListPressed(int,QListViewItem*,const QPoint&,int)));
connect(TabWidget,SIGNAL(currentChanged(QWidget*)),this,SLOT(tabChanged(QWidget*)));
connect(Remote_View,SIGNAL(rightButtonPressed(QListViewItem*,const QPoint&,int)),this,SLOT(showFileMenu()));
connect(Local_View,SIGNAL(rightButtonPressed(QListViewItem*,const QPoint&,int)),this,SLOT(showFileMenu()));
connect(menuButton,SIGNAL(selected(const QString&)),SLOT(gotoCustomDir(const QString&)));
// connect( menuButton, SIGNAL( selected(int)), SLOT( dirMenuSelected(int)));
connect(viewMenu,SIGNAL(activated(int)),this,SLOT(slotSwitchMenu(int)));
// connect( customDirMenu, SIGNAL( activated(int)), this, SLOT( dirMenuSelected(int)));
}
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
@@ -275,600 +275,614 @@ void AdvancedFm::upDir() {
changeTo(dir.canonicalPath());
}
void AdvancedFm::copyTimer() {
QTimer::singleShot(125,this,SLOT(copy()));
}
void AdvancedFm::copy() {
QStringList curFileList = getPath();
QDir *thisDir = CurrentDir();
QDir *thatDir = OtherDir();
bool doMsg = true;
int count = curFileList.count();
if( count > 0) {
if(count > 1 ){
QString msg;
msg=tr("<p>Really copy %1 files?</p>").arg(count);
switch ( QMessageBox::warning(this,tr("Copy"),msg
,tr("Yes"),tr("No"),0,0,1) )
{
case 0:
doMsg=false;
break;
case 1:
return;
break;
default:
return;
break;
};
}
QString curFile, item, destFile;
for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
item=(*it);
if(item.find("->",0,TRUE)) //symlink
item = item.left(item.find("->",0,TRUE));
curFile = thisDir->canonicalPath()+"/"+ item;
destFile = thatDir->canonicalPath()+"/"+ item;
// odebug << "Destination file is "+destFile << oendl;
// odebug << "CurrentFile file is " + curFile << oendl;
QFile f(destFile);
if( f.exists()) {
if(doMsg) {
switch ( QMessageBox::warning(this,tr("File Exists!"),
tr("<p>%1 already exists. Ok to overwrite?</P>").arg(item),
tr("Yes"),tr("No"),0,0,1)) {
case 0:
break;
case 1:
return;
break;
default:
return;
break;
};
}
f.remove();
}
if( !copyFile( curFile, destFile) ) {
QMessageBox::message("AdvancedFm",
tr( "<P>Could not copy %1 to %2</P>").arg(curFile).arg(destFile));
return;
}
}
rePopulate();
}
}
void AdvancedFm::copyAsTimer() {
QTimer::singleShot(125,this,SLOT(copyAs()));
}
void AdvancedFm::copyAs() {
QStringList curFileList = getPath();
QString curFile, item;
InputDialog *fileDlg;
QDir *thisDir = CurrentDir();
QDir *thatDir = OtherDir();
for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
QString destFile;
item=(*it);
curFile = thisDir->canonicalPath()+"/"+(*it);
fileDlg = new InputDialog( this, tr("Copy %1 As").arg(curFile), TRUE, 0);
fileDlg->setInputText((const QString &) destFile );
fileDlg->exec();
if( fileDlg->result() == 1 ) {
QString filename = fileDlg->LineEdit1->text();
destFile = thatDir->canonicalPath()+"/"+filename;
QFile f( destFile);
if( f.exists()) {
switch (QMessageBox::warning(this,tr("File Exists!"),
tr("<P> %1 already exists. Ok to overwrite?</p>").arg(item),
tr("Yes"),tr("No"),0,0,1) ) {
case 0:
f.remove();
break;
case 1:
return;
break;
default:
return;
break;
};
}
if( !copyFile( curFile, destFile) ) {
QMessageBox::message("AdvancedFm",tr("<p>Could not copy %1 to %2</P>").arg(curFile).arg(destFile));
return;
}
}
delete fileDlg;
}
rePopulate();
// setOtherTabCurrent();
qApp->processEvents();
}
void AdvancedFm::copySameDirTimer() {
QTimer::singleShot(125,this,SLOT(copySameDir()));
}
void AdvancedFm::copySameDir() {
qApp->processEvents();
QStringList curFileList = getPath();
QString curFile, item, destFile;
InputDialog *fileDlg;
QDir *thisDir = CurrentDir();
for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
item=(*it);
curFile = thisDir->canonicalPath()+"/"+ item;
fileDlg = new InputDialog(this,tr("Copy ")+curFile+tr(" As"),TRUE, 0);
fileDlg->setInputText((const QString &) destFile );
fileDlg->exec();
if( fileDlg->result() == 1 ) {
QString filename = fileDlg->LineEdit1->text();
destFile = thisDir->canonicalPath()+"/"+filename;
QFile f(destFile);
if( f.exists()) {
switch (QMessageBox::warning(this,tr("Delete"),
tr("<p> %1 already exists. Do you really want to delete it?</P>").arg(destFile),
tr("Yes"),tr("No"),0,0,1) ) {
case 0:
f.remove();
break;
case 1:
return;
break;
default:
return;
break;
};
}
if(!copyFile( curFile,destFile) ) {
QMessageBox::message("AdvancedFm",tr("<P>Could not copy %1 to %2</P>").arg(curFile).arg(destFile));
return;
}
// odebug << "copy "+curFile+" as "+destFile << oendl;
}
delete fileDlg;
}
rePopulate();
}
void AdvancedFm::moveTimer() {
QTimer::singleShot(125,this,SLOT(move()));
}
void AdvancedFm::move() {
QStringList curFileList = getPath();
if( curFileList.count() > 0) {
QString curFile, destFile, item;
QDir *thisDir = CurrentDir();
QDir *thatDir = OtherDir();
for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
item=(*it);
QString destFile = thatDir->canonicalPath();
if(destFile.right(1).find("/",0,TRUE) == -1)
destFile+="/";
destFile += item;
// odebug << "Destination file is "+destFile << oendl;
curFile = thisDir->canonicalPath();
if(curFile.right(1).find("/",0,TRUE) == -1)
curFile +="/";
curFile+= item;
// odebug << "CurrentFile file is " + curFile << oendl;
if(QFileInfo(curFile).isDir()) {
moveDirectory( curFile, destFile );
rePopulate();
return;
}
QFile f( destFile);
if( f.exists()) {
switch ( QMessageBox::warning(this,tr("File Exists!"),
tr("<p>%1 already exists. Ok to overwrite?</P>").arg(destFile),
tr("Yes"),tr("No"),0,0,1)) {
case 0:
break;
case 1:
return;
break;
default:
return;
break;
};
}
if( !copyFile( curFile, destFile) ) {
QMessageBox::message(tr("Note"),tr("<p>Could not move %1</p>").arg(curFile));
return;
} else
QFile::remove(curFile);
}
}
rePopulate();
// setOtherTabCurrent();
}
bool AdvancedFm::moveDirectory( const QString & src, const QString & dest ) {
int err = 0;
if( copyDirectory( src, dest ) ) {
QString cmd = "rm -rf " + src;
err = system((const char*)cmd);
} else
err = -1;
if(err!=0) {
QMessageBox::message(tr("Note"),tr("<p>Could not move %1</p>").arg( src));
return false;
}
return true;
}
bool AdvancedFm::copyDirectory( const QString & src, const QString & dest ) {
QString cmd = "/bin/cp -fpR " + src + " " + dest;
owarn << cmd << oendl;
int err = system( (const char *) cmd );
if ( err != 0 ) {
QMessageBox::message("AdvancedFm", tr( "<p>Could not copy %1 to %2</p>").arg( src ).arg( dest ) );
return false;
}
return true;
}
bool AdvancedFm::copyFile( const QString & src, const QString & dest ) {
if(QFileInfo(src).isDir()) {
if( copyDirectory( src, dest )) {
// setOtherTabCurrent();
rePopulate();
return true;
}
else
return false;
}
bool success = true;
struct stat status;
QFile srcFile(src);
QFile destFile(dest);
int err=0;
int read_fd=0;
int write_fd=0;
struct stat stat_buf;
off_t offset = 0;
if(!srcFile.open( IO_ReadOnly|IO_Raw)) {
// owarn << "open failed" << oendl;
return success = false;
}
read_fd = srcFile.handle();
if(read_fd != -1) {
fstat (read_fd, &stat_buf);
if( !destFile.open( IO_WriteOnly|IO_Raw ) ) {
// owarn << "destfile open failed" << oendl;
return success = false;
}
write_fd = destFile.handle();
if(write_fd != -1) {
err = sendfile(write_fd, read_fd, &offset, stat_buf.st_size);
if( err == -1) {
QString msg;
switch(err) {
case EBADF : msg = "The input file was not opened for reading or the output file was not opened for writing. ";
case EINVAL: msg = "Descriptor is not valid or locked. ";
case ENOMEM: msg = "Insufficient memory to read from in_fd.";
case EIO: msg = "Unspecified error while reading from in_fd.";
};
success = false;
// owarn << msg << oendl;
}
} else {
success = false;
}
} else {
success = false;
}
srcFile.close();
destFile.close();
// Set file permissions
if( stat( QFile::encodeName(src), &status ) == 0 ) {
chmod( QFile::encodeName(dest), status.st_mode );
}
return success;
}
void AdvancedFm::runCommand() {
if( !CurrentView()->currentItem()) return;
QDir *thisDir = CurrentDir();
QString curFile;
curFile = thisDir->canonicalPath() +"/"+ CurrentView()->currentItem()->text(0);
InputDialog *fileDlg;
fileDlg = new InputDialog(this,tr("Run Command"),TRUE, 0);
fileDlg->setInputText(curFile);
fileDlg->exec();
//QString command;
if( fileDlg->result() == 1 ) {
// odebug << fileDlg->LineEdit1->text() << oendl;
QStringList command;
command << "/bin/sh";
command << "-c";
command << fileDlg->LineEdit1->text();
Output *outDlg;
outDlg = new Output( command, this, tr("AdvancedFm Output"), true);
QPEApplication::execDialog( outDlg );
qApp->processEvents();
}
}
void AdvancedFm::runCommandStd() {
if( !CurrentView()->currentItem()) return;
QString curFile;
QDir *thisDir = CurrentDir();
QListView *thisView = CurrentView();
if( thisView->currentItem())
curFile = thisDir->canonicalPath() +"/"+ thisView->currentItem()->text(0);
InputDialog *fileDlg;
fileDlg = new InputDialog(this,tr("Run Command"),TRUE, 0);
fileDlg->setInputText(curFile);
fileDlg->exec();
if( fileDlg->result() == 1 ) {
qApp->processEvents();
startProcess( (const QString)fileDlg->LineEdit1->text().latin1());
}
}
void AdvancedFm::fileStatus() {
if( !CurrentView()->currentItem()) return;
QString curFile;
curFile = CurrentView()->currentItem()->text(0);
-
+ if(QFileInfo("/usr/bin/stat").exists()) {
QStringList command;
command << "/bin/sh";
command << "-c";
command << "stat -l "+ curFile;
-
Output *outDlg;
outDlg = new Output( command, this, tr("AdvancedFm Output"), true);
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();
}
void AdvancedFm::mkDir() {
makeDir();
}
void AdvancedFm::rn() {
renameIt();
}
void AdvancedFm::del() {
doDelete();
}
void AdvancedFm::mkSym() {
QString cmd;
QStringList curFileList = getPath();
if( curFileList.count() > 0) {
QDir *thisDir = CurrentDir();
QDir * thatDir = OtherDir();
for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
QString destName = thatDir->canonicalPath()+"/"+(*it);
if(destName.right(1) == "/") {
destName = destName.left( destName.length() -1);
}
QString curFile = thisDir->canonicalPath()+"/"+(*it);
if( curFile.right(1) == "/") {
curFile = curFile.left( curFile.length() -1);
}
cmd = "ln -s "+curFile+" "+destName;
// odebug << cmd << oendl;
startProcess( (const QString)cmd );
}
rePopulate();
setOtherTabCurrent();
}
}
void AdvancedFm::doBeam() {
Ir ir;
if(!ir.supported()) {
} else {
QStringList curFileList = getPath();
if( curFileList.count() > 0) {
for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
QString curFile = (*it);
QString curFilePath = CurrentDir()->canonicalPath()+"/"+curFile;
if( curFilePath.right(1) == "/") {
curFilePath = curFilePath.left( curFilePath.length() -1);
}
Ir *file = new Ir(this, "IR");
connect(file, SIGNAL(done(Ir*)), this, SLOT( fileBeamFinished(Ir*)));
file->send( curFilePath, curFile );
}
}
}
}
void AdvancedFm::fileBeamFinished( Ir *) {
QMessageBox::message( tr("Advancedfm Beam out"), tr("Ir sent.") ,tr("Ok") );
}
void AdvancedFm::selectAll() {
QListView *thisView = CurrentView();
thisView->selectAll(true);
thisView->setSelected( thisView->firstChild(),false);
}
void AdvancedFm::startProcess(const QString & cmd) {
QStringList command;
OProcess *process;
process = new OProcess();
connect(process,SIGNAL(processExited(Opie::Core::OProcess*)),this,SLOT(processEnded(Opie::Core::OProcess*)));
connect(process,SIGNAL(receivedStderr(Opie::Core::OProcess*,char*,int)),this,SLOT(oprocessStderr(Opie::Core::OProcess*,char*,int)));
command << "/bin/sh";
command << "-c";
command << cmd.latin1();
*process << command;
if(!process->start(OProcess::NotifyOnExit, OProcess::All) )
odebug << "could not start process" << oendl;
}
void AdvancedFm::processEnded(OProcess *) {
rePopulate();
}
void AdvancedFm::oprocessStderr(OProcess*, char *buffer, int ) {
// owarn << "received stderrt " << buflen << " bytes" << oendl;
QString lineStr = buffer;
QMessageBox::warning( this, tr("Error"), lineStr ,tr("Ok") );
}
bool AdvancedFm::eventFilter( QObject * o, QEvent * e ) {
if ( o->inherits( "QLineEdit" ) ) {
if ( e->type() == QEvent::KeyPress ) {
QKeyEvent *ke = (QKeyEvent*)e;
if ( ke->key() == Key_Return ||
ke->key() == Key_Enter ) {
okRename();
return true;
}
else if ( ke->key() == Key_Escape ) {
cancelRename();
return true;
}
}
else if ( e->type() == QEvent::FocusOut ) {
cancelRename();
return true;
}
}
if ( o->inherits( "QListView" ) ) {
if ( e->type() == QEvent::FocusIn ) {
if( o == Local_View) { //keep track of which view
whichTab = 1;
viewMenu->setItemChecked(viewMenu->idAt(0), true);
viewMenu->setItemChecked(viewMenu->idAt(1), false);
} else {
whichTab = 2;
viewMenu->setItemChecked(viewMenu->idAt(0), false);
viewMenu->setItemChecked(viewMenu->idAt(1), true);
}
}
OtherView()->setSelected( OtherView()->currentItem(), FALSE );//make sure there's correct selection
}
return QWidget::eventFilter( o, e );
}
void AdvancedFm::cancelRename() {
// odebug << "cancel rename" << oendl;
QListView * view;
view = CurrentView();
bool resetFocus = view->viewport()->focusProxy() == renameBox;
delete renameBox;
renameBox = 0;
if ( resetFocus ) {
view->viewport()->setFocusProxy( view);
view->setFocus();
}
}
void AdvancedFm::doRename(QListView * view) {
if( !CurrentView()->currentItem()) return;
QRect r = view->itemRect( view->currentItem( ));
r = QRect( view->viewportToContents( r.topLeft() ), r.size() );
r.setX( view->contentsX() );
if ( r.width() > view->visibleWidth() )
r.setWidth( view->visibleWidth() );
renameBox = new QLineEdit( view->viewport(), "qt_renamebox" );
renameBox->setFrame(true);
renameBox->setText( view->currentItem()->text(0) );
renameBox->selectAll();
renameBox->installEventFilter( this );
view->addChild( renameBox, r.x(), r.y() );
renameBox->resize( r.size() );
view->viewport()->setFocusProxy( renameBox );
renameBox->setFocus();
renameBox->show();
}
void AdvancedFm::renameIt() {
if( !CurrentView()->currentItem()) return;
QListView *thisView = CurrentView();
oldName = thisView->currentItem()->text(0);
doRename( thisView );
}
void AdvancedFm::okRename() {
qDebug("okrename");
if( !renameBox) return;
QString newName = renameBox->text();
cancelRename();
QListView * view = CurrentView();
QString path = CurrentDir()->canonicalPath() + "/";
oldName = path + oldName;
newName = path + newName;
if( rename( oldName.latin1(), newName.latin1())== -1)
QMessageBox::message(tr("Note"),tr("Could not rename"));
else
oldName = "";
QListViewItem *item = view->currentItem();
view->takeItem( item );
delete item;
populateView();
}
void AdvancedFm::openSearch() {
QMessageBox::message(tr("Note"),tr("Not Yet Implemented"));
}
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,17 +1,15 @@
-#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
+
include( $(OPIEDIR)/include.pro )
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
@@ -1,51 +1,51 @@
/**********************************************************************
** Copyright (C) 2000 Trolltech AS. All rights reserved.
**
** This file is part of Qtopia Environment.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#include "binaryfactory.h"
#include "binaryimpl.h"
-#include <engine.h>
+#include "../engine.h"
QWidget *BinaryInterface::getPlugin ( Engine *e, QWidget *parent ) {
if ( !input )
input = new FormBinaryImpl ( e, parent );
return input;
}
#ifndef QT_NO_COMPONENT
QRESULT BinaryInterface::queryInterface( const QUuid &uuid, QUnknownInterface **iface )
{
*iface = 0;
if ( uuid == IID_QUnknown )
*iface = this;
else if ( uuid == IID_Calc )
*iface = this;
if ( *iface )
(*iface)->addRef();
return QS_OK;
}
Q_EXPORT_INTERFACE()
{
Q_CREATE_INSTANCE( BinaryInterface )
}
#endif
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
@@ -1,46 +1,46 @@
/**********************************************************************
** Copyright (C) 2000 Trolltech AS. All rights reserved.
**
** This file is part of Qtopia Environment.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#ifndef BINARYIMPL_H
#define BINARYIMPL_H
#include "binaryimpl.h"
-#include <plugininterface.h>
-#include <engine.h>
+#include "../plugininterface.h"
+#include "../engine.h"
class BinaryInterface : public CalcInterface
{
public:
BinaryInterface(){input = 0;};
virtual ~BinaryInterface(){};
#ifndef QT_NO_COMPONENT
QRESULT queryInterface( const QUuid&, QUnknownInterface** );
Q_REFCOUNT
#endif
QWidget *getPlugin( Engine *, QWidget *parent );
private:
FormBinaryImpl *input;
ulong ref;
};
#endif
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
@@ -1,110 +1,110 @@
/**********************************************************************
** Copyright (C) 2000 Trolltech AS. All rights reserved.
**
** This file is part of Qtopia Environment.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#include "binaryimpl.h"
-#include <instruction.h>
+#include "../instruction.h"
class iXOR : public Instruction {
public:
iXOR():Instruction(){};
~iXOR(){};
Data eval(Data num) {
Data result;
result.i = num.i ^ acc.i;
return result;
};
};
class iAND : public Instruction {
public:
iAND():Instruction(){};
~iAND(){};
Data eval(Data num) {
Data result;
result.i = num.i & acc.i;
return result;
};
};
class iNOT : public Instruction {
public:
iNOT():Instruction(){};
~iNOT(){};
Data eval(Data num) {
Data result;
result.i = ~ num.i;
return result;
};
};
class iOR : public Instruction {
public:
iOR():Instruction(){};
~iOR(){};
Data eval(Data num) {
Data result;
result.i = num.i | acc.i;
return result;
};
};
class iLSH : public Instruction {
public:
iLSH():Instruction(){};
~iLSH(){};
Data eval(Data num) {
Data result;
result.i = num.i << 1;
return result;
};
};
class iRSH : public Instruction {
public:
iRSH():Instruction(){};
~iRSH(){};
Data eval(Data num) {
Data result;
result.i = num.i >> 1;
return result;
};
};
void FormBinaryImpl::val0Clicked() {
engine->pushValue('0');
}
void FormBinaryImpl::val1Clicked() {
engine->pushValue('1');
}
void FormBinaryImpl::XORClicked() {
engine->pushInstruction(new iXOR());
}
void FormBinaryImpl::ANDClicked() {
engine->pushInstruction(new iAND());
}
void FormBinaryImpl::NOTClicked() {
engine->immediateInstruction(new iNOT());
}
void FormBinaryImpl::ORClicked() {
engine->pushInstruction(new iOR());
}
void FormBinaryImpl::LSHClicked() {
engine->immediateInstruction(new iLSH());
}
void FormBinaryImpl::RSHClicked() {
engine->immediateInstruction(new iRSH());
}
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
@@ -1,50 +1,50 @@
/**********************************************************************
** Copyright (C) 2000 Trolltech AS. All rights reserved.
**
** This file is part of Qtopia Environment.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#ifndef FORMBINARYINPUTIMPL
#define FORMBINARYINPUTIMPL
#include "binary.h"
-#include <engine.h>
+#include "../engine.h"
class FormBinaryImpl : public FormBinary {
Q_OBJECT
public:
FormBinaryImpl(Engine *e,QWidget *p) : FormBinary (p,"Binary") {
engine = e;
engine->setRepresentation(rBin);
};
~FormBinaryImpl(){};
private:
Engine *engine;
private slots:
void val0Clicked();
void val1Clicked();
void XORClicked();
void ANDClicked();
void NOTClicked();
void ORClicked();
void LSHClicked();
void RSHClicked();
};
#endif
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
@@ -1,104 +1,103 @@
/**********************************************************************
** Copyright (C) 2000 Trolltech AS. All rights reserved.
**
** This file is part of Qtopia Environment.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#include <qvaluelist.h>
#include <qpe/qpeapplication.h>
#include <qdir.h>
#include <qwidgetstack.h>
#include "calc.h"
#include "plugininterface.h"
calc::calc (QWidget * p, const char *n):QWidget (p, n)
{
setCaption (tr ("Calculator"));
// widgets
LCD = new QLCDNumber (this);
LCD->setMaximumSize (QSize (240, 30));
LCD->setNumDigits(12);
LCD->setSegmentStyle(QLCDNumber::Filled);
pluginWidgetStack = new QWidgetStack (this);
// layout widgets
calculatorLayout = new QVBoxLayout (this);
calculatorLayout->addWidget (LCD);
calculatorLayout->addWidget (pluginWidgetStack);
// no formatting of display for now
connect (&engine, SIGNAL(display(double)), LCD, SLOT(display(double)));
connect (&engine, SIGNAL(display(const QString&)), LCD, SLOT(display(const QString&)));
connect (&engine, SIGNAL(setBinMode()), LCD, SLOT(setBinMode()));
connect (&engine, SIGNAL(setOctMode()), LCD, SLOT(setOctMode()));
connect (&engine, SIGNAL(setDecMode()), LCD, SLOT(setDecMode()));
connect (&engine, SIGNAL(setHexMode()), LCD, SLOT(setHexMode()));
#ifndef NO_PLUGINS
// load plugins
QValueList < Plugin >::Iterator mit;
for (mit = pluginList.begin (); mit != pluginList.end (); ++mit) {
(*mit).interface->release ();
(*mit).library->unload ();
delete (*mit).library;
}
pluginList.clear ();
QString path = QPEApplication::qpeDir() + "plugins/calculator";
QDir dir (path, "lib*.so");
QStringList list = dir.entryList ();
QStringList::Iterator it;
for (it = list.begin (); it != list.end (); ++it) {
CalcInterface *iface = 0;
QLibrary *lib = new QLibrary (path + "/" + *it);
-
Plugin plugin;
plugin.pluginWidget = 0;
if (lib->queryInterface (IID_Calc, (QUnknownInterface **) & iface) ==
QS_OK) {
plugin.library = lib;
plugin.interface = iface;
plugin.pluginWidget = plugin.interface->getPlugin(&engine,pluginWidgetStack);
if (plugin.pluginWidget)
pluginWidgetStack->addWidget (plugin.pluginWidget, pluginList.count());
pluginList.append (plugin);
} else {
delete lib;
}
}
setMode (1);
#else
// load simple interface
#endif
}
calc::~calc ()
{
#ifndef NO_PLUGINS
QValueList < Plugin >::Iterator mit;
for (mit = pluginList.begin (); mit != pluginList.end (); ++mit) {
(*mit).interface->release ();
(*mit).library->unload ();
delete (*mit).library;
}
#endif
}
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,14 +1,12 @@
-#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
+
include( $(OPIEDIR)/include.pro )
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
@@ -1,51 +1,51 @@
/**********************************************************************
** Copyright (C) 2000 Trolltech AS. All rights reserved.
**
** This file is part of Qtopia Environment.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#include "simplefactory.h"
#include "simpleimpl.h"
-#include <engine.h>
+#include "../engine.h"
QWidget *SimpleInterface::getPlugin ( Engine *e, QWidget *parent ) {
if ( !input )
input = new FormSimpleImpl ( e, parent );
return input;
}
#ifndef QT_NO_COMPONENT
QRESULT SimpleInterface::queryInterface( const QUuid &uuid, QUnknownInterface **iface )
{
*iface = 0;
if ( uuid == IID_QUnknown )
*iface = this;
else if ( uuid == IID_Calc )
*iface = this;
if ( *iface )
(*iface)->addRef();
return QS_OK;
}
Q_EXPORT_INTERFACE()
{
Q_CREATE_INSTANCE( SimpleInterface )
}
#endif
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
@@ -1,46 +1,46 @@
/**********************************************************************
** Copyright (C) 2000 Trolltech AS. All rights reserved.
**
** This file is part of Qtopia Environment.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#ifndef BINARYIMPL_H
#define BINARYIMPL_H
#include "simpleimpl.h"
-#include <plugininterface.h>
-#include <engine.h>
+#include "../plugininterface.h"
+#include "../engine.h"
class SimpleInterface : public CalcInterface
{
public:
SimpleInterface(){input = 0;};
virtual ~SimpleInterface(){};
#ifndef QT_NO_COMPONENT
QRESULT queryInterface( const QUuid&, QUnknownInterface** );
Q_REFCOUNT
#endif
QWidget *getPlugin( Engine *, QWidget *parent );
private:
FormSimpleImpl *input;
ulong ref;
};
#endif
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
@@ -1,120 +1,120 @@
/**********************************************************************
** Copyright (C) 2000 Trolltech AS. All rights reserved.
**
** This file is part of Qtopia Environment.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#include <qpushbutton.h>
#include <qlcdnumber.h>
#include "simpleimpl.h"
-#include <stdinstructions.h>
+#include "../stdinstructions.h"
void FormSimpleImpl::CEClicked() {
engine->hardReset();
}
void FormSimpleImpl::MCClicked() {
engine->memClear();
}
void FormSimpleImpl::MRClicked() {
engine->memRecall();
}
void FormSimpleImpl::MPlusClicked() {
engine->memSave();
}
void FormSimpleImpl::evalClicked() {
engine->eval();
}
void FormSimpleImpl::addClicked ()
{
engine->pushInstruction (new iAdd ());
}
void FormSimpleImpl::subClicked ()
{
engine->pushInstruction (new iSub ());
}
void FormSimpleImpl::mulClicked ()
{
engine->pushInstruction (new iMul ());
}
void FormSimpleImpl::divClicked ()
{
engine->pushInstruction (new iDiv ());
}
void FormSimpleImpl::decimalClicked ()
{
engine->pushValue ('.');
}
void FormSimpleImpl::val1Clicked ()
{
engine->pushValue ('1');
}
void FormSimpleImpl::val2Clicked ()
{
engine->pushValue ('2');
}
void FormSimpleImpl::val3Clicked ()
{
engine->pushValue ('3');
}
void FormSimpleImpl::val4Clicked ()
{
engine->pushValue ('4');
}
void FormSimpleImpl::val5Clicked ()
{
engine->pushValue ('5');
}
void FormSimpleImpl::val6Clicked ()
{
engine->pushValue ('6');
}
void FormSimpleImpl::val7Clicked ()
{
engine->pushValue ('7');
}
void FormSimpleImpl::val8Clicked ()
{
engine->pushValue ('8');
}
void FormSimpleImpl::val9Clicked ()
{
engine->pushValue ('9');
}
void FormSimpleImpl::val0Clicked ()
{
engine->pushValue ('0');
}
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
@@ -1,65 +1,65 @@
/**********************************************************************
** Copyright (C) 2000 Trolltech AS. All rights reserved.
**
** This file is part of Qtopia Environment.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#ifndef STANDARDIMPL_H
#define STANDARDIMPL_H
#include <qpe/qmath.h>
#include <qlcdnumber.h>
#include "simple.h"
-#include "engine.h"
-#include "instruction.h"
+#include "../engine.h"
+#include "../instruction.h"
class FormSimpleImpl:public FormSimple {
Q_OBJECT
public:
FormSimpleImpl (Engine *e, QWidget * parent = 0, const char *name = 0)
:FormSimple (parent, name) {engine = e;engine->setRepresentation(rDouble);};
~FormSimpleImpl () { };
private:
Engine *engine;
private slots:
void MPlusClicked();
void MCClicked();
void MRClicked();
void CEClicked();
void evalClicked();
void addClicked ();
void decimalClicked ();
void divClicked ();
void mulClicked ();
void subClicked ();
void val0Clicked ();
void val1Clicked ();
void val2Clicked ();
void val3Clicked ();
void val4Clicked ();
void val5Clicked ();
void val6Clicked ();
void val7Clicked ();
void val8Clicked ();
void val9Clicked ();
};
#endif
diff --git a/packages b/packages
index 433bd06..86dcab4 100644
--- a/packages
+++ b/packages
@@ -1,264 +1,267 @@
CONFIG_ABOUTAPPLET core/applets/aboutapplet aboutapplet.pro
CONFIG_ADDRESSBOOK core/pim/addressbook addressbook.pro
CONFIG_ADVANCEDFM noncore/apps/advancedfm advancedfm.pro
CONFIG_APPEARANCE2 noncore/settings/appearance2 appearance2.pro
CONFIG_APPSKEY noncore/settings/appskey appskey.pro
CONFIG_AQPKG noncore/settings/aqpkg aqpkg.pro
CONFIG_AUTOROTATEAPPLET noncore/applets/autorotateapplet autorotateapplet.pro
CONFIG_BACKGAMMON noncore/games/backgammon backgammon.pro
CONFIG_BACKUP noncore/settings/backup backup.pro
CONFIG_BARTENDER noncore/apps/opie-bartender bartender.pro
CONFIG_BATTERYAPPLET core/applets/batteryapplet batteryapplet.pro
CONFIG_BEND noncore/unsupported/mail2/bend bend.pro
CONFIG_BIGSCREEN_EXAMPLE unsupported/libopie/big-screen/example osplitter_mail.pro
CONFIG_BINARY noncore/tools/calc2/binary binary.pro
CONFIG_BLUE-PIN noncore/net/opietooth/blue-pin blue-pin.pro
CONFIG_BOUNCE noncore/games/bounce bounce.pro
CONFIG_BRIGHTNESSAPPLET noncore/applets/brightnessapplet brightnessapplet.pro
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
CONFIG_CALIBRATE core/apps/calibrate calibrate.pro
CONFIG_CAMERA noncore/multimedia/camera camera.pro
CONFIG_CARDMON core/applets/cardmon cardmon.pro
CONFIG_CHECKBOOK noncore/apps/checkbook checkbook.pro
CONFIG_CITYTIME core/settings/citytime citytime.pro
CONFIG_CLIPBOARDAPPLET core/applets/clipboardapplet clipboardapplet.pro
CONFIG_CLOCKAPPLET core/applets/clockapplet clockapplet.pro
CONFIG_CLOCK noncore/tools/clock clock.pro
CONFIG_CONFEDIT noncore/apps/confedit confedit.pro
CONFIG_DAGGER noncore/apps/dagger dagger.pro
CONFIG_DASHER inputmethods/dasher dasher.pro
CONFIG_DATEBOOK2 core/pim/datebook2 datebook2.pro
CONFIG_DATEBOOK core/pim/datebook datebook.pro
CONFIG_DATEBOOK_BIRTHDAYS_HOLIDAY core/pim/datebook/holiday/birthday birthdays.pro
CONFIG_DATEBOOK_CHRISTIAN_HOLIDAY core/pim/datebook/holiday/christian christian-holidays.pro
CONFIG_DATEBOOK_NATIONAL_HOLIDAY core/pim/datebook/holiday/national national-holidays.pro
CONFIG_DECO_FLAT noncore/decorations/flat flat.pro
CONFIG_DECO_LIQUID noncore/decorations/liquid liquid.pro
CONFIG_DECO_POLISHED noncore/decorations/polished polished.pro
CONFIG_DICTIONARY noncore/apps/dictionary dictionary.pro
CONFIG_DOCTAB noncore/settings/doctab doctab.pro
CONFIG_DRAWPAD noncore/graphics/drawpad drawpad.pro
CONFIG_DVORAK inputmethods/dvorak dvorak.pro
CONFIG_EMBEDDEDKONSOLE core/apps/embeddedkonsole embeddedkonsole.pro
CONFIG_EUROCONV noncore/tools/euroconv/ euroconv.pro
CONFIG_EXAMPLE_APPLET examples/applet applet.pro
CONFIG_EXAMPLE_BOARD examples/inputmethod inputmethod.pro
CONFIG_EXAMPLE_LIBOPIE2BLUEZ examples/opiebluez opiebluez.pro
CONFIG_EXAMPLE_LIBOPIE2CORE examples/opiecore opiecore.pro
CONFIG_EXAMPLE_LIBOPIE2DB examples/opiedb opiedb.pro
CONFIG_EXAMPLE_LIBOPIE2MM examples/opiemm opiemm.pro
CONFIG_EXAMPLE_LIBOPIE2NET examples/opienet opienet.pro
CONFIG_EXAMPLE_LIBOPIE2PIM examples/opiepim opiepim.pro
CONFIG_EXAMPLE_LIBOPIE2SECURITY examples/opiesecurity opiesecurity.pro
CONFIG_EXAMPLE_LIBOPIE2UI examples/opieui opieui.pro
CONFIG_EXAMPLE_MENU examples/menuapplet menuapplet.pro
CONFIG_EXAMPLE_VPN examples/networksettings networksettings.pro
CONFIG_FIFTEEN noncore/games/fifteen fifteen.pro
CONFIG_FILEBROWSER noncore/unsupported/filebrowser filebrowser.pro
CONFIG_FLAT noncore/styles/flat flat.pro
CONFIG_FORMATTER noncore/tools/formatter formatter.pro
CONFIG_FREETYPE freetype freetype.pro
CONFIG_FRESH noncore/styles/fresh fresh.pro
CONFIG_FTPLIB noncore/net/ftplib ftplib.pro
CONFIG_GO noncore/games/go go.pro
CONFIG_GSMTOOL noncore/unsupported/gsmtool gsmtool.pro
CONFIG_GUTENBROWSER noncore/apps/opie-gutenbrowser opie-gutenbrowser.pro
CONFIG_HANDWRITING inputmethods/handwriting handwriting.pro
CONFIG_HELPBROWSER core/apps/helpbrowser helpbrowser.pro
CONFIG_HOMEAPPLET core/applets/homeapplet homeapplet.pro
CONFIG_HOTPLUG_QCOP core/tools/hotplug-qcop hotplug-qcop.pro
CONFIG_INTERFACES noncore/settings/networksettings/interfaces interfaces.pro
CONFIG_IRDAAPPLET core/applets/irdaapplet irdaapplet.pro
CONFIG_JUMPX inputmethods/jumpx jumpx.pro
CONFIG_KBILL noncore/games/kbill kbill.pro
CONFIG_KCHECKERS noncore/games/kcheckers kcheckers.pro
CONFIG_KEYBOARD inputmethods/keyboard keyboard.pro
CONFIG_KEYHELPER noncore/applets/keyhelper keyhelper.pro
CONFIG_KEYPEBBLE noncore/comm/keypebble keypebble.pro
CONFIG_KEYVIEW development/keyview keyview.pro
CONFIG_KJUMPX inputmethods/kjumpx kjumpx.pro
CONFIG_KPACMAN noncore/games/kpacman kpacman.pro
CONFIG_LANGUAGE noncore/settings/language language.pro
CONFIG_LAUNCHER core/launcher server.pro
CONFIG_LAUNCHER-SETTINGS core/settings/launcher launcher.pro
CONFIG_LIBFFMPEG core/multimedia/opieplayer/libffmpeg libffmpeg.pro
CONFIG_LIBFLASH core/multimedia/opieplayer/libflash libflash.pro
CONFIG_LIBMAD core/multimedia/opieplayer/libmad libmad.pro
CONFIG_LIBMAIL noncore/unsupported/mail2/libmail libmail.pro
CONFIG_LIBMAILWRAPPER noncore/net/mail/libmailwrapper libmailwrapper.pro
CONFIG_LIBMPEG3 core/multimedia/opieplayer/libmpeg3 libmpeg3.pro
CONFIG_LIBOPIE2BLUEZ libopie2/opiebluez opiebluez.pro
CONFIG_LIBOPIE2CORE libopie2/opiecore opiecore.pro
CONFIG_LIBOPIE2DB libopie2/opiedb opiedb.pro
CONFIG_LIBOPIE2EXAMPLES libopie2/examples examples.pro
CONFIG_LIBOPIE2MM libopie2/opiemm opiemm.pro
CONFIG_LIBOPIE2NET libopie2/opienet opienet.pro
CONFIG_LIBOPIE2PIM libopie2/opiepim opiepim.pro
CONFIG_LIBOPIE2SECURITY libopie2/opiesecurity opiesecurity.pro
CONFIG_LIBOPIE2UI libopie2/opieui opieui.pro
CONFIG_LIBOPIETOOTH noncore/net/opietooth/lib lib.pro
CONFIG_LIBOPIE noncore/unsupported/libopie libopie.pro
CONFIG_LIBQPE library library.pro
CONFIG_LIBQPE-X11 x11/libqpe-x11 libqpe-x11.pro
CONFIG_LIBQRSYNC rsync rsync.pro
CONFIG_LIBQTAUX libqtaux libqtaux.pro
CONFIG_LIBSLCOMPAT libslcompat libslcompat.pro
CONFIG_LIBSQL libsql libsql.pro
CONFIG_LIBTREMOR core/multimedia/opieplayer/vorbis/tremor tremor.pro
CONFIG_LIBTREMORPLUGIN core/multimedia/opieplayer/vorbis libtremor.pro
CONFIG_LIGHT-AND-POWER core/settings/light-and-power light-and-power.pro
CONFIG_LIQUID noncore/styles/liquid liquid.pro
CONFIG_LOCKAPPLET core/applets/lockapplet lockapplet.pro
CONFIG_LOGOUTAPPLET core/applets/logoutapplet logoutapplet.pro
CONFIG_MAIL3 noncore/net/mail mail.pro
CONFIG_MAILAPPLET noncore/net/mail/taskbarapplet taskbarapplet.pro
CONFIG_MAILIT noncore/unsupported/mailit mailit.pro
CONFIG_MAIN_TAB_EXAMPLE examples/main-tab main-tab.pro
CONFIG_MEDIUMMOUNT noncore/settings/mediummount mediummount.pro
CONFIG_MEMORYAPPLET noncore/applets/memoryapplet memoryapplet.pro
CONFIG_METAL noncore/styles/metal metal.pro
CONFIG_MINDBREAKER noncore/games/mindbreaker mindbreaker.pro
CONFIG_MINESWEEP noncore/games/minesweep minesweep.pro
CONFIG_MOBILEMSG noncore/unsupported/mobilemsg mobilemsg.pro
CONFIG_MODPLUG core/multimedia/opieplayer/modplug modplug.pro
CONFIG_MULTIAUTH_BLUEPING noncore/securityplugins/blueping bluepingplugin.pro
CONFIG_MULTIAUTH_DUMMY noncore/securityplugins/dummy dummyplugin.pro
CONFIG_MULTIAUTH_NOTICE noncore/securityplugins/notice noticeplugin.pro
CONFIG_MULTIAUTH_PIN noncore/securityplugins/pin pinplugin.pro
CONFIG_MULTIKEYAPPLET core/applets/multikeyapplet multikeyapplet.pro
CONFIG_MULTIKEY inputmethods/multikey multikey.pro
CONFIG_NETSYSTEMTIME noncore/settings/netsystemtime netsystemtime.pro
CONFIG_NETWORKAPPLET noncore/applets/networkapplet networkapplet.pro
CONFIG_NETWORKSETUP noncore/settings/networksettings networksettings.pro
CONFIG_NOTESAPPLET noncore/applets/notesapplet notesapplet.pro
CONFIG_NS2BT noncore/settings/networksettings2/bluetooth bluetooth.pro
CONFIG_NS2GPRS noncore/settings/networksettings2/gprs GPRS.pro
CONFIG_NS2CABLE noncore/settings/networksettings2/cable cable.pro
CONFIG_NS2CORE noncore/settings/networksettings2/networksettings2 networksettings2.pro
CONFIG_NS2OPIETOOTH noncore/settings/networksettings2/opietooth2 opietooth2.pro
CONFIG_NS2OPIETOOTHAPPLET noncore/settings/networksettings2/opietooth2_applet opietooth2_applet.pro
CONFIG_NS2IRDA noncore/settings/networksettings2/irda irda.pro
CONFIG_NS2LANCARD noncore/settings/networksettings2/lancard lancard.pro
CONFIG_NS2MODEM noncore/settings/networksettings2/modem modem.pro
CONFIG_NS2NETWORK noncore/settings/networksettings2/network network.pro
CONFIG_NS2 noncore/settings/networksettings2 networksettings.pro
CONFIG_NS2PPP noncore/settings/networksettings2/ppp ppp.pro
CONFIG_NS2PROFILE noncore/settings/networksettings2/profile profile.pro
CONFIG_NS2USB noncore/settings/networksettings2/usb usb.pro
CONFIG_NS2VPN noncore/settings/networksettings2/vpn vpn.pro
CONFIG_NS2WLAN noncore/settings/networksettings2/wlan wlan.pro
CONFIG_OAPP core/apps/oapp oapp.pro
CONFIG_OBEX core/obex obex.pro
CONFIG_ODICT noncore/apps/odict odict.pro
CONFIG_OIPKG noncore/unsupported/oipkg oipkg.pro
CONFIG_OPIEALARM core/opiealarm opiealarm.pro
CONFIG_OPIE-CONSOLE noncore/apps/opie-console opie-console.pro
CONFIG_OPIE_EYE noncore/graphics/opie-eye phunk_view.pro
CONFIG_OPIE_EYE_SLAVE noncore/graphics/opie-eye/slave slave.pro
CONFIG_OPIEFTP noncore/net/opieftp opieftp.pro
CONFIG_OPIEIRC noncore/net/opieirc opieirc.pro
CONFIG_OPIE-LOGIN core/opie-login opie-login.pro
CONFIG_OPIEMAIL2 noncore/unsupported/mail2 mail.pro
CONFIG_OPIEPLAYER2 noncore/multimedia/opieplayer2 opieplayer2.pro
CONFIG_OPIEPLAYER3 noncore/multimedia/opieplayer3 opieplayer3.pro
CONFIG_OPIEPLAYER core/multimedia/opieplayer opieplayer.pro
CONFIG_OPIE-RDESKTOP noncore/net/opierdesktop opierdesktop.pro
CONFIG_OPIE-READER noncore/apps/opie-reader opie-reader.pro
CONFIG_OPIE-READER-FLITEDYN noncore/apps/opie-reader/FliteDyn FliteDyn.pro
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
CONFIG_OPIE-SH noncore/tools/opie-sh opie-sh.pro
CONFIG_OPIETOOTH-APPLET noncore/net/opietooth/applet applet.pro
CONFIG_OPIETOOTH-MANAGER noncore/net/opietooth/manager manager.pro
CONFIG_OPIE-WRITE noncore/apps/opie-write opie-write.pro
CONFIG_OSEARCH core/pim/osearch osearch.pro
CONFIG_OXYGEN noncore/apps/oxygen oxygen.pro
CONFIG_PACKAGEMANAGER noncore/settings/packagemanager packagemanager.pro
CONFIG_PARASHOOT noncore/games/parashoot parashoot.pro
CONFIG_PCMCIA-APPLET noncore/applets/pcmcia pcmcia.pro
CONFIG_PHASE noncore/styles/phase phase.pro
CONFIG_PICKBOARD inputmethods/pickboard pickboard.pro
CONFIG_PIMCONVERTER noncore/tools/pimconverter converter.pro
CONFIG_POWERCHORD noncore/multimedia/powerchord powerchord.pro
CONFIG_PPP noncore/settings/networksettings/ppp ppp.pro
CONFIG_PYQUICKLAUNCH-APPLET noncore/applets/pyquicklaunch pyquicklaunch.pro
CONFIG_PYQUICKLAUNCHER noncore/tools/pyquicklauncher pyquicklauncher.pro
CONFIG_PYTHON-EXAMPLES examples/python bla.pro
CONFIG_QASHMONEY noncore/unsupported/qashmoney qashmoney.pro
CONFIG_QASTEROIDS noncore/games/qasteroids qasteroids.pro
CONFIG_QCOP core/apps/qcop qcop.pro
CONFIG_QPDF noncore/unsupported/qpdf qpdf.pro
CONFIG_QSS core/apps/qss qss.pro
CONFIG_QUICKLAUNCHER core/tools/quicklauncher quicklauncher.pro
CONFIG_QWS core/qws qws.pro
CONFIG_REMOTE noncore/tools/remote remote.pro
CONFIG_RESTARTAPPLET2 core/applets/restartapplet2 restartapplet2.pro
CONFIG_RESTARTAPPLET core/applets/restartapplet restartapplet.pro
CONFIG_ROTATEAPPLET core/applets/rotateapplet rotateapplet.pro
CONFIG_ROTATION noncore/settings/rotation rotation.pro
CONFIG_RUNAPPLET core/applets/runapplet runapplet.pro
CONFIG_SCREENSHOTAPPLET core/applets/screenshotapplet screenshotapplet.pro
CONFIG_SECURITY core/settings/security security.pro
CONFIG_MULTIAUTH_DEMO core/settings/security/demo multiauth.pro
CONFIG_SFCAVE noncore/games/sfcave sfcave.pro
CONFIG_SFCAVE-SDL noncore/games/sfcave-sdl sfcave-sdl.pro
CONFIG_SHOWIMG noncore/unsupported/showimg showimg.pro
CONFIG_SIMPLE_EXAMPLE examples/simple simple.pro
CONFIG_SIMPLE_ICON examples/simple-icon simple-icon.pro
CONFIG_SIMPLE_MAIN examples/simple-main simple-main.pro
CONFIG_SIMPLE noncore/tools/calc2/simple simple.pro
CONFIG_SIMPLE_PIM examples/simple-pim simple-pim.pro
CONFIG_SINGLE single single.pro
CONFIG_SNAKE noncore/games/snake snake.pro
CONFIG_SOLITAIRE noncore/games/solitaire solitaire.pro
CONFIG_SOUND noncore/settings/sound sound.pro
CONFIG_SSHKEYS noncore/settings/sshkeys sshkeys.pro
CONFIG_SUSPENDAPPLET core/applets/suspendapplet suspendapplet.pro
CONFIG_SYMLINKER core/symlinker symlinker.pro
CONFIG_SYSINFO noncore/settings/sysinfo sysinfo.pro
CONFIG_TABLEVIEWER noncore/apps/tableviewer tableviewer.pro
CONFIG_TABMANAGER noncore/unsupported/tabmanager tabmanager.pro
CONFIG_TABOAPP core/apps/taboapp taboapp.pro
CONFIG_TEST libsql/test test.pro
CONFIG_TEST noncore/apps/opie-console/test test.pro
CONFIG_TETRIX noncore/games/tetrix tetrix.pro
CONFIG_TEXTEDIT core/apps/textedit textedit.pro
CONFIG_THEME noncore/styles/theme theme.pro
CONFIG_TICTAC noncore/games/tictac tictac.pro
CONFIG_TINYKATE noncore/apps/tinykate tinykate.pro
CONFIG_TODAY_ADDRESSBOOK core/pim/today/plugins/addressbook addressbook.pro
CONFIG_TODAY core/pim/today today.pro
CONFIG_TODAY_DATEBOOK core/pim/today/plugins/datebook datebook.pro
CONFIG_TODAY_EXAMPLE examples/todayplugin todayplugin.pro
CONFIG_TODAY_FORTUNE noncore/todayplugins/fortune fortune.pro
CONFIG_TODAY_MAIL core/pim/today/plugins/mail mail.pro
CONFIG_TODAY_STOCKTICKERLIB noncore/todayplugins/stockticker/stocktickerlib stocktickerlib.pro
CONFIG_TODAY_STOCKTICKER noncore/todayplugins/stockticker/stockticker stockticker.pro
CONFIG_TODAY_TODOLIST core/pim/today/plugins/todolist todolist.pro
CONFIG_TODAY_WEATHER noncore/todayplugins/weather weather.pro
CONFIG_TODO core/pim/todo todo.pro
CONFIG_TONLEITER noncore/multimedia/tonleiter tonleiter.pro
CONFIG_TRACKER noncore/multimedia/tracker tracker.pro
CONFIG_UBROWSER noncore/unsupported/ubrowser ubrowser.pro
CONFIG_UNIKEYBOARD inputmethods/unikeyboard unikeyboard.pro
CONFIG_USERMANAGER noncore/settings/usermanager usermanager.pro
CONFIG_VMEMO core/applets/vmemo vmemo.pro
CONFIG_VOLUMEAPPLET core/applets/volumeapplet volumeapplet.pro
CONFIG_VOLUMEAPPLET2 noncore/applets/volumeapplet2 volumeapplet2.pro
CONFIG_VTAPPLET core/applets/vtapplet vtapplet.pro
CONFIG_WAVPLUGIN core/multimedia/opieplayer/wavplugin wavplugin.pro
CONFIG_WEBSTYLE noncore/styles/web web.pro
CONFIG_WELLENREITER noncore/net/wellenreiter wellenreiter.pro
CONFIG_WIRELESSAPPLET noncore/applets/wirelessapplet wirelessapplet.pro
CONFIG_WLAN noncore/settings/networksettings/wlan wlan.pro
CONFIG_WORDGAME noncore/games/wordgame wordgame.pro
CONFIG_YATZEE noncore/games/oyatzee oyatzee.pro
CONFIG_ZKBAPPLET noncore/applets/zkbapplet zkbapplet.pro
CONFIG_ZLINES noncore/games/zlines zlines.pro
CONFIG_ZSAFE noncore/apps/zsafe zsafe.pro
CONFIG_ZSAME noncore/games/zsame zsame.pro
CONFIG_OPIESTUMBLER noncore/net/opiestumbler opiestumbler.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