author | llornkcor <llornkcor> | 2005-08-11 10:10:40 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2005-08-11 10:10:40 (UTC) |
commit | 6040d26c56a95d9f5bd09688e22009fc5b5e124d (patch) (side-by-side diff) | |
tree | 53ad03c346cc006d17093918d5cf6bbb09aa4b3b /noncore | |
parent | 8938048502047f781447ed24351512cdca997a2e (diff) | |
download | opie-6040d26c56a95d9f5bd09688e22009fc5b5e124d.zip opie-6040d26c56a95d9f5bd09688e22009fc5b5e124d.tar.gz opie-6040d26c56a95d9f5bd09688e22009fc5b5e124d.tar.bz2 |
add opie-smb
25 files changed, 1115 insertions, 67 deletions
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(); + QSize VolumeAppletControl::sizeHint() const + { + 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 ); + QPainter p ( this ); + + 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; - }; 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,136 +1,141 @@ /*************************************************************************** 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" ) ); - QVBoxLayout *layout = new QVBoxLayout( this ); +// 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); 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 @@ -560,205 +560,219 @@ bool AdvancedFm::copyFile( const QString & src, const QString & dest ) { 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); - - QStringList command; - command << "/bin/sh"; - command << "-c"; - command << "stat -l "+ curFile; + 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; +*/ + } - Output *outDlg; - outDlg = new Output( command, this, tr("AdvancedFm Output"), true); - QPEApplication::execDialog( outDlg ); - qApp->processEvents(); + 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; 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>&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>&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>&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 @@ -1,170 +1,170 @@ /*         This file is part of the Opie Project Copyright (C) Opie Team <opie-devel@handhelds.org> =. .=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 "formattabwidget.h" #include <qpe/config.h> #if ( defined Q_WS_QWS || defined(_WS_QWS_) ) && !defined(QT_NO_COP) #include <qpe/qcopenvelope_qws.h> #endif #include <qcombobox.h> #include <qlabel.h> #include <qlayout.h> #include <qscrollview.h> #include <qtimer.h> FormatTabWidget::FormatTabWidget( QWidget *parent ) : QWidget( parent, 0x0, 0 ) { QVBoxLayout *tmpvb = new QVBoxLayout( this ); QScrollView *sv = new QScrollView( this ); tmpvb->addWidget( sv, 0, 0 ); sv->setResizePolicy( QScrollView::AutoOneFit ); sv->setFrameStyle( QFrame::NoFrame ); QWidget *container = new QWidget( sv->viewport() ); sv->addChild( container ); QGridLayout *layout = new QGridLayout( container ); layout->setMargin( 2 ); layout->setSpacing( 4 ); // Time format selector layout->addWidget( new QLabel( tr( "Time format" ), container ), 0, 0 ); cbAppletFormat = new QComboBox( container ); cbAppletFormat->insertItem( tr( "hh:mm" ), 0 ); cbAppletFormat->insertItem( tr( "D/M hh:mm" ), 1 ); cbAppletFormat->insertItem( tr( "M/D hh:mm" ), 2 ); layout->addWidget( cbAppletFormat, 0, 1 ); // 12/24 hour selector layout->addWidget( new QLabel( tr( "12/24 hour" ), container ), 1, 0 ); cbAmpm = new QComboBox( container ); cbAmpm->insertItem( tr( "24 hour" ), 0 ); cbAmpm->insertItem( tr( "12 hour" ), 1 ); - connect( cbAmpm, SIGNAL(activated(int)), this, SIGNAL(show12HourTime(int)) ); + connect( cbAmpm, SIGNAL(activated( int)), this, SIGNAL(show12HourTime( int)) ); layout->addWidget( cbAmpm, 1, 1 ); // Date format selector layout->addWidget( new QLabel( tr( "Date format" ), container ), 2, 0 ); cbDateFormat = new QComboBox( container ); - connect( cbDateFormat, SIGNAL(activated(int)), this, SLOT(slotDateFormatChanged(int)) ); + connect( cbDateFormat, SIGNAL(activated( int)), this, SLOT(slotDateFormatChanged( int)) ); layout->addWidget( cbDateFormat, 2, 1 ); // Week starts on selector layout->addWidget( new QLabel( tr( "Weeks start on" ), container ), 3, 0 ); cbWeekStart = new QComboBox( container ); cbWeekStart->insertItem( tr( "Sunday" ), 0 ); cbWeekStart->insertItem( tr( "Monday" ), 1 ); connect( cbWeekStart, SIGNAL(activated(int)), this, SIGNAL(weekStartChanged(int)) ); layout->addWidget( cbWeekStart, 3, 1 ); // Initialize values Config config( "qpe" ); config.setGroup( "Date" ); cbAppletFormat->setCurrentItem( config.readNumEntry( "ClockApplet", 0 ) ); DateFormat df(QChar(config.readEntry("Separator", "/")[0]), (DateFormat::Order)config .readNumEntry("ShortOrder", DateFormat::DayMonthYear), (DateFormat::Order)config.readNumEntry("LongOrder", DateFormat::DayMonthYear)); int currentdf = 0; date_formats[0] = DateFormat( '/', DateFormat::MonthDayYear ); cbDateFormat->insertItem( tr( date_formats[0].toNumberString() ) ); date_formats[1] = DateFormat( '.', DateFormat::DayMonthYear ); if ( df == date_formats[1] ) currentdf = 1; cbDateFormat->insertItem( tr( date_formats[1].toNumberString() ) ); date_formats[2] = DateFormat( '-', DateFormat::YearMonthDay, DateFormat::DayMonthYear ); if ( df == date_formats[2] ) currentdf = 2; cbDateFormat->insertItem( tr( date_formats[2].toNumberString() ) ); //ISO8601 date_formats[3] = DateFormat( '/', DateFormat::DayMonthYear ); if ( df == date_formats[3] ) currentdf = 3; cbDateFormat->insertItem( tr( date_formats[3].toNumberString() ) ); cbDateFormat->setCurrentItem( currentdf ); //dateButton->setDateFormat( df ); config.setGroup( "Time" ); cbAmpm->setCurrentItem( config.readBoolEntry( "AMPM", FALSE ) ? 1 : 0 ); cbWeekStart->setCurrentItem( config.readBoolEntry( "MONDAY", TRUE ) ? 1 : 0 ); // Send initial configuration options QTimer::singleShot( 1200, this, SLOT(sendOptions()) ); } FormatTabWidget::~FormatTabWidget() { } void FormatTabWidget::saveSettings( bool commit ) { int ampm = cbAmpm->currentItem(); int weekstart = cbWeekStart->currentItem(); DateFormat df = date_formats[cbDateFormat->currentItem()]; int appletformat = cbAppletFormat->currentItem(); if ( commit ) { // Write settings to config file Config config("qpe"); config.setGroup( "Time" ); config.writeEntry( "AMPM", ampm ); config.writeEntry( "MONDAY", weekstart ); config.setGroup( "Date" ); config.writeEntry( "Separator", QString( df.separator() ) ); config.writeEntry( "ShortOrder", df.shortOrder() ); config.writeEntry( "LongOrder", df.longOrder() ); config.writeEntry( "ClockApplet", appletformat ); } // Make rest of system aware of new settings QCopEnvelope setClock( "QPE/System", "clockChange(bool)" ); setClock << ampm; QCopEnvelope setWeek( "QPE/System", "weekChange(bool)" ); setWeek << weekstart; QCopEnvelope setDateFormat( "QPE/System", "setDateFormat(DateFormat)" ); setDateFormat << df; } void FormatTabWidget::slotDateFormatChanged( int selected ) { emit dateFormatChanged( date_formats[selected] ); } void FormatTabWidget::sendOptions() { emit show12HourTime( cbAmpm->currentItem() ); emit dateFormatChanged( date_formats[cbDateFormat->currentItem()] ); emit weekStartChanged( cbWeekStart->currentItem() ); } 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 |