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

📄 krbriefview.cpp

📁 LINUX 下, 以 QT/KDE 写的档案管理员
💻 CPP
📖 第 1 页 / 共 4 页
字号:
      return ;   QString tmp = dynamic_cast<KrViewItem*>( item ) ->name();   op()->emitExecuted(tmp);}void KrBriefView::prepareForActive() {   KrView::prepareForActive();   setFocus();   slotItemDescription( currentItem() );}void KrBriefView::prepareForPassive() {   KrView::prepareForPassive();   CANCEL_TWO_CLICK_RENAME;   KConfigGroupSaver grpSvr( _config, "Look&Feel" );   if ( _config->readBoolEntry( "New Style Quicksearch", _NewStyleQuicksearch ) ) {      if ( MAIN_VIEW ) {         if ( ACTIVE_PANEL ) {            if ( ACTIVE_PANEL->quickSearch ) {               if ( ACTIVE_PANEL->quickSearch->isShown() ) {                  stopQuickSearch( 0 );               }            }         }      }   }}void KrBriefView::slotItemDescription( QIconViewItem * item ) {   KrViewItem * it = static_cast<KrBriefViewItem*>( item );   if ( !it )      return ;   QString desc = it->description();   op()->emitItemDescription(desc);}void KrBriefView::handleQuickSearchEvent( QKeyEvent * e ) {   switch ( e->key() ) {         case Key_Insert:         {            QKeyEvent ev = QKeyEvent( QKeyEvent::KeyPress, Key_Space, 0, 0 );            KIconView::keyPressEvent( & ev );            ev = QKeyEvent( QKeyEvent::KeyPress, Key_Down, 0, 0 );            keyPressEvent( & ev );            break;         }         case Key_Home:         {            QIconView::setCurrentItem( firstItem() );            QKeyEvent ev = QKeyEvent( QKeyEvent::KeyPress, Key_Down, 0, 0 );            keyPressEvent( & ev );            break;         }         case Key_End:         {            QIconView::setCurrentItem( firstItem() );            QKeyEvent ev = QKeyEvent( QKeyEvent::KeyPress, Key_Up, 0, 0 );            keyPressEvent( & ev );            break;         }   }}void KrBriefView::slotCurrentChanged( QIconViewItem * item ) {   CANCEL_TWO_CLICK_RENAME;   if ( !item )      return ;   _nameToMakeCurrent = static_cast<KrBriefViewItem*>( item ) ->name();}void KrBriefView::contentsMousePressEvent( QMouseEvent * e ) {   bool callDefaultHandler = true, processEvent = true, selectionChanged = false;   pressedItem = 0;   e = transformMouseEvent( e );      QIconViewItem * oldCurrent = currentItem();   QIconViewItem *newCurrent = findItem( e->pos() );   if (e->button() == RightButton)   {	if (KrSelectionMode::getSelectionHandler()->rightButtonSelects() || 		(((e->state() & ShiftButton) || (e->state() & ControlButton))) && KrSelectionMode::getSelectionHandler()->shiftCtrlRightButtonSelects())     {       if (KrSelectionMode::getSelectionHandler()->rightButtonPreservesSelection() && !(e->state() & ShiftButton)          && !(e->state() & ControlButton) && !(e->state() & AltButton))       {         if (newCurrent)         {           if (KrSelectionMode::getSelectionHandler()->showContextMenu() >= 0)           {             swushSelects = !newCurrent->isSelected();             lastSwushPosition = newCurrent;           }           newCurrent->setSelected(!newCurrent->isSelected(), true);           newCurrent->repaint();			  selectionChanged = true;         }         callDefaultHandler = false;         processEvent = false;         e->accept();       }       if( !KrSelectionMode::getSelectionHandler()->rightButtonPreservesSelection() && KrSelectionMode::getSelectionHandler()->showContextMenu() >= 0)       {         if( (e->state() & ControlButton) && !(e->state() & AltButton) )         {            if( newCurrent )            {               newCurrent->setSelected(!newCurrent->isSelected());               newCurrent->repaint();               selectionChanged = true;               callDefaultHandler = false;               e->accept();            }         }         else if( !(e->state() & ControlButton) && !(e->state() & AltButton) )         {            clearSelection();            if( newCurrent )            {               newCurrent->setSelected( true );               newCurrent->repaint();            }            selectionChanged = true;            callDefaultHandler = false;            e->accept();         }       }     }     else     {       callDefaultHandler = false;       processEvent = false;       e->accept();     }   }   if (e->button() == LeftButton)   {     dragStartPos = e->pos();	  if (KrSelectionMode::getSelectionHandler()->leftButtonSelects() || 	  		(((e->state() & ShiftButton) || (e->state() & ControlButton))) &&			KrSelectionMode::getSelectionHandler()->shiftCtrlLeftButtonSelects())     {       if (KrSelectionMode::getSelectionHandler()->leftButtonPreservesSelection() && !(e->state() & ShiftButton)          && !(e->state() & ControlButton) && !(e->state() & AltButton))       {         if (newCurrent)         {           newCurrent->setSelected(!newCurrent->isSelected(), true);           newCurrent->repaint();			  selectionChanged = true;         }         callDefaultHandler = false;         processEvent = false;         e->accept();       }     }     else     {       callDefaultHandler = false;       processEvent = false;       e->accept();     }   }   modifierPressed = false;   if ( (e->state() & ShiftButton) || (e->state() & ControlButton) || (e->state() & AltButton) ) {      CANCEL_TWO_CLICK_RENAME;      modifierPressed = true;   }   // stop quick search in case a mouse click occured   KConfigGroupSaver grpSvr( _config, "Look&Feel" );   if ( _config->readBoolEntry( "New Style Quicksearch", _NewStyleQuicksearch ) ) {      if ( MAIN_VIEW ) {         if ( ACTIVE_PANEL ) {            if ( ACTIVE_PANEL->quickSearch ) {               if ( ACTIVE_PANEL->quickSearch->isShown() ) {                  stopQuickSearch( 0 );               }            }         }      }   }   if ( !_focused )   	op()->emitNeedFocus();   setFocus();   if (processEvent && ( (e->state() & ShiftButton) || (e->state() & ControlButton) || (e->state() & AltButton) ) && !KrSelectionMode::getSelectionHandler()->useQTSelection()){      if ( oldCurrent && newCurrent && oldCurrent != newCurrent && e->state() & ShiftButton ) {         int oldPos = oldCurrent->index();         int newPos = newCurrent->index();         QIconViewItem *top = 0, *bottom = 0;         if ( oldPos > newPos ) {            top = newCurrent;            bottom = oldCurrent;         } else {            top = oldCurrent;            bottom = newCurrent;         }         while( top )         {            if ( !top->isSelected() ) {               top->setSelected( true, true );               selectionChanged = true;            }            if ( top == bottom )               break;            top = top->nextItem();         }         QIconView::setCurrentItem( newCurrent );         callDefaultHandler = false;      }      if( e->state() & ShiftButton )         callDefaultHandler = false;   }		if (selectionChanged)		updateView(); // don't call triggerUpdate directly!	   if (callDefaultHandler)   {     dragStartPos = QPoint( -1, -1 );     QString name = QString::null;    // will the file be deleted by the mouse event?     if( newCurrent )                 // save the name of the file       name = static_cast<KrBriefViewItem*>( newCurrent ) ->name();     KIconView::contentsMousePressEvent( e );     if( name.isEmpty() || _dict.find( name ) == 0 ) // is the file still valid?       newCurrent = 0;                // if not, don't do any crash...   } else {     // emitting the missing signals from QIconView::contentsMousePressEvent();     // the right click signal is not emitted as it is used for selection     QPoint vp = contentsToViewport( e->pos() );     if( !newCurrent ) {       emit pressed( pressedItem = newCurrent );       emit pressed( newCurrent, viewport()->mapToGlobal( vp ) );     }     emit mouseButtonPressed( e->button(), newCurrent, viewport()->mapToGlobal( vp ) );   }   //   if (i != 0) // comment in, if click sould NOT select   //     setSelected(i, FALSE);   if (newCurrent) QIconView::setCurrentItem(newCurrent);   if ( ACTIVE_PANEL->quickSearch->isShown() ) {      ACTIVE_PANEL->quickSearch->hide();      ACTIVE_PANEL->quickSearch->clear();      krDirUp->setEnabled( true );   }   if ( OTHER_PANEL->quickSearch->isShown() ) {      OTHER_PANEL->quickSearch->hide();      OTHER_PANEL->quickSearch->clear();      krDirUp->setEnabled( true );   }}void KrBriefView::contentsMouseReleaseEvent( QMouseEvent * e ) {  if (e->button() == RightButton)    contextMenuTimer.stop();    e = transformMouseEvent( e );    KIconView::contentsMouseReleaseEvent( e );     if( pressedItem ) {    QPoint vp = contentsToViewport( e->pos() );    QIconViewItem *newCurrent = findItem( e->pos() );    if( pressedItem == newCurrent ) {      // emitting the missing signals from QIconView::contentsMouseReleaseEvent();      // the right click signal is not emitted as it is used for selection      if( !newCurrent ) {        emit clicked( newCurrent );        emit clicked( newCurrent, viewport()->mapToGlobal( vp ) );      }      emit mouseButtonClicked( e->button(), newCurrent, viewport()->mapToGlobal( vp ) );    }    pressedItem = 0;  }}void KrBriefView::contentsMouseMoveEvent ( QMouseEvent * e ) {   e = transformMouseEvent( e );   if ( ( singleClicked || renameTimer.isActive() ) && findItem( e->pos() ) != clickedItem )      CANCEL_TWO_CLICK_RENAME;   if ( dragStartPos != QPoint( -1, -1 ) &&        e->state() & LeftButton && ( dragStartPos - e->pos() ).manhattanLength() > QApplication::startDragDistance() )      startDrag();   if (KrSelectionMode::getSelectionHandler()->rightButtonPreservesSelection()       && KrSelectionMode::getSelectionHandler()->rightButtonSelects()       && KrSelectionMode::getSelectionHandler()->showContextMenu() >= 0 && e->state() == Qt::RightButton)      {         QIconViewItem *newItem = findItem( e->pos() );         e->accept();         if (newItem != lastSwushPosition && newItem)         {           // is the new item above or below the previous one?           QIconViewItem * above = newItem;           QIconViewItem * below = newItem;           for (;(above || below) && above != lastSwushPosition && below != lastSwushPosition;)           {             if (above)               above = above->nextItem();             if (below)               below = below->prevItem();           }           if (above && (above == lastSwushPosition))           {             for (; above != newItem; above = above->prevItem())               above->setSelected(swushSelects,true);             newItem->setSelected(swushSelects,true);             lastSwushPosition = newItem;             updateView();           }           else if (below && (below == lastSwushPosition))           {             for (; below != newItem; below = below->nextItem())               below->setSelected(swushSelects,true);             newItem->setSelected(swushSelects,true);             lastSwushPosition = newItem;             updateView();           }           contextMenuTimer.stop();         }         // emitting the missing signals from QIconView::contentsMouseMoveEvent();         if( newItem )           emit onItem( newItem );         else           emit onViewport();      }      else         KIconView::contentsMouseMoveEvent( e );}void KrBriefView::contentsMouseDoubleClickEvent ( QMouseEvent * e ){   e = transformMouseEvent ( e );   KIconView::contentsMouseDoubleClickEvent( e );}void KrBriefView::handleContextMenu( QIconViewItem * it, const QPoint & pos ) {   if ( !_focused )      op()->emitNeedFocus();   setFocus();   if ( !it )      return ;   if ( static_cast<KrBriefViewItem*>( it ) ->         name() == ".." )      return ;   int i = KrSelectionMode::getSelectionHandler()->showContextMenu();   contextMenuPoint = QPoint( pos.x(), pos.y() );   if (i < 0)

⌨️ 快捷键说明

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