📄 krbriefview.cpp
字号:
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 + -