diff options
Diffstat (limited to 'konqueror/listview/konq_listview.cpp')
-rw-r--r-- | konqueror/listview/konq_listview.cpp | 167 |
1 files changed, 113 insertions, 54 deletions
diff --git a/konqueror/listview/konq_listview.cpp b/konqueror/listview/konq_listview.cpp index f8307e84c..33424ca52 100644 --- a/konqueror/listview/konq_listview.cpp +++ b/konqueror/listview/konq_listview.cpp @@ -46,7 +46,9 @@ #include <sys/stat.h> #include <time.h> #include <unistd.h> -#include <kinstance.h> +#include <tdeinstance.h> + +#include <konq_sort_constants.h> KonqListViewFactory::KonqListViewFactory() { @@ -287,20 +289,20 @@ KonqListView::KonqListView( TQWidget *parentWidget, TQObject *parent, const char // Note: File Type is in fact the mimetype comment. We use UDS_FILE_TYPE but that's not what we show in fact :/ m_pListView->confColumns[10].setData(I18N_NOOP("File Type"),"Type",TDEIO::UDS_FILE_TYPE,m_paShowType); - connect( m_pListView, TQT_SIGNAL( selectionChanged() ), - m_extension, TQT_SLOT( updateActions() ) ); - connect( m_pListView, TQT_SIGNAL( selectionChanged() ), - this, TQT_SLOT( slotSelectionChanged() ) ); + connect( m_pListView, TQ_SIGNAL( selectionChanged() ), + m_extension, TQ_SLOT( updateActions() ) ); + connect( m_pListView, TQ_SIGNAL( selectionChanged() ), + this, TQ_SLOT( slotSelectionChanged() ) ); - connect( m_pListView, TQT_SIGNAL( currentChanged(TQListViewItem*) ), - m_extension, TQT_SLOT( updateActions() ) ); - connect(m_pListView->header(),TQT_SIGNAL(indexChange(int,int,int)),this,TQT_SLOT(headerDragged(int,int,int))); - connect(m_pListView->header(),TQT_SIGNAL(clicked(int)),this,TQT_SLOT(slotHeaderClicked(int))); - connect(m_pListView->header(),TQT_SIGNAL(sizeChange(int,int,int)),TQT_SLOT(slotHeaderSizeChanged())); + connect( m_pListView, TQ_SIGNAL( currentChanged(TQListViewItem*) ), + m_extension, TQ_SLOT( updateActions() ) ); + connect(m_pListView->header(),TQ_SIGNAL(indexChange(int,int,int)),this,TQ_SLOT(headerDragged(int,int,int))); + connect(m_pListView->header(),TQ_SIGNAL(clicked(int)),this,TQ_SLOT(slotHeaderClicked(int))); + connect(m_pListView->header(),TQ_SIGNAL(sizeChange(int,int,int)),TQ_SLOT(slotHeaderSizeChanged())); // signals from konqdirpart (for BC reasons) - connect( this, TQT_SIGNAL( findOpened( KonqDirPart * ) ), TQT_SLOT( slotKFindOpened() ) ); - connect( this, TQT_SIGNAL( findClosed( KonqDirPart * ) ), TQT_SLOT( slotKFindClosed() ) ); + connect( this, TQ_SIGNAL( findOpened( KonqDirPart * ) ), TQ_SLOT( slotKFindOpened() ) ); + connect( this, TQ_SIGNAL( findClosed( KonqDirPart * ) ), TQ_SLOT( slotKFindClosed() ) ); loadPlugins( this, this, instance() ); } @@ -391,7 +393,7 @@ void KonqListView::slotSelect() for (KonqBaseListViewWidget::iterator it = m_pListView->begin(); it != m_pListView->end(); it++ ) { if ((m_pListView->automaticSelection()) && (it->isSelected())) { - it->setSelected(FALSE); + it->setSelected(false); //the following line is to prevent that more than one item were selected //and now get deselected and automaticSelection() was true, this shouldn't happen //but who knows, aleXXX @@ -399,11 +401,11 @@ void KonqListView::slotSelect() } if ( it->isVisible() ) { if ( re.exactMatch( it->text(0) ) ) { - it->setSelected(TRUE); + it->setSelected(true); } } else { - it->setSelected(FALSE); + it->setSelected(false); } } m_pListView->blockSignals( false ); @@ -420,22 +422,22 @@ void KonqListView::slotUnselect() if ( !ok ) return; - TQRegExp re( pattern, TRUE, TRUE ); + TQRegExp re( pattern, true, true ); - m_pListView->blockSignals(TRUE); + m_pListView->blockSignals(true); for (KonqBaseListViewWidget::iterator it = m_pListView->begin(); it != m_pListView->end(); it++ ) { if ( it->isVisible() ) { if ( re.exactMatch( it->text(0) ) ) { - it->setSelected(FALSE); + it->setSelected(false); } } else { - it->setSelected(FALSE); + it->setSelected(false); } } - m_pListView->blockSignals(FALSE); + m_pListView->blockSignals(false); m_pListView->deactivateAutomaticSelection(); emit m_pListView->selectionChanged(); m_pListView->viewport()->update(); @@ -443,14 +445,14 @@ void KonqListView::slotUnselect() void KonqListView::slotSelectAll() { - m_pListView->selectAll(TRUE); + m_pListView->selectAll(true); m_pListView->deactivateAutomaticSelection(); emit m_pListView->selectionChanged(); } void KonqListView::slotUnselectAll() { - m_pListView->selectAll(FALSE); + m_pListView->selectAll(false); m_pListView->deactivateAutomaticSelection(); emit m_pListView->selectionChanged(); } @@ -461,7 +463,7 @@ void KonqListView::slotInvertSelection() if ((m_pListView->automaticSelection()) && (m_pListView->currentItem()!=0) && (m_pListView->currentItem()->isSelected())) - m_pListView->currentItem()->setSelected(FALSE); + m_pListView->currentItem()->setSelected(false); m_pListView->invertSelection(); m_pListView->deactivateAutomaticSelection(); @@ -561,7 +563,7 @@ void KonqListView::slotHeaderClicked(int sec) if (nameOfSortColumn!=m_pListView->sortedByColumn) { m_pListView->sortedByColumn=nameOfSortColumn; - m_pListView->setAscending(TRUE); + m_pListView->setAscending(true); } else { @@ -787,7 +789,7 @@ void KonqListView::headerDragged(int sec, int from, int to) kdDebug(1202)<<"section: "<<sec<<" fromIndex: "<<from<<" toIndex "<<to<<endl; //at this point the columns aren't moved yet, so I let the listview //rearrange the stuff and use a single shot timer - TQTimer::singleShot(200,this,TQT_SLOT(slotSaveAfterHeaderDrag())); + TQTimer::singleShot(200,this,TQ_SLOT(slotSaveAfterHeaderDrag())); } const KFileItem * KonqListView::currentItem() @@ -861,7 +863,7 @@ void KonqListView::slotHeaderSizeChanged() if ( !m_headerTimer ) { m_headerTimer = new TQTimer( this ); - connect( m_headerTimer, TQT_SIGNAL( timeout() ), this, TQT_SLOT( slotSaveColumnWidths() ) ); + connect( m_headerTimer, TQ_SIGNAL( timeout() ), this, TQ_SLOT( slotSaveColumnWidths() ) ); } else m_headerTimer->stop(); @@ -883,33 +885,33 @@ void KonqListView::slotKFindClosed() void KonqListView::setupActions() { - m_paShowTime=new TDEToggleAction(i18n("Show &Modification Time"), 0,this, TQT_SLOT(slotColumnToggled()), actionCollection(), "show_time" ); + m_paShowTime=new TDEToggleAction(i18n("Show &Modification Time"), 0,this, TQ_SLOT(slotColumnToggled()), actionCollection(), "show_time" ); m_paShowTime->setCheckedState(i18n("Hide &Modification Time")); - m_paShowType=new TDEToggleAction(i18n("Show &File Type"), 0, this, TQT_SLOT(slotColumnToggled()),actionCollection(), "show_type" ); + m_paShowType=new TDEToggleAction(i18n("Show &File Type"), 0, this, TQ_SLOT(slotColumnToggled()),actionCollection(), "show_type" ); m_paShowType->setCheckedState(i18n("Hide &File Type")); - m_paShowMimeType=new TDEToggleAction(i18n("Show MimeType"), 0, this, TQT_SLOT(slotColumnToggled()),actionCollection(), "show_mimetype" ); + m_paShowMimeType=new TDEToggleAction(i18n("Show MimeType"), 0, this, TQ_SLOT(slotColumnToggled()),actionCollection(), "show_mimetype" ); m_paShowMimeType->setCheckedState(i18n("Hide MimeType")); - m_paShowAccessTime=new TDEToggleAction(i18n("Show &Access Time"), 0, this, TQT_SLOT(slotColumnToggled()),actionCollection(), "show_access_time" ); + m_paShowAccessTime=new TDEToggleAction(i18n("Show &Access Time"), 0, this, TQ_SLOT(slotColumnToggled()),actionCollection(), "show_access_time" ); m_paShowAccessTime->setCheckedState(i18n("Hide &Access Time")); - m_paShowCreateTime=new TDEToggleAction(i18n("Show &Creation Time"), 0, this, TQT_SLOT(slotColumnToggled()),actionCollection(), "show_creation_time" ); + m_paShowCreateTime=new TDEToggleAction(i18n("Show &Creation Time"), 0, this, TQ_SLOT(slotColumnToggled()),actionCollection(), "show_creation_time" ); m_paShowCreateTime->setCheckedState(i18n("Hide &Creation Time")); - m_paShowLinkDest=new TDEToggleAction(i18n("Show &Link Destination"), 0, this, TQT_SLOT(slotColumnToggled()),actionCollection(), "show_link_dest" ); + m_paShowLinkDest=new TDEToggleAction(i18n("Show &Link Destination"), 0, this, TQ_SLOT(slotColumnToggled()),actionCollection(), "show_link_dest" ); m_paShowLinkDest->setCheckedState(i18n("Hide &Link Destination")); - m_paShowSize=new TDEToggleAction(i18n("Show Filesize"), 0, this, TQT_SLOT(slotColumnToggled()),actionCollection(), "show_size" ); + m_paShowSize=new TDEToggleAction(i18n("Show Filesize"), 0, this, TQ_SLOT(slotColumnToggled()),actionCollection(), "show_size" ); m_paShowSize->setCheckedState(i18n("Hide Filesize")); - m_paShowOwner=new TDEToggleAction(i18n("Show Owner"), 0, this, TQT_SLOT(slotColumnToggled()),actionCollection(), "show_owner" ); + m_paShowOwner=new TDEToggleAction(i18n("Show Owner"), 0, this, TQ_SLOT(slotColumnToggled()),actionCollection(), "show_owner" ); m_paShowOwner->setCheckedState(i18n("Hide Owner")); - m_paShowGroup=new TDEToggleAction(i18n("Show Group"), 0, this, TQT_SLOT(slotColumnToggled()),actionCollection(), "show_group" ); + m_paShowGroup=new TDEToggleAction(i18n("Show Group"), 0, this, TQ_SLOT(slotColumnToggled()),actionCollection(), "show_group" ); m_paShowGroup->setCheckedState(i18n("Hide Group")); - m_paShowPermissions=new TDEToggleAction(i18n("Show Permissions"), 0, this, TQT_SLOT(slotColumnToggled()),actionCollection(), "show_permissions" ); + m_paShowPermissions=new TDEToggleAction(i18n("Show Permissions"), 0, this, TQ_SLOT(slotColumnToggled()),actionCollection(), "show_permissions" ); m_paShowPermissions->setCheckedState(i18n("Hide Permissions")); - m_paShowURL=new TDEToggleAction(i18n("Show URL"), 0, this, TQT_SLOT(slotColumnToggled()),actionCollection(), "show_url" ); + m_paShowURL=new TDEToggleAction(i18n("Show URL"), 0, this, TQ_SLOT(slotColumnToggled()),actionCollection(), "show_url" ); - m_paSelect = new TDEAction( i18n( "Se&lect..." ), CTRL+Key_Plus, this, TQT_SLOT( slotSelect() ), actionCollection(), "select" ); - m_paUnselect = new TDEAction( i18n( "Unselect..." ), CTRL+Key_Minus, this, TQT_SLOT( slotUnselect() ), actionCollection(), "unselect" ); - m_paSelectAll = KStdAction::selectAll( this, TQT_SLOT( slotSelectAll() ), actionCollection(), "selectall" ); - m_paUnselectAll = new TDEAction( i18n( "Unselect All" ), CTRL+Key_U, this, TQT_SLOT( slotUnselectAll() ), actionCollection(), "unselectall" ); - m_paInvertSelection = new TDEAction( i18n( "&Invert Selection" ), CTRL+Key_Asterisk, this, TQT_SLOT( slotInvertSelection() ), actionCollection(), "invertselection" ); + m_paSelect = new TDEAction( i18n( "Se&lect..." ), CTRL+Key_Plus, this, TQ_SLOT( slotSelect() ), actionCollection(), "select" ); + m_paUnselect = new TDEAction( i18n( "Unselect..." ), CTRL+Key_Minus, this, TQ_SLOT( slotUnselect() ), actionCollection(), "unselect" ); + m_paSelectAll = KStdAction::selectAll( this, TQ_SLOT( slotSelectAll() ), actionCollection(), "selectall" ); + m_paUnselectAll = new TDEAction( i18n( "Unselect All" ), CTRL+Key_U, this, TQ_SLOT( slotUnselectAll() ), actionCollection(), "unselectall" ); + m_paInvertSelection = new TDEAction( i18n( "&Invert Selection" ), CTRL+Key_Asterisk, this, TQ_SLOT( slotInvertSelection() ), actionCollection(), "invertselection" ); // These 2 actions are 'fake' actions. They are defined so that the keyboard shortcuts // can be set from the 'Configure Shortcuts..." dialog. @@ -927,21 +929,52 @@ void KonqListView::setupActions() m_paRenameMovePrev->setToolTip( i18n("Complete rename operation and move the previous item")); m_paRenameMovePrev->setEnabled(false); - m_paShowDot = new TDEToggleAction( i18n( "Show &Hidden Files" ), 0, this, TQT_SLOT( slotShowDot() ), actionCollection(), "show_dot" ); + m_paShowDot = new TDEToggleAction( i18n( "Show &Hidden Files" ), 0, this, TQ_SLOT( slotShowDot() ), actionCollection(), "show_dot" ); // m_paShowDot->setCheckedState(i18n("Hide &Hidden Files")); - m_paCaseInsensitive = new TDEToggleAction(i18n("Case Insensitive Sort"), 0, this, TQT_SLOT(slotCaseInsensitive()),actionCollection(), "sort_caseinsensitive" ); + + m_paCaseInsensitive = new TDEToggleAction(i18n("Case Insensitive Sort"), 0, this, TQ_SLOT(slotCaseInsensitive()),actionCollection(), "sort_caseinsensitive" ); m_paSortAlternate = new TDEAction( i18n( "&Alternate Sort Order" ), CTRL+Key_S, this, - TQT_SLOT( slotSortAlternate() ), actionCollection(), "alternate_sort_order"); + TQ_SLOT( slotSortAlternate() ), actionCollection(), "alternate_sort_order"); + m_paSortAlternate->setToolTip( i18n( "Sort by PREVIOUS sort column" ) ); m_paSortReverse = new TDEAction( i18n( "&Reverse Sort Order" ), CTRL+Key_R, this, - TQT_SLOT( slotSortReverse() ), actionCollection(), "reverse_sort_order"); - - m_paDisplayDirectoriesFirst = new TDEToggleAction( i18n("Group &Directories First"), 0, this, - TQT_SLOT(slotToggleDisplayDirectoriesFirst()), actionCollection(), "group_directories_first"); - m_paDisplayDirectoriesFirst->setChecked(m_pProps->isHiddenFirst()); - - m_paDisplayHiddenFirst = new TDEToggleAction( i18n("Group &Hidden First"), 0, this, - TQT_SLOT(slotToggleDisplayHiddenFirst()), actionCollection(), "group_hidden_first"); + TQ_SLOT( slotSortReverse() ), actionCollection(), "reverse_sort_order"); + m_paSortReverse->setToolTip( i18n( "Reverse sort order of current sort column" ) ); + + /* + Build View->Sort submenu interface to properties + SortOrder, SortDirsFirst & SortHiddenFirst + */ + TextSortOrder initialOrder = m_pProps->getSortOrder(); + + m_paOrderUnicodeUnmodified = new TDEToggleAction( i18n( "&Unicode based" ), ALT+Key_1, this, + TQ_SLOT( slotOrderUnicodeUnmodified() ), actionCollection(), "order_unicode_based" ); + m_paOrderUnicodeUnmodified->setToolTip( i18n( "Strict numeric Unicode based order" ) ); + m_paOrderUnicodeUnmodified->setChecked( initialOrder == UNICODE_UNMODIFIED ); + + m_paOrderUnicodeCaseInsensitive = new TDEToggleAction( i18n( "Unicode based, &case insensitive" ), ALT+Key_2, this, + TQ_SLOT( slotOrderUnicodeCaseInsensitive() ), actionCollection(), "order_unicode_based_case_insensitive" ); + m_paOrderUnicodeCaseInsensitive->setToolTip( i18n( "Unicode based order but with lower/upper case ASCII letters adjacent" ) ); + m_paOrderUnicodeCaseInsensitive->setChecked(initialOrder == UNICODE_CASEINSENSITIVE); + + m_paOrderLocale = new TDEToggleAction( i18n( "&Locale based" ), ALT+Key_3, this, + TQ_SLOT( slotOrderLocale() ), actionCollection(), "order_locale_based" ); + m_paOrderLocale->setToolTip( i18n( "Locale based order, usually \"friendly\"" ) ); + m_paOrderLocale->setChecked(initialOrder == LOCALE_UNMODIFIED); + + // Convert above 3 checkbox menu items into single 3-way radio button menu item + m_paOrderUnicodeUnmodified->setExclusiveGroup( "sortOrder" ); + m_paOrderUnicodeCaseInsensitive->setExclusiveGroup( "sortOrder" ); + m_paOrderLocale->setExclusiveGroup( "sortOrder" ); + + m_paDisplayDirectoriesFirst = new TDEToggleAction( i18n("Group &Directories First"), CTRL+SHIFT+Key_F, this, + TQ_SLOT(slotToggleDisplayDirectoriesFirst()), actionCollection(), "group_directories_first"); + m_paDisplayDirectoriesFirst->setToolTip( i18n( "Always display directories before non-directories" ) ); + m_paDisplayDirectoriesFirst->setChecked(m_pProps->isDirsFirst()); + + m_paDisplayHiddenFirst = new TDEToggleAction( i18n("Group &Hidden First"), CTRL+SHIFT+Key_H, this, + TQ_SLOT(slotToggleDisplayHiddenFirst()), actionCollection(), "group_hidden_first"); + m_paDisplayHiddenFirst->setToolTip( i18n( "Always display hidden files before non-hidden files" ) ); m_paDisplayHiddenFirst->setChecked(m_pProps->isHiddenFirst()); newIconSize( TDEIcon::SizeSmall /* default size */ ); @@ -955,6 +988,32 @@ void KonqListView::slotSelectionChanged() // m_paInvertSelection->setEnabled( itemSelected ); } -#include "konq_listview.moc" +void KonqListView::slotOrderUnicodeUnmodified() +{ + TextSortOrder sortOrder = UNICODE_UNMODIFIED ; + kdDebug(1202) << "Setting name order = " << sortOrder << endl; + m_pProps->setSortOrder( sortOrder ); + m_pListView->m_sortOrder = sortOrder; + m_pListView->sort(); +} +void KonqListView::slotOrderUnicodeCaseInsensitive() +{ + TextSortOrder sortOrder = UNICODE_CASEINSENSITIVE; + kdDebug(1202) << "Setting name order = " << sortOrder << endl; + m_pProps->setSortOrder( sortOrder ); + m_pListView->m_sortOrder = sortOrder; + m_pListView->sort(); +} + +void KonqListView::slotOrderLocale() +{ + TextSortOrder sortOrder = LOCALE_UNMODIFIED; + kdDebug(1202) << "Setting name order = " << sortOrder << endl; + m_pProps->setSortOrder( sortOrder ); + m_pListView->m_sortOrder = sortOrder; + m_pListView->sort(); +} + +#include "konq_listview.moc" |