⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 krbriefview.cpp

📁 LINUX 下, 以 QT/KDE 写的档案管理员
💻 CPP
📖 第 1 页 / 共 4 页
字号:
     showContextMenu();   else if (i > 0)     contextMenuTimer.start(i, true);}void KrBriefView::showContextMenu(){	if (lastSwushPosition)		lastSwushPosition->setSelected(true);	op()->emitContextMenu( contextMenuPoint );}KrViewItem *KrBriefView::getKrViewItemAt( const QPoint & vp ) {   return dynamic_cast<KrViewItem*>( KIconView::findItem( vp ) );}bool KrBriefView::acceptDrag( QDropEvent* ) const {   return true;}void KrBriefView::contentsDropEvent( QDropEvent * e ) {   _currDragItem = 0;   op()->emitGotDrop(e);   e->ignore();   KIconView::contentsDropEvent( e );                   }void KrBriefView::contentsDragMoveEvent( QDragMoveEvent * e ) {   KrViewItem *oldDragItem = _currDragItem;   _currDragItem = getKrViewItemAt( e->pos() );   if( _currDragItem && !_currDragItem->VF->vfile_isDir() )     _currDragItem = 0;      KIconView::contentsDragMoveEvent( e );   if( _currDragItem != oldDragItem )   {     if( oldDragItem )        dynamic_cast<KrBriefViewItem *>( oldDragItem )->repaint();     if( _currDragItem )        dynamic_cast<KrBriefViewItem *>( _currDragItem )->repaint();   }}void KrBriefView::contentsDragLeaveEvent ( QDragLeaveEvent *e ){   KrViewItem *oldDragItem = _currDragItem;   _currDragItem = 0;   KIconView::contentsDragLeaveEvent( e );   if( oldDragItem )     dynamic_cast<KrBriefViewItem *>( oldDragItem )->repaint();}void KrBriefView::imStartEvent(QIMEvent* e){  if ( ACTIVE_PANEL->quickSearch->isShown() ) {    ACTIVE_PANEL->quickSearch->myIMStartEvent( e );    return ;  }else {    KConfigGroupSaver grpSvr( _config, "Look&Feel" );    if ( !_config->readBoolEntry( "New Style Quicksearch", _NewStyleQuicksearch ) )      KIconView::imStartEvent( e );    else {							// first, show the quicksearch if its hidden      if ( ACTIVE_PANEL->quickSearch->isHidden() ) {        ACTIVE_PANEL->quickSearch->show();								// hack: if the pressed key requires a scroll down, the selected								// item is "below" the quick search window, as the icon view will								// realize its new size after the key processing. The following line								// will resize the icon view immediately.        ACTIVE_PANEL->layout->activate();								// second, we need to disable the dirup action - hack!        krDirUp->setEnabled( false );      }							// now, send the key to the quicksearch      ACTIVE_PANEL->quickSearch->myIMStartEvent( e );    }  }}void KrBriefView::imEndEvent(QIMEvent* e){  if ( ACTIVE_PANEL->quickSearch->isShown() ) {    ACTIVE_PANEL->quickSearch->myIMEndEvent( e );    return ;  }}void KrBriefView::imComposeEvent(QIMEvent* e){  if ( ACTIVE_PANEL->quickSearch->isShown() ) {    ACTIVE_PANEL->quickSearch->myIMComposeEvent( e );    return ;  }}void KrBriefView::keyPressEvent( QKeyEvent * e ) {   if ( !e || !firstItem() )      return ; // subclass bug   if ( ACTIVE_PANEL->quickSearch->isShown() ) {      ACTIVE_PANEL->quickSearch->myKeyPressEvent( e );      return ;   }   switch ( e->key() ) {         case Key_Up :         if ( e->state() == ControlButton ) { // let the panel handle it - jump to the Location Bar            e->ignore();            break;         } else if (!KrSelectionMode::getSelectionHandler()->useQTSelection()) {            QIconViewItem * i = currentItem();            if ( !i ) break;            if ( e->state() == ShiftButton ) setSelected( i, !i->isSelected(), true );            i = i->prevItem();         	if ( i ) {					QIconView::setCurrentItem( i );					QIconView::ensureItemVisible( i );				}         } else KIconView::keyPressEvent(e);         break;         case Key_Down :         if ( e->state() == ControlButton || e->state() == ( ControlButton | ShiftButton ) ) { // let the panel handle it - jump to command line            e->ignore();            break;         } else if (!KrSelectionMode::getSelectionHandler()->useQTSelection()){            QIconViewItem * i = currentItem();            if ( !i ) break;            if ( e->state() == ShiftButton ) setSelected( i, !i->isSelected(), true );            i = i->nextItem();         if ( i ) {QIconView::setCurrentItem( i ); QIconView::ensureItemVisible( i ); }         } else KIconView::keyPressEvent(e);         break;         case Key_Next:  if (!KrSelectionMode::getSelectionHandler()->useQTSelection()){            QIconViewItem * i = currentItem(), *j;            if ( !i ) break;            QRect r( i->rect() );            if ( !r.height() ) break;            for ( int page = visibleHeight() / r.height() - 1; page > 0 && ( j = i->nextItem() ); --page )               i = j;            if ( i ) {QIconView::setCurrentItem( i ); QIconView::ensureItemVisible( i ); }         } else KIconView::keyPressEvent(e);         break;         case Key_Prior:  if (!KrSelectionMode::getSelectionHandler()->useQTSelection()){            QIconViewItem * i = currentItem(), *j;            if ( !i ) break;            QRect r( i->rect() );            if ( !r.height() ) break;            for ( int page = visibleHeight() / r.height() - 1; page > 0 && ( j = i->prevItem() ); --page )               i = j;            if ( i ) {QIconView::setCurrentItem( i ); QIconView::ensureItemVisible( i ); }         } else KIconView::keyPressEvent(e);         break;         case Key_Home:  if (!KrSelectionMode::getSelectionHandler()->useQTSelection()){            if ( e->state() & ShiftButton )  /* Shift+Home */            {               clearSelection();               KIconView::keyPressEvent( e );               op()->emitSelectionChanged();               arrangeItemsInGrid();               break;            } else {               QIconViewItem * i = firstItem();               if ( i ) {QIconView::setCurrentItem( i ); QIconView::ensureItemVisible( i ); }            }         } else KIconView::keyPressEvent(e);         break;         case Key_End:  if (!KrSelectionMode::getSelectionHandler()->useQTSelection()){            if ( e->state() & ShiftButton )  /* Shift+End */            {               clearSelection();               KIconView::keyPressEvent( e );               op()->emitSelectionChanged();               arrangeItemsInGrid();               break;            } else {               QIconViewItem *i = firstItem(), *j;               while ( ( j = i->nextItem() ) )                  i = j;               while ( ( j = i->nextItem() ) )                  i = j;            if ( i ) {QIconView::setCurrentItem( i ); QIconView::ensureItemVisible( i ); }               break;            }         } else KIconView::keyPressEvent(e);         break;         case Key_Enter :         case Key_Return : {            if ( e->state() & ControlButton )         // let the panel handle it               e->ignore();            else {               KrViewItem * i = getCurrentKrViewItem();               QString tmp = i->name();               op()->emitExecuted(tmp);            }            break;         }         case Key_QuoteLeft :          // Terminal Emulator bugfix         if ( e->state() == ControlButton ) { // let the panel handle it            e->ignore();            break;         } else {          // a normal click - do a lynx-like moving thing            SLOTS->home(); // ask krusader to move up a directory            return ;         // safety         }         break;         case Key_Right :         if ( e->state() == ControlButton ) { // let the panel handle it            e->ignore();            break;         } else if (!KrSelectionMode::getSelectionHandler()->useQTSelection()) {            QIconViewItem *i = currentItem();            QIconViewItem *newCurrent = 0;            if ( !i ) break;            int minY = i->y() - i->height() / 2;            int minX  = i->width() / 2 + i->x();            if ( e->state() == ShiftButton ) setSelected( i, !i->isSelected(), true );            while( i && i->x() <= minX )            {              if ( e->state() == ShiftButton ) setSelected( i, !i->isSelected(), true );              newCurrent = i;              i = i->nextItem();            }            while( i && i->y() < minY )            {              if ( e->state() == ShiftButton ) setSelected( i, !i->isSelected(), true );              newCurrent = i;              i = i->nextItem();            }            if( i )            {              if ( e->state() == ShiftButton ) setSelected( i, !i->isSelected(), true );              newCurrent = i;            }            if( newCurrent )            {              QIconView::setCurrentItem( newCurrent );              QIconView::ensureItemVisible( newCurrent );            }         } else KIconView::keyPressEvent(e);         break;         case Key_Backspace :                         // Terminal Emulator bugfix         if ( e->state() == ControlButton || e->state() == ShiftButton ) { // let the panel handle it            e->ignore();            break;         } else {          // a normal click - do a lynx-like moving thing            SLOTS->dirUp(); // ask krusader to move up a directory            return ;         // safety         }         case Key_Left :         if ( e->state() == ControlButton ) { // let the panel handle it            e->ignore();            break;         } else if (!KrSelectionMode::getSelectionHandler()->useQTSelection()) {            QIconViewItem *i = currentItem();            QIconViewItem *newCurrent = 0;            if ( !i ) break;            int maxY = i->y() + i->height() / 2;            int maxX  = i->x() - i->width() / 2;            if ( e->state() == ShiftButton ) setSelected( i, !i->isSelected(), true );            while( i && i->x() >= maxX )            {              if ( e->state() == ShiftButton ) setSelected( i, !i->isSelected(), true );              newCurrent = i;              i = i->prevItem();            }            while( i && i->y() > maxY )            {              if ( e->state() == ShiftButton ) setSelected( i, !i->isSelected(), true );              newCurrent = i;              i = i->prevItem();            }            if( i )            {              if ( e->state() == ShiftButton ) setSelected( i, !i->isSelected(), true );              newCurrent = i;            }            if( newCurrent )            {              QIconView::setCurrentItem( newCurrent );              QIconView::ensureItemVisible( newCurrent );            }         } else KIconView::keyPressEvent(e);         break;         case Key_Delete :                   // kill file         SLOTS->deleteFiles( e->state() == ShiftButton || e->state() == ControlButton );				         break ;         case Key_Insert : {            {               QIconViewItem *i = currentItem();               if( !i )                  break;               if (KrSelectionMode::getSelectionHandler()->insertMovesDown())               {                  setSelected( i, !i->isSelected(), true );                  if( i->nextItem() )                  {                     QIconView::setCurrentItem( i->nextItem() );                     QIconView::ensureItemVisible( i->nextItem() );                  }               }               else               {                  setSelected( i, !i->isSelected(), true );               }            }            break ;         }         case Key_Space : {            {               QIconViewItem *i = currentItem();               if( !i )                  break;               if (KrSelectionMode::getSelectionHandler()->spaceMovesDown())               {                  setSelected( i, !i->isSelected(), true );                  if( i->nextItem() )                  {                     QIconView::setCurrentItem( i->nextItem() );                     QIconView::ensureItemVisible( i->nextItem() );                  }               }               else               {                  setSelected( i, !i->isSelected(), true );               }            }            break ;         }         case Key_A :                 // mark all         if ( e->state() == ControlButton ) {            KIconView::keyPressEvent( e );            updateView();            break;         }         default:         if ( e->key() == Key_Escape ) {            QIconView::keyPressEvent( e ); return ; // otherwise the selection gets lost??!??         }         // if the key is A..Z or 1..0 do quick search otherwise...         if ( e->text().length() > 0 && e->text() [ 0 ].isPrint() )       // better choice. Otherwise non-ascii characters like  can not be the first character of a filename            /*         if ( ( e->key() >= Key_A && e->key() <= Key_Z ) ||                           ( e->key() >= Key_0 && e->key() <= Key_9 ) ||                           ( e->key() == Key_Backspace ) ||                           ( e->key() == Key_Down ) ||                           ( e->key() == Key_Period ) ) */{             // are we doing quicksearch? if not, send keys to panel            //if ( _config->readBoolEntry( "Do Quicksearch", _DoQuicksearch ) ) {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -