-rw-r--r-- | noncore/tools/formatter/formatter.cpp | 174 | ||||
-rw-r--r-- | noncore/tools/opie-sh/opie-sh.cpp | 20 | ||||
-rw-r--r-- | noncore/tools/remote/learntab.cpp | 11 | ||||
-rw-r--r-- | noncore/tools/remote/remote.cpp | 10 |
4 files changed, 138 insertions, 77 deletions
diff --git a/noncore/tools/formatter/formatter.cpp b/noncore/tools/formatter/formatter.cpp index 532ee40..e869317 100644 --- a/noncore/tools/formatter/formatter.cpp +++ b/noncore/tools/formatter/formatter.cpp @@ -1,584 +1,632 @@ /**************************************************************************** ** formatter.cpp ** ** Copyright: Thu Apr 11 11:01:13 2002 ** by: L. J. Potter ** ****************************************************************************/ #include "formatter.h" #include "inputDialog.h" #include "output.h" -#include <qmenubar.h> +/* OPIE */ #include <qpe/qpetoolbar.h> #include <qpe/qpeapplication.h> #include <qpe/resource.h> #include <qpe/config.h> #include <qpe/mimetype.h> #include <qpe/qcopenvelope_qws.h> #include <qpe/storage.h> +/* QT */ +#include <qmenubar.h> #include <qmultilineedit.h> #include <qstring.h> #include <qlist.h> #include <qstringlist.h> #include <qdir.h> #include <qfile.h> - #include <qtstream.h> - #include <qcombobox.h> #include <qpopupmenu.h> #include <qmessagebox.h> #include <qregexp.h> - #include <qlabel.h> #include <qlineedit.h> #include <qpushbutton.h> #include <qtabwidget.h> #include <qwidget.h> #include <qlayout.h> #include <qvariant.h> +/* STD */ #include <unistd.h> #include <stdio.h> #include <stdlib.h> #include <sys/vfs.h> #include <mntent.h> #include <string.h> #include <errno.h> #define BLANK ' ' #define DELIMITER '#' /* Blah blah blah blah */ FormatterApp::FormatterApp( QWidget* parent, const char* name, WFlags fl, bool modal ) : QMainWindow( parent, name, fl ) // : QDialog( parent, name, modal, fl ) { if ( !name ) setName( "FormatterApp" ); connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) ); setCaption( tr( "Formatter" ) ); FormatterAppLayout = new QGridLayout( this ); FormatterAppLayout->setSpacing( 2); FormatterAppLayout->setMargin( 2 ); TabWidget = new QTabWidget( this, "TabWidget" ); tab = new QWidget( TabWidget, "tab" ); tabLayout = new QGridLayout( tab ); tabLayout->setSpacing( 3); tabLayout->setMargin( 2); storageComboBox = new QComboBox( FALSE, tab, "storageComboBox" ); storageComboBox->setMaximumWidth(220); tabLayout->addMultiCellWidget( storageComboBox, 0, 0, 0, 1); TextLabel4 = new QLabel( tab, "TextLabel4" ); TextLabel4->setText( tr( "Storage Type" ) ); tabLayout->addMultiCellWidget( TextLabel4, 1, 1, 0, 1); TextLabel2 = new QLabel( tab, "TextLabel2" ); TextLabel2->setText( tr( "File Systems" ) ); tabLayout->addMultiCellWidget( TextLabel2, 4, 4, 0, 1); fileSystemsCombo = new QComboBox( FALSE, tab, "fileSystemsCombo" ); fileSystemsCombo->setMaximumWidth(220); tabLayout->addMultiCellWidget( fileSystemsCombo, 3, 3, 0, 1); QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Minimum ); tabLayout->addItem( spacer, 2, 0 ); formatPushButton = new QPushButton( tab, "formatPushButton" ); formatPushButton->setText( tr( "Format" ) ); formatPushButton->setMaximumWidth(170); tabLayout->addMultiCellWidget( formatPushButton, 6, 6, 0, 1); QSpacerItem* spacer_2 = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Minimum ); tabLayout->addItem( spacer_2, 5, 0 ); TabWidget->insertTab( tab, tr( "Main" ) ); tab_2 = new QWidget( TabWidget, "tab_2" ); tabLayout_2 = new QGridLayout( tab_2 ); tabLayout_2->setSpacing(3); tabLayout_2->setMargin(2); mountPointLineEdit = new QLineEdit( tab_2, "mountPointLineEdit" ); tabLayout_2->addMultiCellWidget( mountPointLineEdit, 0, 0, 0, 1); deviceComboBox = new QComboBox( FALSE, tab_2, "deviceComboBox" ); tabLayout_2->addMultiCellWidget( deviceComboBox, 3, 3, 0, 1); TextLabel5 = new QLabel( tab_2, "TextLabel5" ); TextLabel5->setText( tr( "CAUTION:\n" "Changing parameters on this\n" "page may cause your system\n" "to stop functioning properly!" ) );//idiot message tabLayout_2->addMultiCellWidget( TextLabel5, 6, 6, 0, 1); editPushButton = new QPushButton( tab_2, "editPushButton" ); editPushButton->setText( tr( "Edit fstab" ) ); editPushButton->setMaximumWidth(100); tabLayout_2->addMultiCellWidget( editPushButton, 7, 7, 0, 0 ); fsckButton = new QPushButton( tab_2, "fsckPushButton" ); fsckButton->setText( tr( "Check Disk" ) ); fsckButton->setMaximumWidth(100); tabLayout_2->addMultiCellWidget( fsckButton, 7, 7, 1, 1); TextLabel3 = new QLabel( tab_2, "TextLabel3" ); TextLabel3->setText( tr( "Device" ) ); tabLayout_2->addMultiCellWidget( TextLabel3, 4, 4, 0, 1 ); QSpacerItem* spacer_3 = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding ); tabLayout_2->addItem( spacer_3, 5, 0 ); TextLabel1 = new QLabel( tab_2, "TextLabel1" ); TextLabel1->setText( tr( "Mount Point" ) ); tabLayout_2->addMultiCellWidget( TextLabel1, 1, 1, 0, 1 ); QSpacerItem* spacer_4 = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding ); tabLayout_2->addItem( spacer_4, 2, 1 ); TabWidget->insertTab( tab_2, tr( "Advanced" ) ); FormatterAppLayout->addWidget( TabWidget, 0, 1 ); connect( formatPushButton ,SIGNAL(released()),this,SLOT( doFormat()) ); connect( editPushButton ,SIGNAL(released()),this,SLOT( editFstab()) ); connect( fsckButton ,SIGNAL(released()),this,SLOT( doFsck()) ); connect( fileSystemsCombo,SIGNAL(activated(int)),this,SLOT( fsComboSelected(int ) )); connect( storageComboBox,SIGNAL(activated(int)),this,SLOT( storageComboSelected(int ) )); connect( deviceComboBox,SIGNAL(activated(int)),this,SLOT( deviceComboSelected(int ) )); fillCombos(); } -FormatterApp::~FormatterApp() { - -} +FormatterApp::~FormatterApp() +{} -void FormatterApp::doFormat() { +void FormatterApp::doFormat() +{ int err=0; Output *outDlg; QString umountS, remountS; QString text = storageComboBox->currentText(); QString currentText = storageComboBox->currentText(); QString cmd; QString diskDevice = currentText.right( currentText.length() - currentText.find(" -> ",0,TRUE) - 4); QString diskName = currentText.left(currentText.find(" -> ",0,TRUE)); QString fs = fileSystemsCombo->currentText(); #if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) // lets test on something cheap #else currentText = diskDevice = "/dev/fd0"; umountS = "umount -v /floppy 2>&1"; remountS = "mount -v /floppy 2>&1"; #endif - if( currentText.find("CF",0,TRUE) != -1) { + if( currentText.find("CF",0,TRUE) != -1) + { umountS = "umount "; remountS = "mount "; // umountS = "/sbin/cardctl eject"; // remountS = "/sbin/cardctl insert"; } - if( currentText.find("SD",0,TRUE) != -1) { + if( currentText.find("SD",0,TRUE) != -1) + { umountS = "umount "; remountS = "mount "; // umountS = "/etc/sdcontrol compeject"; // remountS = "/etc/sdcontrol insert"; } switch ( QMessageBox::warning(this,tr("Format?") , tr("Really format\n") +diskName+" "+ currentText + tr("\nwith %1 filesystem?\nYou will loose all data!!").arg( fs ) ,tr("Yes") ,tr("No") ,0 ,1 - ,1) ) { - case 0: { + ,1) ) + { + case 0: + { if(fs == "vfat") cmd = "mkdosfs -v " + diskDevice+" 2>&1"; else if(fs == "ext2") cmd = "mke2fs -v " + diskDevice+" 2>&1"; - else { + else + { QMessageBox::warning(this, tr("Formatter"),tr("Could not format.\nUnknown type"), tr("Ok")); break; } // cmd = "ls -l"; outDlg = new Output(this, tr("Formatter Output"),FALSE); - outDlg->showMaximized(); - outDlg->show(); + QPEApplication::showDialog( outDlg); qApp->processEvents(); FILE *fp; char line[130]; outDlg->OutputEdit->append( tr("Trying to umount %1.").arg( currentText) ); outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); sleep(1); qDebug("Command is "+umountS); fp = popen( (const char *) umountS, "r"); // qDebug("%d", fp); - if ( !fp ) { + if ( !fp ) + { qDebug("Could not execute '" + umountS + "'! err=%d\n" +(QString)strerror(errno), err); QMessageBox::warning( this, tr("Formatter"), tr("umount failed!"), tr("&OK") ); pclose(fp); return; - } else { + } + else + { // outDlg->OutputEdit->append( currentText + tr("\nhas been successfully umounted.")); // outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); - while ( fgets( line, sizeof line, fp)) { - if( ((QString)line).find("busy",0,TRUE) != -1) { + while ( fgets( line, sizeof line, fp)) + { + if( ((QString)line).find("busy",0,TRUE) != -1) + { qDebug("Could not find '" + umountS); QMessageBox::warning( this, tr("Formatter"), tr("Could not umount.\nDevice is busy!"), tr("&OK") ); pclose(fp); return; - } else { + } + else + { QString lineStr = line; lineStr=lineStr.left(lineStr.length()-1); outDlg->OutputEdit->append(lineStr); outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); } } } pclose(fp); qDebug("Command would be: "+cmd); outDlg->OutputEdit->append( tr("Trying to format.") ); outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); fp = popen( (const char *) cmd, "r"); - while ( fgets( line, sizeof line, fp)) { - if( ((QString)line).find("No such device",0,TRUE) != -1) { + while ( fgets( line, sizeof line, fp)) + { + if( ((QString)line).find("No such device",0,TRUE) != -1) + { qDebug("No such device '" + umountS); QMessageBox::warning( this, tr("Formatter"), tr("No such device!"), tr("&OK") ); pclose(fp); // outDlg->OutputEdit->append("No such device"); // outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); return; - } else { + } + else + { QString lineStr = line; lineStr=lineStr.left(lineStr.length()-1); outDlg->OutputEdit->append(lineStr); outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); } } outDlg->OutputEdit->append( currentText + tr("\nhas been successfully formatted.")); outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); pclose(fp); outDlg->OutputEdit->append( tr("Trying to mount %1.").arg( currentText) ); outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); fp = popen( (const char *) remountS, "r"); - if ( !fp) { + if ( !fp) + { qDebug("Could not execute '" + remountS + "'! err=%d\n" +(QString)strerror(errno), err); QMessageBox::warning( this, tr("Formatter"), tr("Card mount failed!"), tr("&OK") ); - } else { + } + else + { outDlg->OutputEdit->append(tr("%1\nhas been successfully mounted.").arg( currentText )); - while ( fgets( line, sizeof line, fp)) { + while ( fgets( line, sizeof line, fp)) + { QString lineStr = line; lineStr=lineStr.left(lineStr.length()-1); outDlg->OutputEdit->append(lineStr); outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); } } pclose(fp); sleep(1); outDlg->OutputEdit->append(tr("You can now close the output window.")); outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); // outDlg->close(); // if(outDlg) // delete outDlg; } break; }; } -bool FormatterApp::doFdisk() { +bool FormatterApp::doFdisk() +{ return FALSE; } -void FormatterApp::fillCombos() { +void FormatterApp::fillCombos() +{ StorageInfo storageInfo; const QList<FileSystem> &fs = storageInfo.fileSystems(); QListIterator<FileSystem> it ( fs ); QString storage; - for( ; it.current(); ++it ){ + for( ; it.current(); ++it ) + { const QString name = (*it)->name(); const QString path = (*it)->path(); const QString disk = (*it)->disk(); const QString options = (*it)->options(); - if( name.find( tr("Internal"),0,TRUE) == -1) { + if( name.find( tr("Internal"),0,TRUE) == -1) + { storageComboBox->insertItem(name +" -> "+disk); } // deviceComboBox->insertItem(disk); } parsetab("/etc/mtab"); // parsetab("/etc/fstab"); fileSystemsCombo->insertStringList( fsList,-1); deviceComboBox->insertStringList( deviceList,-1); storageComboSelected(0); deviceComboSelected(0); } -void FormatterApp::fsComboSelected(int ) { +void FormatterApp::fsComboSelected(int ) +{} -} - -void FormatterApp::storageComboSelected(int index ) { +void FormatterApp::storageComboSelected(int index ) +{ QString currentText = storageComboBox->text(index); QString nameS = currentText.left( currentText.find("->",0,TRUE)); TextLabel4->setText( tr( "Storage Type: %1").arg( nameS) ); currentText = currentText.right( currentText.length() - currentText.find(" -> ",0,TRUE) - 4); QString fsType = getFileSystemType((const QString &) currentText); // qDebug(fsType); - for(int i = 0; i < fileSystemsCombo->count(); i++) { + for(int i = 0; i < fileSystemsCombo->count(); i++) + { if( fsType == fileSystemsCombo->text(i)) fileSystemsCombo->setCurrentItem(i); } // deviceComboSelected(index); } -void FormatterApp::deviceComboSelected(int index) { +void FormatterApp::deviceComboSelected(int index) +{ StorageInfo storageInfo; QString totalS, usedS, avS, diskS, nameS, fsType, selectedText; selectedText = deviceComboBox->text(index); const QList<FileSystem> &fs = storageInfo.fileSystems(); QListIterator<FileSystem> it ( fs ); QString storage; - for( ; it.current(); ++it ){ + for( ; it.current(); ++it ) + { const QString name = (*it)->name(); const QString path = (*it)->path(); const QString disk = (*it)->disk(); // const QString options = (*it)->options(); - if( selectedText == disk) { + if( selectedText == disk) + { diskS = disk; nameS= name; mountPointLineEdit->setText(path); long mult = (*it)->blockSize() / 1024; long div = 1024 / (*it)->blockSize(); if ( !mult ) mult = 1; if ( !div ) div = 1; long total = (*it)->totalBlocks() * mult / div; long totalMb = total/1024; long avail = (*it)->availBlocks() * mult / div; long availMb = avail/1024; long used = total - avail; long usedMb = used/1024; totalS.sprintf(tr("Total: %1 kB ( %d mB)\n").arg( total ), totalMb ); usedS.sprintf(tr("Used: %1 kB ( %d mB)\n").arg(used) ,usedMb); avS.sprintf( tr("Available: %1 kB ( %d mB)").arg(avail), availMb ); } } fsType = getFileSystemType((const QString &)selectedText); TextLabel5->setText(tr("Type: %1\nFormatted with %2\n%3, %4, %5").arg( nameS).arg( fsType).arg(totalS).arg( usedS).arg( avS )); TextLabel5->setTextFormat( Qt::RichText ); // storageComboSelected(0); } -void FormatterApp::cleanUp() { - -} +void FormatterApp::cleanUp() +{} -void FormatterApp::editFstab() { +void FormatterApp::editFstab() +{ QCopEnvelope e("QPE/Application/textedit","setDocument(QString)"); e << (const QString &)"/etc/fstab"; } -void FormatterApp::parsetab(const QString &fileName) { +void FormatterApp::parsetab(const QString &fileName) +{ fileSystemTypeList.clear(); fsList.clear(); struct mntent *me; // if(fileName == "/etc/mtab") { FILE *mntfp = setmntent( fileName.latin1(), "r" ); - if ( mntfp ) { - while ( (me = getmntent( mntfp )) != 0 ) { + if ( mntfp ) + { + while ( (me = getmntent( mntfp )) != 0 ) + { QString deviceName = me->mnt_fsname; QString filesystemType = me->mnt_type; - if(deviceName != "none") { + if(deviceName != "none") + { if( fsList.contains(filesystemType) == 0 & filesystemType.find("proc",0,TRUE) == -1 & filesystemType.find("cramfs",0,TRUE) == -1 & filesystemType.find("auto",0,TRUE) == -1) fsList << filesystemType; deviceList << deviceName; qDebug(deviceName+"::"+filesystemType); fileSystemTypeList << deviceName+"::"+filesystemType; } } } endmntent( mntfp ); // } else if(fileName == "/etc/fstab") { // QFile f("/etc/fstab"); // if ( f.open(IO_ReadOnly) ) { // QTextStream t (&f); // QString s; // while (! t.eof()) { // s=t.readLine(); // s=s.simplifyWhiteSpace(); // if ( (!s.isEmpty() ) && (s.find(" ")!=0) ) { // // = me->mnt_fsname; // QString filesystemType = me->mnt_type; // QString deviceName = s.left(0,s.find(BLANK) ); // s=s.remove(0,s.find(BLANK)+1 ); // devicename // s=s.remove(0,s.find(BLANK)+1 ); // mountpoint // QStringt mountPoint= s.left(0,s.find(BLANK) ); // s=s.remove(0,s.find(BLANK)+1 ); // fs // QString filesystemType= s.left(0,s.find(BLANK) ); // } // } // } // f.close(); // } } -QString FormatterApp::getFileSystemType(const QString ¤tText) { +QString FormatterApp::getFileSystemType(const QString ¤tText) +{ parsetab("/etc/mtab"); //why did TT forget filesystem type? - for ( QStringList::Iterator it = fileSystemTypeList.begin(); it != fileSystemTypeList.end(); ++it ) { + for ( QStringList::Iterator it = fileSystemTypeList.begin(); it != fileSystemTypeList.end(); ++it ) + { QString temp = (*it); - if( temp.find( currentText,0,TRUE) != -1) { + if( temp.find( currentText,0,TRUE) != -1) + { return temp.right( temp.length() - temp.find("::",0,TRUE) - 2); // qDebug(fsType); } } return ""; } -bool FormatterApp::doFsck() { +bool FormatterApp::doFsck() +{ Output *outDlg; QString selectedDevice; // #if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) selectedDevice = deviceComboBox->currentText(); QString mountPoint = mountPointLineEdit->text(); QString umountS = "umount -v "+mountPoint+" 2>&1"; QString remountS = "mount -v "+mountPoint+" 2>&1"; // #else // // for testing // // currentText = diskDevice = "/dev/fd0"; // QString umountS = "umount -v /floppy 2>&1"; // QString remountS = "mount -v /floppy 2>&1"; // selectedDevice ="/dev/fd0"; // #endif QString fsType = getFileSystemType((const QString &)selectedDevice); QString cmd; qDebug( selectedDevice +" "+ fsType); if(fsType == "vfat") cmd = "dosfsck -vy "; if(fsType == "ext2") cmd = "e2fsck -cpvy "; cmd += selectedDevice + " 2>&1"; outDlg = new Output(this, tr("Formatter Output"),FALSE); - outDlg->showMaximized(); - outDlg->show(); + QPEApplication::showDialog( outDlg ); qApp->processEvents(); FILE *fp; char line[130]; outDlg->OutputEdit->append( tr("Trying to umount.")); outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); sleep(1); // qDebug("Command is "+umountS); fp = popen( (const char *) umountS, "r"); // qDebug("%d", fp); - if ( !fp ) { + if ( !fp ) + { qDebug("Could not execute '" + umountS + "'!\n" +(QString)strerror(errno)); QMessageBox::warning( this, tr("Formatter"), tr("umount failed!"), tr("&OK") ); pclose(fp); return false; - } else { + } + else + { // outDlg->OutputEdit->append( currentText + tr("\nhas been successfully umounted.")); // outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); - while ( fgets( line, sizeof line, fp)) { - if( ((QString)line).find("busy",0,TRUE) != -1) { + while ( fgets( line, sizeof line, fp)) + { + if( ((QString)line).find("busy",0,TRUE) != -1) + { qDebug("Could not find '" + umountS); QMessageBox::warning( this, tr("Formatter"), tr("Could not umount.\nDevice is busy!"), tr("&OK") ); pclose(fp); return false; - } else { + } + else + { QString lineStr = line; lineStr=lineStr.left(lineStr.length()-1); outDlg->OutputEdit->append(lineStr); outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); } } } pclose(fp); ///////////////////////////////////// fp = popen( (const char *) cmd, "r"); - while ( fgets( line, sizeof line, fp)) { - if( ((QString)line).find("No such device",0,TRUE) != -1) { + while ( fgets( line, sizeof line, fp)) + { + if( ((QString)line).find("No such device",0,TRUE) != -1) + { qDebug("No such device '" + umountS); QMessageBox::warning( this, tr("Formatter"), tr("No such device!"), tr("&OK") ); pclose(fp); // outDlg->OutputEdit->append("No such device"); // outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); return false; - } else { + } + else + { QString lineStr = line; lineStr=lineStr.left(lineStr.length()-1); outDlg->OutputEdit->append(lineStr); outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); } } outDlg->OutputEdit->append(tr("You can now close the output window.")); outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); // outDlg->OutputEdit->append( currentText + tr("\nhas been successfully formatted.")); // outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE); pclose(fp); ///////////////////////////////////////// return true; } -bool FormatterApp::doFsckCheck() { +bool FormatterApp::doFsckCheck() +{ return FALSE; } -int FormatterApp::formatCheck(const QString &) { +int FormatterApp::formatCheck(const QString &) +{ return -1; } -int FormatterApp::runCommand(const QString &) { +int FormatterApp::runCommand(const QString &) +{ return -1; } diff --git a/noncore/tools/opie-sh/opie-sh.cpp b/noncore/tools/opie-sh/opie-sh.cpp index a353d3f..7d54a03 100644 --- a/noncore/tools/opie-sh/opie-sh.cpp +++ b/noncore/tools/opie-sh/opie-sh.cpp @@ -1,284 +1,290 @@ /* Opie-sh. convinience app to allow you to use qdialogs in scripts (mainly shell scripts) Copyright (C) 2002 Thomas Stephens 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. 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +#include "mbox.h" +#include "fviewer.h" +#include "inputdialog.h" + +/* OPIE */ +#include <qpe/qpeapplication.h> + +/* QT */ #include <qstring.h> #include <qstringlist.h> -#include <qpe/qpeapplication.h> #include <qmessagebox.h> #include <qwidget.h> +/* STD */ #include <stdio.h> -#include "mbox.h" -#include "fviewer.h" -#include "inputdialog.h" int myMessageBox(int wi, int h, QWidget *w, int argc, QStringList args) { int i, type=0; QString button0Text, button1Text, button2Text, string, title; bool full=true; for(i=0; i<argc; i++) { if(args[i] == "-t") { title = args[i+1]; } if(args[i] == "-M") { string = args[i+1]; } if(args[i] == "-0") { button0Text = args[i+1]; } if(args[i] == "-1") { button1Text = args[i+1]; } if(args[i] == "-2") { button2Text = args[i+1]; } if(args[i] == "-I") { type=0; } if(args[i] == "-w") { type = 1; } if(args[i] == "-e") { type = 2; } if(args[i] == "-g") { full = false; } } MBox *mbox = new MBox(wi, h, (int)type, title, string, &button0Text, &button1Text, &button2Text, w, (QString)"messagebox"); if(full) { w->setCaption(title); - w->showMaximized(); + QPEApplication::showWidget( w ); } // mbox->show(); switch(mbox->exec() ) { case 0: return -1; case 1: return -1; case 2: return 0; case 3: return 1; case 4: return 2; default: return -1; } } void printusage() { printf("Usage instructions for Opie-sh\n"); printf("Usage: opie-sh [dialog type] [type specific options]\n"); printf("Types:\n"); printf(" -m Message Box\n"); printf(" -f [filename] View file [Default = stdin]\n"); printf(" -i Input dialog\n"); printf(" -h --help These instructions\n"); printf(" -t [title] The window/dialog title\n"); printf("Message box options:\n"); printf(" -M [message] The message to display\n"); printf(" -I Use information icon\n"); printf(" -w Use the warning icon\n"); printf(" -e Use the error icon\n"); printf(" -0 [text] First button text [Default = OK]\n"); printf(" -1 [text] Second button text\n"); printf(" -2 [text] Third button text\n"); printf(" -g Disable fullscreen\n"); printf("Input Dialog options:\n"); printf(" -s A single line of input (output to console)\n"); printf(" -l List input (newline separated list read in from file)\n"); printf(" -b A list box, enabling multiple selections (input same as -l)\n"); printf(" -p Password input (display '*'s)\n"); printf(" -L [label] The label for the input field\n"); printf(" -F [filename] An input file (for when it makes sense) [Default = stdin]\n"); printf(" -E Makes list input editable\n"); printf(" -g Disable fullscreen\n"); } int fileviewer(QPEApplication *a, int argc, QStringList args) { int i; QString filename, title, icon; bool update=false; for(i=0; i < argc; i++) { if(args[i] == "-f") { if(args[i+1][0] != '-') { filename = args[i+1]; } } if(args[i] == "-I") { icon=args[i+1]; } if(args[i] == "-t") { title = args[i+1]; } } FViewer *fview = new FViewer(icon, filename, title, 0, (QString) "fileviewer"); a->setMainWidget(fview); - fview->showMaximized(); + QPEApplication::showWidget( fview ); return a->exec(); } int input(int wi, int h, QWidget *w, int argc, QStringList args) { int i, type = 0; QString title, label, filename; bool edit=false, full=true; for(i=0; i < argc; i++) { if(args[i] == "-s") { type = 0; } if(args[i] == "-l") { type = 1; } if(args[i] == "-b") { type = 2; } if(args[i] == "-p") { type = 3; } if(args[i] == "-t") { title = args[i+1]; } if(args[i] == "-L") { label = args[i+1]; } if(args[i] == "-F") { if(args[i+1][0] != '-') { filename = args[i+1]; } } if(args[i] =="-E") { edit = true; } if(args[i] == "-g") { full = false; } } InputDialog *id = new InputDialog(wi, h, type, label, title, filename, edit, w); if(full) { w->setCaption(title); - w->showMaximized(); + QPEApplication::showWidget( w ); } if( id->exec() == 1) { printf("%s\n", id->getString().latin1()); return 0; } else { return -1; } } int main(int argc, char **argv) { int i; QStringList args; QPEApplication a(argc, argv); QWidget w; a.setMainWidget(&w); QWidget *d = a.desktop(); int width=d->width(); int height=d->height(); for(i=0; i < argc; i++) { args += argv[i]; } for(i=0; i < argc; i++) { if(args[i] == "-m") { return myMessageBox(width, height, &w, argc, args); } if(args[i] == "-f") { return fileviewer(&a, argc, args); } if(args[i] == "-i") { return input(width, height, &w, argc, args); } if(args[i] == "-h" || args[i] =="--help") { printusage(); return -1; } } printusage(); return -1; } diff --git a/noncore/tools/remote/learntab.cpp b/noncore/tools/remote/learntab.cpp index 7582161..335a3e9 100644 --- a/noncore/tools/remote/learntab.cpp +++ b/noncore/tools/remote/learntab.cpp @@ -1,158 +1,159 @@ /* Opie-Remote. emulates remote controlls on an iPaq (and maybe a Zaurus) in Opie. Copyright (C) 2002 Thomas Stephens 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. 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include "learntab.h" +/* OPIE */ +#include <qpe/qpeapplication.h> + LearnTab::LearnTab(QWidget *parent, const char *name):QWidget(parent,name) { QVBoxLayout *layout = new QVBoxLayout(this); QHBoxLayout *bottomLayout = new QHBoxLayout(this); layout->insertSpacing(0,5); remotesBox = new QListBox(this, "remotesBox"); layout->insertWidget(0, remotesBox, 1); remotesBox->insertStringList(getRemotes()); layout->insertSpacing(-1,5); layout->insertLayout(-1, bottomLayout); layout->insertSpacing(-1,5); QPushButton *add = new QPushButton("Add", this, "add"); bottomLayout->insertSpacing(-1, 5); bottomLayout->insertWidget(-1, add); bottomLayout->insertSpacing(-1, 5); QPushButton *edit = new QPushButton("Edit", this, "edit"); bottomLayout->insertWidget(-1, edit); bottomLayout->insertSpacing(-1, 5); QPushButton *del = new QPushButton("Delete", this, "delete"); bottomLayout->insertWidget(-1, del); bottomLayout->insertSpacing(-1, 5); connect(add, SIGNAL(clicked()), this, SLOT(add()) ); connect(edit, SIGNAL(clicked()), this, SLOT(edit()) ); connect(del, SIGNAL(clicked()), this, SLOT(del()) ); } void LearnTab::add() { printf("LearnTab::add: add pressed\n"); RecordDialog *dialog = new RecordDialog(this); - dialog->showMaximized(); + QPEApplication::showDialog( dialog ); } void LearnTab::edit() -{ -} +{} void LearnTab::del() -{ -} +{} QStringList LearnTab::getRemotes() { const char write_buffer[] = "LIST\n"; const char *readbuffer; int i, numlines; QStringList list; addr.sun_family=AF_UNIX; strcpy(addr.sun_path,"/dev/lircd"); fd = socket(AF_UNIX, SOCK_STREAM, 0); if(fd == -1) { QMessageBox *mb = new QMessageBox("Error!", "couldnt connect to socket", QMessageBox::NoIcon, QMessageBox::Ok, QMessageBox::NoButton, QMessageBox::NoButton); mb->exec(); perror("LearnTab::GetRemotes"); return NULL; } if(::connect(fd,(struct sockaddr *) &addr, sizeof(addr) ) == -1) { QMessageBox *mb = new QMessageBox("Error!", "couldnt connect to socket", QMessageBox::NoIcon, QMessageBox::Ok, QMessageBox::NoButton, QMessageBox::NoButton); mb->exec(); perror("LearnTab::GetRemotes"); return NULL; } write(fd, write_buffer, strlen(write_buffer)); for(i=0; i<5; i++) { printf("%d\n", i); readbuffer = readPacket(); printf("%s", readbuffer); printf("%d\n", i); } numlines = atoi(readbuffer); for(i=0; i<numlines; i++) { list+=readPacket(); } if(strcasecmp(readPacket(), "END") != 0) { QMessageBox *mb = new QMessageBox("Error!", "bad packet", QMessageBox::NoIcon, QMessageBox::Ok, QMessageBox::NoButton, QMessageBox::NoButton); mb->exec(); perror("LearnTab::GetRemotes"); return NULL; } ::close(fd); return list; } //this function was ripped for rc.c in xrc, it is available here: http://www.lirc.org/software.html const char *LearnTab::readPacket() { static char buffer[PACKET_SIZE+1]=""; char *end; static int ptr=0,end_len=0; ssize_t ret; timeout = 0; if(ptr>0) { memmove(buffer,buffer+ptr,strlen(buffer+ptr)+1); ptr=strlen(buffer); end=strchr(buffer,'\n'); } else { end=NULL; } alarm(TIMEOUT); while(end==NULL) { if(PACKET_SIZE<=ptr) { diff --git a/noncore/tools/remote/remote.cpp b/noncore/tools/remote/remote.cpp index 7972def..638629f 100644 --- a/noncore/tools/remote/remote.cpp +++ b/noncore/tools/remote/remote.cpp @@ -1,100 +1,106 @@ /* Opie-Remote. emulates remote controlls on an iPaq (and maybe a Zaurus) in Opie. Copyright (C) 2002 Thomas Stephens 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. 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#include "mainview.h" + +/* OPIE */ #include <qpe/qpeapplication.h> #include <qpe/resource.h> #include <qpe/config.h> + +/* QT */ #include <qpushbutton.h> #include <qtabwidget.h> #include <qlayout.h> #include <qmessagebox.h> #include <qpaintdevice.h> #include <qobject.h> + +/* STD */ #include <sys/socket.h> #include <sys/types.h> #include <sys/un.h> #include <unistd.h> #include <stdio.h> #include <signal.h> -#include "mainview.h" /*void reconnect(int &fd) { // struct sockaddr_un addr; addr.sun_family=AF_UNIX; strcpy(addr.sun_path,"/dev/lircd"); fd = socket(AF_UNIX, SOCK_STREAM, 0); if(connect(fd,(struct sockaddr *) &addr, sizeof(addr) ) == -1) { QMessageBox *mb = new QMessageBox("error", "couldnt connect to socket", QMessageBox::NoIcon, QMessageBox::Ok, QMessageBox::NoButton, QMessageBox::NoButton); mb->exec(); } } */ int main( int argc, char **argv ) { QPEApplication a( argc, argv ); MainView w; int fd; // struct sockaddr_un addr; // char read_buffer[BUFFERSIZE+1]; // char write_buffer[] = "LIST\n"; // addr.sun_family=AF_UNIX; // strcpy(addr.sun_path,"/dev/lircd"); // fd = socket(AF_UNIX, SOCK_STREAM, 0); // printf("fd1: %d\n", fd); /* if(connect(fd,(struct sockaddr *) &addr, sizeof(addr) ) == -1) { QMessageBox *mb = new QMessageBox("error", "couldnt connect to socket", QMessageBox::NoIcon, QMessageBox::Ok, QMessageBox::NoButton, QMessageBox::NoButton); mb->exec(); } */ // printf("%d\n", write(fd, write_buffer, sizeof(write_buffer) ) ); // printf("%d\n", read(fd, read_buffer, BUFFERSIZE ) ); // QMessageBox *mbtest = new QMessageBox("lirc test", // *new QString((const char *) read_buffer), // QMessageBox::NoIcon, // QMessageBox::Ok, // QMessageBox::NoButton, // QMessageBox::NoButton); // mbtest->exec(); a.setMainWidget( &w ); w.setIRSocket(fd); - w.showMaximized(); + QPEApplication::showWidget( &w ); return a.exec(); } |