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, 1099 insertions, 51 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(); + 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,231 +1,236 @@ /*************************************************************************** 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(); 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 @@ -467,393 +467,407 @@ void AdvancedFm::move() { 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; 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 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 |