Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

advancedfmData.cpp

Go to the documentation of this file.
00001 /***************************************************************************
00002    advancedfmData.cpp
00003                              -------------------
00004 ** Created: Mon 09-23-2002 13:24:11
00005     copyright            : (C) 2002 by ljp
00006     email                : ljp@llornkcor.com
00007  *   This program is free software; you can redistribute it and/or modify  *
00008  *   it under the terms of the GNU General Public License as published by  *
00009  *   the Free Software Foundation; either version 2 of the License, or     *
00010  *   (at your option) any later version.                                   *
00011  ***************************************************************************/
00012 #include "advancedfm.h"
00013 
00014 /* OPIE */
00015 #include <opie2/odebug.h>
00016 #include <opie2/oresource.h>
00017 #include <qpe/applnk.h>
00018 #include <qpe/storage.h>
00019 #include <qpe/qpeapplication.h>
00020 #include <qpe/menubutton.h>
00021 using namespace Opie::Core;
00022 using namespace Opie::Ui;
00023 
00024 /* QT */
00025 #include <qframe.h>
00026 #include <qlayout.h>
00027 #include <qhbox.h>
00028 #include <qmenubar.h>
00029 #include <qcombobox.h>
00030 #include <qtoolbutton.h>
00031 #include <qlineedit.h>
00032 #include <qlistview.h>
00033 
00034 /* STD */
00035 #include <sys/utsname.h>
00036 
00037 void AdvancedFm::init() {
00038          b = false;
00039          setCaption( tr( "AdvancedFm" ) );
00040 
00041 //    QFrame* frame = new QFrame(this);
00042 //    setCentralWidget(frame);
00043 //   QVBoxLayout *layout = new QVBoxLayout( frame );
00044    
00045    QVBoxLayout *layout = new QVBoxLayout( this);
00046          layout->setSpacing( 2);
00047          layout->setMargin( 0); // squeeze
00048 
00049          QMenuBar *menuBar = new QMenuBar(this);
00050          menuBar->setMargin( 0 ); // squeeze
00051          fileMenu = new QPopupMenu( this );
00052          viewMenu  = new QPopupMenu( this );
00053 //  customDirMenu  = new QPopupMenu( this );
00054 
00055          layout->addWidget( menuBar );
00056 
00057          menuBar->insertItem( tr( "File" ), fileMenu);
00058          menuBar->insertItem( tr( "View" ), viewMenu);
00059 
00060     bool useBigIcon = qApp->desktop()->size().width() > 330;
00061 
00062          cdUpButton = new QToolButton( 0,"cdUpButton");
00063      cdUpButton->setUsesBigPixmap( useBigIcon );
00064          cdUpButton->setPixmap( Opie::Core::OResource::loadPixmap( "up", Opie::Core::OResource::SmallIcon ) );
00065          cdUpButton->setAutoRaise( true );
00066          menuBar->insertItem( cdUpButton );
00067 
00068          qpeDirButton= new QToolButton( 0,"QPEButton");
00069      qpeDirButton->setUsesBigPixmap( useBigIcon );
00070          qpeDirButton->setPixmap( Opie::Core::OResource::loadPixmap( "logo/opielogo", Opie::Core::OResource::SmallIcon ) );
00071          qpeDirButton->setAutoRaise( true );
00072          menuBar->insertItem( qpeDirButton );
00073 
00074          cfButton = new QToolButton( 0, "CFButton");
00075      cfButton->setUsesBigPixmap( useBigIcon );
00076          cfButton->setPixmap( Opie::Core::OResource::loadPixmap( "pcmcia", Opie::Core::OResource::SmallIcon ) );
00077          cfButton->setAutoRaise( true );
00078          menuBar->insertItem( cfButton );
00079 
00080          sdButton = new QToolButton( 0, "SDButton");
00081      sdButton->setUsesBigPixmap( useBigIcon );
00082          sdButton->setPixmap( Opie::Core::OResource::loadPixmap( "advancedfm/sdcard", Opie::Core::OResource::SmallIcon ) );
00083          sdButton->setAutoRaise( true );
00084          menuBar->insertItem( sdButton );
00085 
00086          docButton = new QToolButton( 0,"docsButton");
00087      docButton->setUsesBigPixmap( useBigIcon );
00088          docButton->setPixmap( Opie::Core::OResource::loadPixmap( "DocsIcon", Opie::Core::OResource::SmallIcon ) );
00089          docButton->setAutoRaise( true );
00090          menuBar->insertItem( docButton );
00091 
00092          homeButton = new QToolButton( 0, "homeButton");
00093      homeButton->setUsesBigPixmap( useBigIcon );
00094          homeButton->setPixmap( Opie::Core::OResource::loadPixmap( "home", Opie::Core::OResource::SmallIcon ) );
00095          homeButton->setAutoRaise( true );
00096          menuBar->insertItem( homeButton );
00097 
00098          fileMenu->insertItem( tr( "Show Hidden Files" ), this,  SLOT( showMenuHidden() ));
00099          fileMenu->setItemChecked( fileMenu->idAt(0),TRUE);
00100          fileMenu->insertSeparator();
00101          fileMenu->insertItem( tr( "File Search" ), this, SLOT( openSearch() ));
00102          fileMenu->insertSeparator();
00103          fileMenu->insertItem( tr( "Make Directory" ), this, SLOT( mkDir() ));
00104          fileMenu->insertItem( tr( "Rename" ), this, SLOT( rn() ));
00105          fileMenu->insertItem( tr( "Run Command" ), this, SLOT( runCommandStd() ));
00106          fileMenu->insertItem( tr( "Run Command with Output" ), this, SLOT( runCommand() ));
00107          fileMenu->insertSeparator();
00108          fileMenu->insertItem( tr( "Make Symlink" ), this, SLOT( mkSym() ));
00109          fileMenu->insertItem( tr( "Select All" ), this, SLOT( selectAll() ));
00110          fileMenu->insertItem( tr( "Add To Documents" ), this, SLOT( addToDocs() ));
00111          fileMenu->insertItem( tr( "Delete" ), this, SLOT( del() ));
00112          fileMenu->setCheckable(TRUE);
00113 
00114          viewMenu->insertItem( tr( "Switch to View 1" ), this, SLOT( switchToLocalTab()));
00115          viewMenu->insertItem( tr( "Switch to View 2" ), this, SLOT( switchToRemoteTab()));
00116          viewMenu->insertItem( tr( "Refresh" ), this, SLOT( refreshCurrentTab()));
00117 //     viewMenu->insertSeparator();
00118 //     viewMenu->insertItem( tr( "About" ), this, SLOT( doAbout() ));
00119          viewMenu->setCheckable(true);
00120          viewMenu->setItemChecked( viewMenu->idAt(0), true);
00121          viewMenu->setItemChecked( viewMenu->idAt(1), false);
00122 
00123          s_addBookmark = tr("Bookmark Directory");
00124          s_removeBookmark = tr("Remove Current Directory from Bookmarks");
00125 
00126 //    menuButton->insertItem("");
00127 
00128 //     customDirMenu->insertItem(tr("Add This Directory"));
00129 //     customDirMenu->insertItem(tr("Remove This Directory"));
00130 //     customDirMenu->insertSeparator();
00131 
00132          QHBoxLayout *CBHB = new QHBoxLayout(); // parent layout will be set later
00133          CBHB->setMargin( 0 );
00134          CBHB->setSpacing( 1 );
00135 
00136          menuButton = new MenuButton( this );
00137 
00138          menuButton->setUseLabel(false);
00139          menuButton->setMaximumWidth( 20 );
00140          menuButton->insertItem( s_addBookmark);
00141          menuButton->insertItem( s_removeBookmark);
00142          menuButton->insertSeparator();
00143 // menuButton->setFocusPolicy(NoFocus);
00144          CBHB->addWidget( menuButton );
00145 
00146          customDirsToMenu();
00147 
00148          currentPathCombo = new QComboBox( FALSE, this, "currentPathCombo" );
00149          currentPathCombo->setEditable(TRUE);
00150          currentPathCombo->lineEdit()->setText( currentDir.canonicalPath());
00151 //       currentPathCombo->setFocusPolicy(NoFocus);
00152          CBHB->addWidget( currentPathCombo );
00153 
00154          layout->addLayout( CBHB );
00155 
00156          TabWidget = new OSplitter( Horizontal, this, "TabWidget" );
00157 //  TabWidget = new QTabWidget( this, "TabWidget" );
00158          layout->addWidget( TabWidget, 4 );
00159 
00160          tab = new QWidget( TabWidget, "tab" );
00161          tabLayout = new QGridLayout( tab );
00162          tabLayout->setSpacing( 2);
00163          tabLayout->setMargin( 2);
00164 
00165          Local_View = new QListView( tab, "Local_View" );
00166          Local_View->addColumn( tr("File"),130);
00167          Local_View->addColumn( tr("Size"),-1);
00168          Local_View->setColumnAlignment(1,QListView::AlignRight);
00169          Local_View->addColumn( tr("Date"),-1);
00170          Local_View->setColumnAlignment(2,QListView::AlignRight);
00171          Local_View->setAllColumnsShowFocus(TRUE);
00172          Local_View->setMultiSelection( TRUE );
00173          Local_View->setSelectionMode(QListView::Extended);
00174          Local_View->setFocusPolicy(StrongFocus);
00175          Local_View->installEventFilter( this );
00176 
00177          QPEApplication::setStylusOperation( Local_View->viewport() , QPEApplication::RightOnHold);
00178 
00179          tabLayout->addWidget( Local_View, 0, 0 );
00180 
00181          TabWidget->addWidget( tab,"advancedfm/smFileBrowser.png", tr("1"));
00182 //  TabWidget->insertTab( tab, tr("1"));
00183 
00184          tab_2 = new QWidget( TabWidget, "tab_2" );
00185          tabLayout_2 = new QGridLayout( tab_2 );
00186          tabLayout_2->setSpacing( 2);
00187          tabLayout_2->setMargin( 2);
00188 
00189          Remote_View = new QListView( tab_2, "Remote_View" );
00190          Remote_View->addColumn( tr("File"),130);
00191          Remote_View->addColumn( tr("Size"),-1);
00192          Remote_View->setColumnAlignment(1,QListView::AlignRight);
00193          Remote_View->addColumn( tr("Date"),-1);
00194          Remote_View->setColumnAlignment(2,QListView::AlignRight);
00195          Remote_View->setAllColumnsShowFocus(TRUE);
00196          Remote_View->setMultiSelection( TRUE );
00197          Remote_View->setSelectionMode(QListView::Extended);
00198          Remote_View->setFocusPolicy(StrongFocus);
00199          Remote_View->installEventFilter( this );
00200 
00201          QPEApplication::setStylusOperation( Remote_View->viewport(), QPEApplication::RightOnHold);
00202 
00203          tabLayout_2->addWidget( Remote_View, 0, 0 );
00204 
00205          TabWidget->addWidget( tab_2, "advancedfm/smFileBrowser.png",tr( "2"));
00206          TabWidget->setSizeChange( 370 );
00207 //  TabWidget->insertTab( tab_2, tr( "2"));
00208 
00209          /*     tab_3 = new QWidget( TabWidget, "tab_3" );
00210                                         tabLayout_3 = new QGridLayout( tab_3 );
00211                                         tabLayout_3->setSpacing( 2);
00212                                         tabLayout_3->setMargin( 2);
00213 
00214 
00215                                         //     OFileDialog fileDialog;
00216                                         // fileDialog;
00217                                         //    fileSelector = new FileSelector( "*",tab_3, "fileselector" , FALSE, FALSE); //buggy
00218                                         //     fileDialog = new OFileDialog("bangalow", tab_3, 4, 2, "Bungalow");
00219                                         //      OFileSelector fileDialog = new OFileSelector( tab_3, 4, 2,"/");
00220 
00221                                         QListView *fileTree;
00222                                         fileTree = new QListView( tab_3, "tree" );
00223 
00224 
00225                                         tabLayout_3->addMultiCellWidget( fileTree, 0, 0, 0, 3 );
00226 
00227                                         TabWidget->insertTab( tab_3, tr( "Remote" ) );
00228          */
00229 
00231 
00232          if( !StorageInfo::hasSd() || !StorageInfo::hasMmc()) {
00233                         sdButton->hide();
00234          }
00235          if( !StorageInfo::hasCf() ) {
00236                         cfButton->hide();
00237          }
00238          currentDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All);
00239          currentDir.setPath( QDir::currentDirPath());
00240 
00241          currentRemoteDir.setFilter( QDir::Files | QDir::Dirs | QDir::Hidden | QDir::All);
00242          currentRemoteDir.setPath( QDir::currentDirPath());
00243 
00244          filterStr="*";
00245          showMenuHidden();
00246          TabWidget->setCurrentWidget(0);
00247 
00248 }
00249 
00250 void AdvancedFm::initConnections()
00251 {
00252 
00253   connect(qApp,SIGNAL(aboutToQuit()),this,SLOT(cleanUp()));
00254   connect(qpeDirButton,SIGNAL(released()),this,SLOT(QPEButtonPushed()));
00255   connect(cfButton,SIGNAL(released()),this,SLOT(CFButtonPushed()));
00256   connect(sdButton,SIGNAL(released()),this,SLOT(SDButtonPushed()));
00257   connect(cdUpButton,SIGNAL(released()),this,SLOT(upDir()));
00258   connect(docButton,SIGNAL(released()),this,SLOT(docButtonPushed()));
00259   connect(homeButton,SIGNAL(released()),this,SLOT(homeButtonPushed()));
00260   connect(currentPathCombo,SIGNAL(activated(const QString&)),this,SLOT(changeTo(const QString&)));
00261 
00262   connect(currentPathCombo->lineEdit(),SIGNAL(returnPressed()),this,SLOT(currentPathComboChanged()));
00263 
00264   connect(Local_View,SIGNAL(clicked(QListViewItem*)),this,SLOT( ListClicked(QListViewItem*)));
00265 
00266   connect(Local_View,SIGNAL(mouseButtonPressed(int,QListViewItem*,const QPoint&,int)),this,SLOT( ListPressed(int,QListViewItem*,const QPoint&,int)) );
00267 
00268   connect(Remote_View,SIGNAL(clicked(QListViewItem*)),this,SLOT(ListClicked(QListViewItem*)));
00269   connect(Remote_View,SIGNAL(mouseButtonPressed(int,QListViewItem*,const QPoint&,int)),this,SLOT(ListPressed(int,QListViewItem*,const QPoint&,int)));
00270 
00271   connect(TabWidget,SIGNAL(currentChanged(QWidget*)),this,SLOT(tabChanged(QWidget*)));
00272 
00273   connect(Remote_View,SIGNAL(rightButtonPressed(QListViewItem*,const QPoint&,int)),this,SLOT(showFileMenu()));
00274   connect(Local_View,SIGNAL(rightButtonPressed(QListViewItem*,const QPoint&,int)),this,SLOT(showFileMenu()));
00275 
00276   connect(menuButton,SIGNAL(selected(const QString&)),SLOT(gotoCustomDir(const QString&)));
00277 //  connect( menuButton, SIGNAL( selected(int)), SLOT( dirMenuSelected(int)));
00278   connect(viewMenu,SIGNAL(activated(int)),this,SLOT(slotSwitchMenu(int)));
00279 //  connect( customDirMenu, SIGNAL( activated(int)), this, SLOT( dirMenuSelected(int)));
00280 
00281 }
00282 

Generated on Sat Nov 5 16:16:46 2005 for OPIE by  doxygen 1.4.2