summaryrefslogtreecommitdiffstats
path: root/konqueror/listview
diff options
context:
space:
mode:
Diffstat (limited to 'konqueror/listview')
-rw-r--r--konqueror/listview/CMakeLists.txt15
-rw-r--r--konqueror/listview/Makefile.am10
-rw-r--r--konqueror/listview/konq_detailedlistview.desktop78
-rw-r--r--konqueror/listview/konq_detailedlistview.rc15
-rw-r--r--konqueror/listview/konq_infolistview.desktop76
-rw-r--r--konqueror/listview/konq_infolistview.rc15
-rw-r--r--konqueror/listview/konq_infolistviewitem.cpp (renamed from konqueror/listview/konq_infolistviewitem.cc)2
-rw-r--r--konqueror/listview/konq_infolistviewwidget.cpp (renamed from konqueror/listview/konq_infolistviewwidget.cc)28
-rw-r--r--konqueror/listview/konq_infolistviewwidget.h2
-rw-r--r--konqueror/listview/konq_listview.cpp (renamed from konqueror/listview/konq_listview.cc)354
-rw-r--r--konqueror/listview/konq_listview.h37
-rw-r--r--konqueror/listview/konq_listview.kcfg32
-rw-r--r--konqueror/listview/konq_listviewitems.cpp (renamed from konqueror/listview/konq_listviewitems.cc)34
-rw-r--r--konqueror/listview/konq_listviewwidget.cpp (renamed from konqueror/listview/konq_listviewwidget.cc)183
-rw-r--r--konqueror/listview/konq_listviewwidget.h5
-rw-r--r--konqueror/listview/konq_textview.desktop79
-rw-r--r--konqueror/listview/konq_textview.rc14
-rw-r--r--konqueror/listview/konq_textviewitem.cpp (renamed from konqueror/listview/konq_textviewitem.cc)4
-rw-r--r--konqueror/listview/konq_textviewwidget.cpp (renamed from konqueror/listview/konq_textviewwidget.cc)20
-rw-r--r--konqueror/listview/konq_textviewwidget.h2
-rw-r--r--konqueror/listview/konq_treeview.desktop78
-rw-r--r--konqueror/listview/konq_treeview.rc15
-rw-r--r--konqueror/listview/konq_treeviewitem.cpp (renamed from konqueror/listview/konq_treeviewitem.cc)0
-rw-r--r--konqueror/listview/konq_treeviewwidget.cpp (renamed from konqueror/listview/konq_treeviewwidget.cc)12
-rw-r--r--konqueror/listview/konq_treeviewwidget.h2
25 files changed, 600 insertions, 512 deletions
diff --git a/konqueror/listview/CMakeLists.txt b/konqueror/listview/CMakeLists.txt
index 02ab59564..01fc5f0ec 100644
--- a/konqueror/listview/CMakeLists.txt
+++ b/konqueror/listview/CMakeLists.txt
@@ -24,10 +24,13 @@ link_directories(
##### other data ################################
-install( FILES
+tde_create_translated_desktop(
+ SOURCE
konq_treeview.desktop konq_detailedlistview.desktop
konq_textview.desktop konq_infolistview.desktop
- DESTINATION ${SERVICES_INSTALL_DIR} )
+ DESTINATION ${SERVICES_INSTALL_DIR}
+ PO_DIR konqueror-desktops
+)
install( FILES
konq_treeview.rc konq_detailedlistview.rc
@@ -42,10 +45,10 @@ install( FILES konq_listview.kcfg DESTINATION ${KCFG_INSTALL_DIR} )
set( target konq_listview )
set( ${target}_SRCS
- konq_listview.cc konq_listviewwidget.cc konq_listviewitems.cc
- konq_treeviewwidget.cc konq_treeviewitem.cc konq_textviewwidget.cc
- konq_textviewitem.cc konq_infolistviewwidget.cc
- konq_infolistviewitem.cc konq_listviewsettings.kcfgc
+ konq_listview.cpp konq_listviewwidget.cpp konq_listviewitems.cpp
+ konq_treeviewwidget.cpp konq_treeviewitem.cpp konq_textviewwidget.cpp
+ konq_textviewitem.cpp konq_infolistviewwidget.cpp
+ konq_infolistviewitem.cpp konq_listviewsettings.kcfgc
)
tde_add_kpart( ${target} AUTOMOC
diff --git a/konqueror/listview/Makefile.am b/konqueror/listview/Makefile.am
index 91dd33a10..c190de7df 100644
--- a/konqueror/listview/Makefile.am
+++ b/konqueror/listview/Makefile.am
@@ -5,11 +5,11 @@ kde_module_LTLIBRARIES = konq_listview.la
METASOURCES = AUTO
-konq_listview_la_SOURCES = konq_listview.cc \
- konq_listviewwidget.cc konq_listviewitems.cc \
- konq_treeviewwidget.cc konq_treeviewitem.cc \
- konq_textviewwidget.cc konq_textviewitem.cc \
- konq_infolistviewwidget.cc konq_infolistviewitem.cc \
+konq_listview_la_SOURCES = konq_listview.cpp \
+ konq_listviewwidget.cpp konq_listviewitems.cpp \
+ konq_treeviewwidget.cpp konq_treeviewitem.cpp \
+ konq_textviewwidget.cpp konq_textviewitem.cpp \
+ konq_infolistviewwidget.cpp konq_infolistviewitem.cpp \
konq_listviewsettings.kcfgc
konq_listview_la_LDFLAGS = $(all_libraries) $(KDE_PLUGIN) -module
diff --git a/konqueror/listview/konq_detailedlistview.desktop b/konqueror/listview/konq_detailedlistview.desktop
index 2e16d061f..7e03a09fa 100644
--- a/konqueror/listview/konq_detailedlistview.desktop
+++ b/konqueror/listview/konq_detailedlistview.desktop
@@ -1,84 +1,6 @@
[Desktop Entry]
Type=Service
Name=Detailed List View
-Name[af]=Gedetaileerde Lys Besigtig
-Name[ar]=عرض مفصل لوحي
-Name[az]=Ətraflı Siyahı Görünüşü
-Name[be]=Падрабязны спіс
-Name[bg]=Подробен преглед
-Name[bn]=বিস্তারিত তালিকা ভিউ
-Name[br]=Gwell roll gant munudoù
-Name[bs]=Pogled detaljne liste
-Name[ca]=Vista de llista detallada
-Name[cs]=Detailní pohled
-Name[csb]=Wëzdrzatk z akùratną lëstą
-Name[cy]=Golwg Rhestr Fanwl
-Name[da]=Detaljeret listevisning
-Name[de]=Detaillierte Ordneransicht
-Name[el]=Προβολή λεπτομερούς λίστας
-Name[eo]=Detala listrigardo
-Name[es]=Vista de lista detallada
-Name[et]=Vaade detailse nimekirjana
-Name[eu]=Xehetasundun zerrenda ikuspegia
-Name[fa]=نمای فهرست جزئیات
-Name[fi]=Yksityiskohtainen listanäkymä
-Name[fr]=Liste détaillée
-Name[fy]=detaillearre werjefte
-Name[ga]=Amharc Liosta Mion
-Name[gl]=Vista en Lista Detallada
-Name[he]=תצוגת פרטים
-Name[hi]=विस्तृत सूची दृश्य
-Name[hr]=Detaljan prikaz
-Name[hu]=Lista (részletes)
-Name[id]=Tampilan list secara detail
-Name[is]=Ýtarleg sýn, listi
-Name[it]=Vista a lista dettagliata
-Name[ja]=詳細なリストビュー
-Name[ka]=დაწვრილებითი დიის ხილვა
-Name[kk]=Егжей-тегжейлі тізім
-Name[km]=ទិដ្ឋភាព​បញ្ជី​លម្អិត
-Name[lo]=ມຸມມອງແບບລາບລະອງດ
-Name[lt]=Rodyti detalų sąrašą
-Name[lv]=Detalizēta saraksta skatījums
-Name[mk]=Преглед со детална листа
-Name[mn]=Нарийвчилсан жагсаалтаар харах
-Name[ms]=Paparan Senarai Terperinci
-Name[mt]=Uri Lista Dettaljata
-Name[nb]=Detaljert listevisning
-Name[nds]=Detailleerte List
-Name[ne]=विस्तृत सूची दृश्य
-Name[nl]=Gedetailleerde weergave
-Name[nn]=Detaljert listevising
-Name[nso]=Pono yeo e Tseneletsego ya Palo
-Name[pa]=ਵੇਰਵਾ ਸੂਚੀ ਝਲਕ
-Name[pl]=Widok ze szczegółową listą
-Name[pt]=Vista em Lista Detalhada
-Name[pt_BR]=Visão de Lista Detalhada
-Name[ro]=Vizualizare listă detaliată
-Name[ru]=В виде подробного списка
-Name[rw]=Igaragaza ry'Urutonde Rusesenguye
-Name[se]=Bienalaš listočájeheapmi
-Name[sk]=Detailný zoznam
-Name[sl]=Pogled podrobnega seznama
-Name[sr]=Детаљан приказ (листа)
-Name[sr@Latn]=Detaljan prikaz (lista)
-Name[sv]=Detaljerad listvy
-Name[ta]=விவரமான பட்டியல் காட்சி
-Name[te]=వివరణాత్మక జాబితా వీక్షణం
-Name[tg]=Ба намуди саҳифаи ҷузъиёт
-Name[th]=มุมมองแบบรายละเอียด
-Name[tr]=Ayrıntılı Liste Görünümü
-Name[tt]=Täfsille Tezmädä Küreneş
-Name[uk]=Детальний вигляд списком
-Name[uz]=Batafsil roʻyxat koʻrinishida
-Name[uz@cyrillic]=Батафсил рўйхат кўринишида
-Name[ven]=Mbonalelo ya mutevhe wo bviselwaho khagala
-Name[vi]=Xem kiểu Danh sách Đầy đủ
-Name[wa]=Vey en ene sipepieuse djivêye
-Name[xh]=Imboniselo Yoluhlu Oluneenkcukacha
-Name[zh_CN]=细节列表视图
-Name[zh_TW]=詳細的清單檢視
-Name[zu]=Umbukiso Woluhlu Oluneminingwane
MimeType=inode/directory
X-TDE-ServiceTypes=KParts/ReadOnlyPart,Browser/View
X-TDE-Library=konq_listview
diff --git a/konqueror/listview/konq_detailedlistview.rc b/konqueror/listview/konq_detailedlistview.rc
index 593e7f027..06c9bc318 100644
--- a/konqueror/listview/konq_detailedlistview.rc
+++ b/konqueror/listview/konq_detailedlistview.rc
@@ -1,5 +1,5 @@
<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
-<kpartgui name="KonqDetailedListView" version="11">
+<kpartgui name="KonqDetailedListView" version="13">
<MenuBar>
<Menu name="edit"><text>&amp;Edit</text>
<Menu name="selection"><text>Selection</text>
@@ -24,8 +24,17 @@
</Menu>
<Separator/>
<Action name="show_dot"/>
- <Action name="sort_caseinsensitive"/>
- <!--<Action name="sort_directoriesfirst" /> TODO -->
+ <Menu name="sort"><text>&amp;Sort</text>
+ <Action name="order_unicode_based"/>
+ <Action name="order_unicode_based_case_insensitive"/>
+ <Action name="order_locale_based"/>
+ <Separator/>
+ <Action name="group_directories_first"/>
+ <Action name="group_hidden_first"/>
+ <Separator/>
+ <Action name="alternate_sort_order"/>
+ <Action name="reverse_sort_order"/>
+ </Menu>
<Menu name="listview_show"><text>Show Details</text>
<TearOffHandle />
<Action name="show_size"/>
diff --git a/konqueror/listview/konq_infolistview.desktop b/konqueror/listview/konq_infolistview.desktop
index b076af7db..8882da415 100644
--- a/konqueror/listview/konq_infolistview.desktop
+++ b/konqueror/listview/konq_infolistview.desktop
@@ -1,82 +1,6 @@
[Desktop Entry]
Type=Service
Name=Info List View
-Name[af]=Inligting Lys Besigtig
-Name[ar]=عرض معلومات لوحي
-Name[az]=Məlumat Siyahı Görünüşü
-Name[be]=Інфармацыйны спіс
-Name[bg]=Информационен преглед
-Name[bn]=তথ্য তালিকা ভিউ
-Name[bs]=Pogled info liste
-Name[ca]=Vista de llista informativa
-Name[cs]=Pohled s informačním seznamem
-Name[csb]=Wëzdrzatk wëdowiédny lëstë
-Name[cy]=Golwg Rhestr Gwybodaeth
-Name[da]=Info-listevisning
-Name[de]=Infolistenansicht
-Name[el]=Προβολή λίστας πληροφοριών
-Name[eo]=Inforigardo
-Name[es]=Vista de lista de información
-Name[et]=Infonimekirja vaade
-Name[eu]=Info zerrenda ikuspegia
-Name[fa]=نمای فهرست اطلاعات
-Name[fi]=Infolistanäkymä
-Name[fr]=Affichage de liste info
-Name[fy]=Ynfolistwerjefte
-Name[ga]=Amharc Liosta Eolais
-Name[gl]=Vista en Lista Informativa
-Name[he]=תצוגת רשימה
-Name[hi]=जानकारी सूची दृश्य
-Name[hr]=Prikaz info-popisa
-Name[hu]=Lista (rövid)
-Name[is]=Upplýsingalisti
-Name[it]=Vista informazioni
-Name[ja]=情報リストビュー
-Name[ka]=სია აღწერით
-Name[kk]=Мәліметті тізім
-Name[km]=ទិដ្ឋភាព​ព័ត៌មាន​លម្អិត
-Name[lo]=ມຸມມອງແບບໄອຄອນ
-Name[lt]=Rodyti info sąrašą
-Name[lv]=Info saraksta skatījums
-Name[mk]=Преглед со инфо. листа
-Name[mn]=Мэд. жагсаалтаар харах
-Name[ms]=Paparan Senarai Maklumat
-Name[mt]=Lista info.
-Name[nb]=Infolistevisning
-Name[nds]=Infolistansicht
-Name[ne]=सूचना सूची दृश्य
-Name[nl]=Infolijstweergave
-Name[nn]=Infolistevising
-Name[nso]=Pono ya Palo ya Tshedimoso
-Name[pa]=ਜਾਣਕਾਰੀ ਸੂਚੀ ਝਲਕ
-Name[pl]=Widok listy informacyjnej
-Name[pt]=Vista em Lista com Informações
-Name[pt_BR]=Visão de Lista de Informações
-Name[ro]=Vizualizare listă de informații
-Name[ru]=В виде списка с описанием
-Name[rw]=Igaragaza Urutonde Amakuru
-Name[se]=Diehtolistočájeheapmi
-Name[sk]=Zoznam s informáciami
-Name[sl]=Pogled seznama z informacijami
-Name[sr]=Приказ инфо листе
-Name[sr@Latn]=Prikaz info liste
-Name[sv]=Info-listvy
-Name[ta]=தகவல் பட்டியல் காட்சி
-Name[te]=సమాచార జాబితా వీక్షణం
-Name[tg]=Ба намуди саҳифаи иттилоот
-Name[th]=มุมมองแบบรายการข้อมูล
-Name[tr]=Bilgi Listesi Görünümü
-Name[tt]=Qısqa Tezmädäy Küreneş
-Name[uk]=Вигляд з інформацією про зміст
-Name[uz]=Maʼlumotli roʻyxat koʻrinishida
-Name[uz@cyrillic]=Маълумотли рўйхат кўринишида
-Name[ven]=Mbonalelo ya mutevhe wa mafhungo
-Name[vi]=Xem kiểu Danh sách Thông tin
-Name[wa]=Vey les informåcions en ene djivêye
-Name[xh]=Imboniselo Yoluhlu Lolwazi
-Name[zh_CN]=信息列表视图
-Name[zh_TW]=資訊清單檢視
-Name[zu]=Umbukiso wohlu lolwazi
MimeType=inode/directory
X-TDE-ServiceTypes=KParts/ReadOnlyPart,Browser/View
X-TDE-Library=konq_listview
diff --git a/konqueror/listview/konq_infolistview.rc b/konqueror/listview/konq_infolistview.rc
index 280b2d0ce..60f511b1f 100644
--- a/konqueror/listview/konq_infolistview.rc
+++ b/konqueror/listview/konq_infolistview.rc
@@ -1,5 +1,5 @@
<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
-<kpartgui name="KonqInfoListView" version="12">
+<kpartgui name="KonqInfoListView" version="14">
<MenuBar>
<Menu name="edit"><text>&amp;Edit</text>
<Menu name="selection"><text>Selection</text>
@@ -24,8 +24,17 @@
</Menu>
<Separator/>
<Action name="show_dot"/>
- <Action name="sort_caseinsensitive"/>
- <!--<Action name="sort_directoriesfirst" /> TODO -->
+ <Menu name="sort"><text>&amp;Sort</text>
+ <Action name="order_unicode_based"/>
+ <Action name="order_unicode_based_case_insensitive"/>
+ <Action name="order_locale_based"/>
+ <Separator/>
+ <Action name="group_directories_first"/>
+ <Action name="group_hidden_first"/>
+ <Separator/>
+ <Action name="alternate_sort_order"/>
+ <Action name="reverse_sort_order"/>
+ </Menu>
<Action name="view_as"/>
<Separator/>
<Action name="bgsettings"/>
diff --git a/konqueror/listview/konq_infolistviewitem.cc b/konqueror/listview/konq_infolistviewitem.cpp
index 18efb3f8f..f945333b8 100644
--- a/konqueror/listview/konq_infolistviewitem.cc
+++ b/konqueror/listview/konq_infolistviewitem.cpp
@@ -218,7 +218,7 @@ void KonqInfoListViewItem::paintCell( TQPainter *_painter, const TQColorGroup &
cg.setColor( TQColorGroup::Text, m_pListViewWidget->itemColor() );
TDEListView *lv = static_cast< TDEListView* >( listView() );
- const TQPixmap *pm = TQT_TQPIXMAP_CONST(lv->viewport()->paletteBackgroundPixmap());
+ const TQPixmap *pm = lv->viewport()->paletteBackgroundPixmap();
if ( _column == 0 && isSelected() && !lv->allColumnsShowFocus() )
{
int newWidth = width( lv->fontMetrics(), lv, _column );
diff --git a/konqueror/listview/konq_infolistviewwidget.cc b/konqueror/listview/konq_infolistviewwidget.cpp
index e835f1cb3..8ec62c79a 100644
--- a/konqueror/listview/konq_infolistviewwidget.cc
+++ b/konqueror/listview/konq_infolistviewwidget.cpp
@@ -37,8 +37,8 @@ KonqInfoListViewWidget::KonqInfoListViewWidget( KonqListView* parent,
{
m_metaInfoJob = 0;
- m_mtSelector = new TDESelectAction(i18n("View &As"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotSelectMimeType()),
+ m_mtSelector = new TDESelectAction(i18n("View &As"), 0, this,
+ TQ_SLOT(slotSelectMimeType()),
parent->actionCollection(), "view_as" );
kdDebug(1203) << "created info list view\n";
@@ -237,10 +237,10 @@ void KonqInfoListViewWidget::slotNewItems( const KFileItemList& list)
else
{
m_metaInfoJob = TDEIO::fileMetaInfo(list);
- connect( m_metaInfoJob, TQT_SIGNAL( gotMetaInfo( const KFileItem*)),
- this, TQT_SLOT( slotMetaInfo( const KFileItem*)));
- connect( m_metaInfoJob, TQT_SIGNAL( result( TDEIO::Job*)),
- this, TQT_SLOT( slotMetaInfoResult()));
+ connect( m_metaInfoJob, TQ_SIGNAL( gotMetaInfo( const KFileItem*)),
+ this, TQ_SLOT( slotMetaInfo( const KFileItem*)));
+ connect( m_metaInfoJob, TQ_SIGNAL( result( TDEIO::Job*)),
+ this, TQ_SLOT( slotMetaInfoResult()));
}
}
@@ -257,10 +257,10 @@ void KonqInfoListViewWidget::slotRefreshItems( const KFileItemList& list)
else
{
m_metaInfoJob = TDEIO::fileMetaInfo(list);
- connect( m_metaInfoJob, TQT_SIGNAL( gotMetaInfo( const KFileItem*)),
- this, TQT_SLOT( slotMetaInfo( const KFileItem*)));
- connect( m_metaInfoJob, TQT_SIGNAL( result( TDEIO::Job*)),
- this, TQT_SLOT( slotMetaInfoResult()));
+ connect( m_metaInfoJob, TQ_SIGNAL( gotMetaInfo( const KFileItem*)),
+ this, TQ_SLOT( slotMetaInfo( const KFileItem*)));
+ connect( m_metaInfoJob, TQ_SIGNAL( result( TDEIO::Job*)),
+ this, TQ_SLOT( slotMetaInfoResult()));
}
KonqBaseListViewWidget::slotRefreshItems(list);
}
@@ -313,10 +313,10 @@ void KonqInfoListViewWidget::slotMetaInfoResult()
else
{
m_metaInfoJob = TDEIO::fileMetaInfo(m_metaInfoTodo);
- connect( m_metaInfoJob, TQT_SIGNAL( gotMetaInfo( const KFileItem*)),
- this, TQT_SLOT( slotMetaInfo( const KFileItem*)));
- connect( m_metaInfoJob, TQT_SIGNAL( result( TDEIO::Job*)),
- this, TQT_SLOT( slotMetaInfoResult()));
+ connect( m_metaInfoJob, TQ_SIGNAL( gotMetaInfo( const KFileItem*)),
+ this, TQ_SLOT( slotMetaInfo( const KFileItem*)));
+ connect( m_metaInfoJob, TQ_SIGNAL( result( TDEIO::Job*)),
+ this, TQ_SLOT( slotMetaInfoResult()));
m_metaInfoTodo.clear();
}
}
diff --git a/konqueror/listview/konq_infolistviewwidget.h b/konqueror/listview/konq_infolistviewwidget.h
index 258a20090..07cede196 100644
--- a/konqueror/listview/konq_infolistviewwidget.h
+++ b/konqueror/listview/konq_infolistviewwidget.h
@@ -35,7 +35,7 @@ class TDESelectAction;
class KonqInfoListViewWidget : public KonqBaseListViewWidget
{
// friend class KonqTextViewItem;
- Q_OBJECT
+ TQ_OBJECT
public:
KonqInfoListViewWidget( KonqListView *parent, TQWidget *parentWidget );
~KonqInfoListViewWidget();
diff --git a/konqueror/listview/konq_listview.cc b/konqueror/listview/konq_listview.cpp
index 67da49c6d..6a0d58973 100644
--- a/konqueror/listview/konq_listview.cc
+++ b/konqueror/listview/konq_listview.cpp
@@ -48,6 +48,8 @@
#include <unistd.h>
#include <kinstance.h>
+#include <konq_sort_constants.h>
+
KonqListViewFactory::KonqListViewFactory()
{
s_instance = 0;
@@ -268,6 +270,8 @@ KonqListView::KonqListView( TQWidget *parentWidget, TQObject *parent, const char
m_mimeTypeResolver = new KMimeTypeResolver<KonqBaseListViewItem,KonqListView>(this);
setXMLFile( xmlFile );
+ m_sortColumnIndexPrimary = 0;
+ m_sortColumnIndexAlternate = 1;
setupActions();
@@ -285,21 +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, TQ_SIGNAL( selectionChanged() ),
+ m_extension, TQ_SLOT( updateActions() ) );
+ connect( m_pListView, TQ_SIGNAL( selectionChanged() ),
+ this, TQ_SLOT( slotSelectionChanged() ) );
- connect( m_pListView, TQT_SIGNAL( selectionChanged() ),
- m_extension, TQT_SLOT( updateActions() ) );
- connect( m_pListView, TQT_SIGNAL( selectionChanged() ),
- this, TQT_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() );
}
@@ -538,6 +541,9 @@ void KonqListView::slotColumnToggled()
// Update column sizes
slotHeaderSizeChanged();
+
+ // Columns may have been rearranged, so do this to be safe:
+ resetSortConfig();
}
void KonqListView::slotHeaderClicked(int sec)
@@ -560,21 +566,230 @@ void KonqListView::slotHeaderClicked(int sec)
m_pListView->setAscending(TRUE);
}
else
+ {
m_pListView->setAscending(!m_pListView->ascending());
+ }
+ checkSortConfig() ;
KonqListViewSettings config( m_pListView->url().protocol() );
config.readConfig();
+
+ if (sec == m_sortColumnIndexPrimary) {
+ kdDebug(1202)<<"Changing sort order on primary sort column"<<endl;
+ m_sortColumnOrderPrimary = m_pListView->ascending();
+ config.setPrimarySortOrder(m_pListView->ascending());
+ }
+ else if (sec == m_sortColumnIndexAlternate) {
+ kdDebug(1202)<<"Changing sort order on alternate sort column"<<endl;
+ m_sortColumnOrderAlternate = m_pListView->ascending();
+ config.setAlternateSortOrder(m_pListView->ascending());
+ }
+ else if ( toggleColumnAlternate ) {
+ kdDebug(1202)<<"Setting new alternate sort column"<<endl;
+ m_sortColumnNameAlternate = nameOfSortColumn;
+ m_sortColumnIndexAlternate = sec;
+ m_sortColumnOrderAlternate = true;
+ config.setAlternateSortCol(nameOfSortColumn);
+ config.setAlternateSortIndex(sec);
+ config.setAlternateSortOrder(true);
+ toggleColumnAlternate = false;
+ }
+ else {
+ kdDebug(1202)<<"Setting new primary sort column"<<endl;
+ m_sortColumnNamePrimary = nameOfSortColumn;
+ m_sortColumnIndexPrimary = sec;
+ m_sortColumnOrderPrimary = true;
+ config.setPrimarySortCol(nameOfSortColumn);
+ config.setPrimarySortIndex(sec);
+ config.setPrimarySortOrder(true);
+ toggleColumnAlternate = true;
+ }
+
config.setSortBy( nameOfSortColumn );
config.setSortOrder( m_pListView->ascending() );
config.writeConfig();
}
+void KonqListView::resetSortConfig()
+{
+ int defaultVisibleColumn;
+ int columnNumber;
+
+ defaultVisibleColumn = 0; // First visible column from left
+ columnNumber = -1;
+ for (uint i = 0; i < m_pListView->NumberOfAtoms; i++) {
+ if (m_pListView->confColumns[i].displayInColumn == defaultVisibleColumn) {
+ columnNumber = i;
+ }
+ }
+ if (columnNumber == -1) {
+ // This should not happen!
+ kdDebug() << "We did not find columnNumber" <<endl;
+ m_sortColumnIndexPrimary = 0;
+ m_sortColumnNamePrimary = "FileName";
+ }
+ else {
+ m_sortColumnIndexPrimary = defaultVisibleColumn;
+ m_sortColumnNamePrimary = m_pListView->confColumns[columnNumber].desktopFileName;
+ }
+
+ defaultVisibleColumn = 1 ; // Second visible column from left
+ columnNumber = -1;
+ for (uint i = 0; i < m_pListView->NumberOfAtoms; i++) {
+ if (m_pListView->confColumns[i].displayInColumn == defaultVisibleColumn) {
+ columnNumber = i;
+ }
+ }
+ if (columnNumber == -1) {
+ // This should not happen!
+ kdDebug() << "We did not find columnNumber" <<endl;
+ m_sortColumnIndexAlternate = 0;
+ m_sortColumnNameAlternate = "FileName";
+ }
+ else {
+ m_sortColumnIndexAlternate = defaultVisibleColumn;
+ m_sortColumnNameAlternate=m_pListView->confColumns[columnNumber].desktopFileName;
+ }
+
+ m_sortColumnOrderPrimary = true ;
+ m_sortColumnOrderAlternate = true ;
+
+ kdDebug(1202) << "Initialized m_sortColumnIndexPrimary to " <<m_sortColumnIndexPrimary <<endl;
+ kdDebug(1202) << "Initialized m_sortColumnNamePrimary to " <<m_sortColumnNamePrimary <<endl;
+ kdDebug(1202) << "Initialized m_sortColumnIndexAlternate to " <<m_sortColumnIndexAlternate <<endl;
+ kdDebug(1202) << "Initialized m_sortColumnNameAlternate to " <<m_sortColumnNameAlternate <<endl;
+
+ KonqListViewSettings config( m_pListView->url().protocol() );
+ config.setPrimarySortCol(m_sortColumnNamePrimary);
+ config.setPrimarySortIndex(m_sortColumnIndexPrimary);
+ config.setPrimarySortOrder(m_sortColumnOrderPrimary);
+ config.setAlternateSortCol(m_sortColumnNameAlternate);
+ config.setAlternateSortIndex(m_sortColumnIndexAlternate);
+ config.setAlternateSortOrder(m_sortColumnOrderAlternate);
+ config.writeConfig() ;
+}
+
+void KonqListView::checkSortConfig()
+{
+ KonqListViewSettings config( m_pListView->url().protocol() );
+ config.readConfig();
+
+ m_sortColumnIndexPrimary = config.primarySortIndex();
+ m_sortColumnNamePrimary = config.primarySortCol();
+ m_sortColumnOrderPrimary = config.primarySortOrder();
+
+ m_sortColumnIndexAlternate = config.alternateSortIndex();
+ m_sortColumnNameAlternate = config.alternateSortCol();
+ m_sortColumnOrderAlternate = config.alternateSortOrder();
+
+ if (m_sortColumnIndexPrimary >= 0 && m_sortColumnIndexAlternate >= 0)
+ return ;
+
+ resetSortConfig();
+}
+
+#define LV_SORT_CHANGE_COLUMN 1
+#define LV_SORT_CHANGE_ORDER 2
+
+void KonqListView::sortListView(uint which)
+{
+ TQString sortColumnNameCurrent = m_pListView->sortedByColumn;
+ if (sortColumnNameCurrent == "" ) {
+ sortColumnNameCurrent = "FileName" ;
+ m_pListView->sortedByColumn = sortColumnNameCurrent ;
+ }
+ TQString sortColumnNameNext;
+ int sortColumnIndex;
+ bool sortOrder;
+
+ checkSortConfig() ;
+ KonqListViewSettings config( m_pListView->url().protocol() );
+ config.readConfig();
+
+ switch (which)
+ {
+ case LV_SORT_CHANGE_COLUMN:
+ if (m_sortColumnNamePrimary == sortColumnNameCurrent)
+ {
+ sortColumnNameNext = m_sortColumnNameAlternate;
+ sortColumnIndex = m_sortColumnIndexAlternate;
+ sortOrder = m_sortColumnOrderAlternate;
+ kdDebug(1202) << "Changing sort column to alternate"<<endl ;
+ }
+ else
+ {
+ sortColumnNameNext = m_sortColumnNamePrimary;
+ sortColumnIndex = m_sortColumnIndexPrimary;
+ sortOrder = m_sortColumnOrderPrimary;
+ kdDebug(1202) << "Changing sort column to primary"<<endl ;
+ }
+ m_pListView->setSorting( sortColumnIndex, sortOrder );
+ m_pListView->sortedByColumn = sortColumnNameNext;
+ config.setSortBy( sortColumnNameNext );
+ break;
+
+ case LV_SORT_CHANGE_ORDER:
+ sortOrder = !m_pListView->ascending();
+
+ if ( m_sortColumnNamePrimary == sortColumnNameCurrent )
+ {
+ sortColumnIndex = m_sortColumnIndexPrimary;
+ m_sortColumnOrderPrimary = sortOrder;
+ config.setPrimarySortOrder( sortOrder );
+ kdDebug(1202) << "Changing sort order of primary"<<endl ;
+ }
+ else
+ {
+ sortColumnIndex = m_sortColumnIndexAlternate;
+ m_sortColumnOrderAlternate = sortOrder ;
+ config.setAlternateSortOrder( sortOrder ) ;
+ kdDebug(1202) << "Changing sort order of alternate"<<endl ;
+ }
+ m_pListView->setAscending(sortOrder) ;
+ config.setSortOrder(sortOrder);
+ m_pListView->setSorting( sortColumnIndex, sortOrder );
+ break;
+
+ default:
+ // Do nothing in case of invalid call
+ return;
+ }
+
+ m_pListView->sort();
+
+ config.writeConfig();
+}
+
+void KonqListView::slotSortAlternate()
+{
+ KonqListView::sortListView(LV_SORT_CHANGE_COLUMN);
+}
+
+void KonqListView::slotSortReverse()
+{
+ KonqListView::sortListView(LV_SORT_CHANGE_ORDER);
+}
+
+void KonqListView::slotToggleDisplayDirectoriesFirst()
+{
+ m_pProps->setDirsFirst( m_paDisplayDirectoriesFirst->isChecked() );
+ m_pListView->updateListContents();
+ m_pListView->sort();
+}
+
+void KonqListView::slotToggleDisplayHiddenFirst()
+{
+ m_pProps->setHiddenFirst( m_paDisplayHiddenFirst->isChecked() );
+ m_pListView->updateListContents();
+ m_pListView->sort();
+}
+
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()
@@ -609,6 +824,9 @@ void KonqListView::slotSaveAfterHeaderDrag()
// Update column sizes
slotHeaderSizeChanged();
+
+ // Columns were rearranged, so do this to be safe:
+ resetSortConfig();
}
void KonqListView::slotSaveColumnWidths()
@@ -645,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();
@@ -667,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.
@@ -711,9 +929,53 @@ 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,
+ 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,
+ 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 */ );
}
@@ -726,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"
diff --git a/konqueror/listview/konq_listview.h b/konqueror/listview/konq_listview.h
index 4c3719bd0..bcd2ec0a1 100644
--- a/konqueror/listview/konq_listview.h
+++ b/konqueror/listview/konq_listview.h
@@ -63,8 +63,10 @@ class KonqListView : public KonqDirPart
{
friend class KonqBaseListViewWidget;
friend class ListViewBrowserExtension;
- Q_OBJECT
+
+ TQ_OBJECT
TQ_PROPERTY( bool supportsUndo READ supportsUndo )
+
public:
KonqListView( TQWidget *parentWidget, TQObject *parent, const char *name, const TQString& mode );
virtual ~KonqListView();
@@ -128,6 +130,15 @@ protected slots:
void slotSaveColumnWidths(); // delayed
void slotHeaderClicked(int sec);
+ void slotOrderUnicodeUnmodified();
+ void slotOrderUnicodeCaseInsensitive();
+ void slotOrderLocale();
+ void slotToggleDisplayDirectoriesFirst();
+ void slotToggleDisplayHiddenFirst();
+
+ void slotSortAlternate();
+ void slotSortReverse();
+
// This comes from KonqDirPart, it's for the "Find" feature
virtual void slotStarted() { m_pListView->slotStarted(); }
virtual void slotCanceled() { m_pListView->slotCanceled(); }
@@ -148,12 +159,27 @@ private:
KMimeTypeResolver<KonqBaseListViewItem,KonqListView> *m_mimeTypeResolver;
TQTimer *m_headerTimer;
+ bool toggleColumnAlternate = true;
+ TQString m_sortColumnNamePrimary;
+ int m_sortColumnIndexPrimary;
+ int m_sortColumnOrderPrimary;
+ TQString m_sortColumnNameAlternate;
+ int m_sortColumnIndexAlternate;
+ int m_sortColumnOrderAlternate;
+
+ void resetSortConfig();
+ void checkSortConfig();
+ void sortListView(uint which);
+
TDEAction *m_paSelect;
TDEAction *m_paUnselect;
TDEAction *m_paSelectAll;
TDEAction *m_paUnselectAll;
TDEAction *m_paInvertSelection;
+ TDEAction *m_paSortAlternate;
+ TDEAction *m_paSortReverse;
+
// These 2 actions are 'fake' actions. They are defined so that the keyboard shortcuts
// can be set from the 'Configure Shortcuts..." dialog.
// The real actions are performed in the TDEListViewLineEdit::keyPressEvent() in tdeui
@@ -174,11 +200,18 @@ private:
TDEToggleAction *m_paShowGroup;
TDEToggleAction *m_paShowPermissions;
TDEToggleAction *m_paShowURL;
+
+ TDEToggleAction *m_paOrderUnicodeUnmodified;
+ TDEToggleAction *m_paOrderUnicodeCaseInsensitive;
+ TDEToggleAction *m_paOrderLocale;
+
+ TDEToggleAction *m_paDisplayDirectoriesFirst;
+ TDEToggleAction *m_paDisplayHiddenFirst;
};
class ListViewBrowserExtension : public KonqDirPartBrowserExtension
{
- Q_OBJECT
+ TQ_OBJECT
friend class KonqListView;
friend class KonqBaseListViewWidget;
public:
diff --git a/konqueror/listview/konq_listview.kcfg b/konqueror/listview/konq_listview.kcfg
index bce9798a6..5c31c5cea 100644
--- a/konqueror/listview/konq_listview.kcfg
+++ b/konqueror/listview/konq_listview.kcfg
@@ -7,7 +7,6 @@
<kcfgfile name="konquerorrc">
<parameter name="Protocol" />
</kcfgfile>
-
<group name="ListView_$(Protocol)">
<entry key="SortBy" type="String">
<default>FileName</default>
@@ -19,6 +18,36 @@
<label>Sort Order</label>
<whatsthis></whatsthis>
</entry>
+ <entry key="PrimarySortCol" type="String">
+ <default>TBD</default>
+ <label>Primary sort column name</label>
+ <whatsthis></whatsthis>
+ </entry>
+ <entry key="PrimarySortIndex" type="Int">
+ <default>-1</default>
+ <label>Primary sort column offset</label>
+ <whatsthis></whatsthis>
+ </entry>
+ <entry key="PrimarySortOrder" type="Bool">
+ <default>true</default>
+ <label>Primary sort column sorting order</label>
+ <whatsthis></whatsthis>
+ </entry>
+ <entry key="AlternateSortCol" type="String">
+ <default>TBD</default>
+ <label>Alternate sort column name</label>
+ <whatsthis></whatsthis>
+ </entry>
+ <entry key="AlternateSortIndex" type="Int">
+ <default>-1</default>
+ <label>Alternate sort column offset</label>
+ <whatsthis></whatsthis>
+ </entry>
+ <entry key="AlternateSortOrder" type="Bool">
+ <default>true</default>
+ <label>Alternate sort column sorting order</label>
+ <whatsthis></whatsthis>
+ </entry>
<entry key="FileNameColumnWidth" type="Int">
<default code="true">25 * TDEApplication::kApplication()->fontMetrics().width( "m" )</default>
<label>Width of the FileName Column</label>
@@ -33,5 +62,4 @@
<whatsthis></whatsthis>
</entry>
</group>
-
</kcfg> \ No newline at end of file
diff --git a/konqueror/listview/konq_listviewitems.cc b/konqueror/listview/konq_listviewitems.cpp
index 45ff99c1c..3910095f9 100644
--- a/konqueror/listview/konq_listviewitems.cc
+++ b/konqueror/listview/konq_listviewitems.cpp
@@ -19,6 +19,7 @@
#include "konq_listview.h"
#include <konq_settings.h>
+#include "konq_string_compare.h"
#include <kdebug.h>
#include <tdelocale.h>
#include <assert.h>
@@ -84,10 +85,18 @@ void KonqListViewItem::updateContents()
// Set the text of each column
setText( 0, m_fileitem->text() );
- // The order is: .dir (0), dir (1), .file (2), file (3)
- sortChar = S_ISDIR( m_fileitem->mode() ) ? 1 : 3;
- if ( m_fileitem->text()[0] == '.' )
- --sortChar;
+ bool m_groupDirectoriesFirst = m_pListViewWidget->props()->isDirsFirst();
+ bool m_groupHiddenFirst = m_pListViewWidget->props()->isHiddenFirst();
+
+ // The default TDE order is: .dir (0), dir (1), .file (2), file (3)
+
+ if ( m_groupDirectoriesFirst )
+ sortChar = S_ISDIR( m_fileitem->mode() ) ? 1 : 3;
+ else
+ sortChar = 3;
+
+ if ( m_groupHiddenFirst && m_fileitem->text()[0] == '.' )
+ --sortChar;
//now we have the first column, so let's do the rest
@@ -152,7 +161,7 @@ void KonqListViewItem::updateContents()
const TQString entryStr = retrieveExtraEntry( m_fileitem, numExtra );
if ( tmpColumn->type == TQVariant::DateTime )
{
- TQDateTime dt = TQT_TQDATETIME_OBJECT(TQDateTime::fromString( entryStr, Qt::ISODate ));
+ TQDateTime dt = TQDateTime::fromString( entryStr, TQt::ISODate );
setText(tmpColumn->displayInColumn,
TDEGlobal::locale()->formatDateTime(dt));
}
@@ -283,9 +292,9 @@ int KonqBaseListViewItem::compare( TQListViewItem* item, int col, bool ascending
{
if ( cInfo->type & TQVariant::DateTime ) {
const TQString entryStr1 = retrieveExtraEntry( m_fileitem, numExtra );
- TQDateTime dt1 = TQT_TQDATETIME_OBJECT(TQDateTime::fromString( entryStr1, Qt::ISODate ));
+ TQDateTime dt1 = TQDateTime::fromString( entryStr1, TQt::ISODate );
const TQString entryStr2 = retrieveExtraEntry( k->m_fileitem, numExtra );
- TQDateTime dt2 = TQT_TQDATETIME_OBJECT(TQDateTime::fromString( entryStr2, Qt::ISODate ));
+ TQDateTime dt2 = TQDateTime::fromString( entryStr2, TQt::ISODate );
return ( dt1 > dt2 ) ? 1 : ( dt1 < dt2 ) ? -1 : 0;
}
}
@@ -295,11 +304,10 @@ int KonqBaseListViewItem::compare( TQListViewItem* item, int col, bool ascending
break;
}
}
- if ( m_pListViewWidget->caseInsensitiveSort() )
- return text( col ).lower().localeAwareCompare( k->text( col ).lower() );
- else {
- return m_pListViewWidget->m_pSettings->caseSensitiveCompare( text( col ), k->text( col ) );
- }
+
+ /* If we reach here, we are comparing text columns (e.g file name). */
+
+ return stringCompare( m_pListViewWidget->m_sortOrder, text( col ), k->text( col ) );
}
void KonqListViewItem::paintCell( TQPainter *_painter, const TQColorGroup & _cg, int _column, int _width, int _alignment )
@@ -314,7 +322,7 @@ void KonqListViewItem::paintCell( TQPainter *_painter, const TQColorGroup & _cg,
cg.setColor( TQColorGroup::Text, m_pListViewWidget->itemColor() );
TDEListView *lv = static_cast< TDEListView* >( listView() );
- const TQPixmap *pm = TQT_TQPIXMAP_CONST(lv->viewport()->paletteBackgroundPixmap());
+ const TQPixmap *pm = lv->viewport()->paletteBackgroundPixmap();
if ( _column == 0 && isSelected() && !lv->allColumnsShowFocus() )
{
int newWidth = width( lv->fontMetrics(), lv, _column );
diff --git a/konqueror/listview/konq_listviewwidget.cc b/konqueror/listview/konq_listviewwidget.cpp
index 4c1198325..a41cf6367 100644
--- a/konqueror/listview/konq_listviewwidget.cc
+++ b/konqueror/listview/konq_listviewwidget.cpp
@@ -100,6 +100,7 @@ KonqBaseListViewWidget::KonqBaseListViewWidget( KonqListView *parent, TQWidget *
,m_bAscending(true)
,m_itemFound(false)
,m_restored(false)
+ ,m_sortOrder(0)
,m_filenameColumn(0)
,m_itemToGoTo("")
,m_backgroundTimer(0)
@@ -120,61 +121,61 @@ KonqBaseListViewWidget::KonqBaseListViewWidget( KonqListView *parent, TQWidget *
initConfig();
#if 0
- connect( this, TQT_SIGNAL(rightButtonPressed(TQListViewItem*,const TQPoint&,int)),
- this, TQT_SLOT(slotRightButtonPressed(TQListViewItem*,const TQPoint&,int)));
+ connect( this, TQ_SIGNAL(rightButtonPressed(TQListViewItem*,const TQPoint&,int)),
+ this, TQ_SLOT(slotRightButtonPressed(TQListViewItem*,const TQPoint&,int)));
#endif
- connect( this, TQT_SIGNAL(returnPressed( TQListViewItem * )),
- this, TQT_SLOT(slotReturnPressed( TQListViewItem * )) );
- connect( this, TQT_SIGNAL(mouseButtonClicked( int, TQListViewItem *, const TQPoint&, int )),
- this, TQT_SLOT(slotMouseButtonClicked2( int, TQListViewItem *, const TQPoint&, int )) );
- connect( this, TQT_SIGNAL(executed( TQListViewItem * )),
- this, TQT_SLOT(slotExecuted( TQListViewItem * )) );
- connect( this, TQT_SIGNAL(currentChanged( TQListViewItem * )),
- this, TQT_SLOT(slotCurrentChanged( TQListViewItem * )) );
- connect( this, TQT_SIGNAL(itemRenamed( TQListViewItem *, const TQString &, int )),
- this, TQT_SLOT(slotItemRenamed( TQListViewItem *, const TQString &, int )) );
- connect( this, TQT_SIGNAL(contextMenuRequested( TQListViewItem *, const TQPoint&, int )),
- this, TQT_SLOT(slotPopupMenu( TQListViewItem *, const TQPoint&, int )) );
- connect( this, TQT_SIGNAL(renameNext( TQListViewItem *, int )),
- this, TQT_SLOT(slotRenameNextItem( TQListViewItem*, int)) );
- connect( this, TQT_SIGNAL(renamePrev( TQListViewItem *, int )),
- this, TQT_SLOT(slotRenamePrevItem( TQListViewItem*, int)) );
- connect( this, TQT_SIGNAL(selectionChanged()), this, TQT_SLOT(slotSelectionChanged()) );
-
- connect( horizontalScrollBar(), TQT_SIGNAL(valueChanged( int )),
- this, TQT_SIGNAL(viewportAdjusted()) );
- connect( verticalScrollBar(), TQT_SIGNAL(valueChanged( int )),
- this, TQT_SIGNAL(viewportAdjusted()) );
+ connect( this, TQ_SIGNAL(returnPressed( TQListViewItem * )),
+ this, TQ_SLOT(slotReturnPressed( TQListViewItem * )) );
+ connect( this, TQ_SIGNAL(mouseButtonClicked( int, TQListViewItem *, const TQPoint&, int )),
+ this, TQ_SLOT(slotMouseButtonClicked2( int, TQListViewItem *, const TQPoint&, int )) );
+ connect( this, TQ_SIGNAL(executed( TQListViewItem * )),
+ this, TQ_SLOT(slotExecuted( TQListViewItem * )) );
+ connect( this, TQ_SIGNAL(currentChanged( TQListViewItem * )),
+ this, TQ_SLOT(slotCurrentChanged( TQListViewItem * )) );
+ connect( this, TQ_SIGNAL(itemRenamed( TQListViewItem *, const TQString &, int )),
+ this, TQ_SLOT(slotItemRenamed( TQListViewItem *, const TQString &, int )) );
+ connect( this, TQ_SIGNAL(contextMenuRequested( TQListViewItem *, const TQPoint&, int )),
+ this, TQ_SLOT(slotPopupMenu( TQListViewItem *, const TQPoint&, int )) );
+ connect( this, TQ_SIGNAL(renameNext( TQListViewItem *, int )),
+ this, TQ_SLOT(slotRenameNextItem( TQListViewItem*, int)) );
+ connect( this, TQ_SIGNAL(renamePrev( TQListViewItem *, int )),
+ this, TQ_SLOT(slotRenamePrevItem( TQListViewItem*, int)) );
+ connect( this, TQ_SIGNAL(selectionChanged()), this, TQ_SLOT(slotSelectionChanged()) );
+
+ connect( horizontalScrollBar(), TQ_SIGNAL(valueChanged( int )),
+ this, TQ_SIGNAL(viewportAdjusted()) );
+ connect( verticalScrollBar(), TQ_SIGNAL(valueChanged( int )),
+ this, TQ_SIGNAL(viewportAdjusted()) );
// Connect the directory lister
- connect( m_dirLister, TQT_SIGNAL(started( const KURL & )),
- this, TQT_SLOT(slotStarted()) );
- connect( m_dirLister, TQT_SIGNAL(completed()), this, TQT_SLOT(slotCompleted()) );
- connect( m_dirLister, TQT_SIGNAL(canceled()), this, TQT_SLOT(slotCanceled()) );
- connect( m_dirLister, TQT_SIGNAL(clear()), this, TQT_SLOT(slotClear()) );
- connect( m_dirLister, TQT_SIGNAL(newItems( const KFileItemList & ) ),
- this, TQT_SLOT(slotNewItems( const KFileItemList & )) );
- connect( m_dirLister, TQT_SIGNAL(deleteItem( KFileItem * )),
- this, TQT_SLOT(slotDeleteItem( KFileItem * )) );
- connect( m_dirLister, TQT_SIGNAL(refreshItems( const KFileItemList & )),
- this, TQT_SLOT( slotRefreshItems( const KFileItemList & )) );
- connect( m_dirLister, TQT_SIGNAL(redirection( const KURL & )),
- this, TQT_SLOT(slotRedirection( const KURL & )) );
- connect( m_dirLister, TQT_SIGNAL(itemsFilteredByMime( const KFileItemList & )),
- m_pBrowserView, TQT_SIGNAL(itemsFilteredByMime( const KFileItemList & )) );
-
- connect( m_dirLister, TQT_SIGNAL(infoMessage( const TQString& )),
- m_pBrowserView->extension(), TQT_SIGNAL(infoMessage( const TQString& )) );
- connect( m_dirLister, TQT_SIGNAL(percent( int )),
- m_pBrowserView->extension(), TQT_SIGNAL(loadingProgress( int )) );
- connect( m_dirLister, TQT_SIGNAL(speed( int )),
- m_pBrowserView->extension(), TQT_SIGNAL(speedProgress( int )) );
-
- connect( header(), TQT_SIGNAL(sizeChange( int, int, int )), TQT_SLOT(slotUpdateBackground()) );
+ connect( m_dirLister, TQ_SIGNAL(started( const KURL & )),
+ this, TQ_SLOT(slotStarted()) );
+ connect( m_dirLister, TQ_SIGNAL(completed()), this, TQ_SLOT(slotCompleted()) );
+ connect( m_dirLister, TQ_SIGNAL(canceled()), this, TQ_SLOT(slotCanceled()) );
+ connect( m_dirLister, TQ_SIGNAL(clear()), this, TQ_SLOT(slotClear()) );
+ connect( m_dirLister, TQ_SIGNAL(newItems( const KFileItemList & ) ),
+ this, TQ_SLOT(slotNewItems( const KFileItemList & )) );
+ connect( m_dirLister, TQ_SIGNAL(deleteItem( KFileItem * )),
+ this, TQ_SLOT(slotDeleteItem( KFileItem * )) );
+ connect( m_dirLister, TQ_SIGNAL(refreshItems( const KFileItemList & )),
+ this, TQ_SLOT( slotRefreshItems( const KFileItemList & )) );
+ connect( m_dirLister, TQ_SIGNAL(redirection( const KURL & )),
+ this, TQ_SLOT(slotRedirection( const KURL & )) );
+ connect( m_dirLister, TQ_SIGNAL(itemsFilteredByMime( const KFileItemList & )),
+ m_pBrowserView, TQ_SIGNAL(itemsFilteredByMime( const KFileItemList & )) );
+
+ connect( m_dirLister, TQ_SIGNAL(infoMessage( const TQString& )),
+ m_pBrowserView->extension(), TQ_SIGNAL(infoMessage( const TQString& )) );
+ connect( m_dirLister, TQ_SIGNAL(percent( int )),
+ m_pBrowserView->extension(), TQ_SIGNAL(loadingProgress( int )) );
+ connect( m_dirLister, TQ_SIGNAL(speed( int )),
+ m_pBrowserView->extension(), TQ_SIGNAL(speedProgress( int )) );
+
+ connect( header(), TQ_SIGNAL(sizeChange( int, int, int )), TQ_SLOT(slotUpdateBackground()) );
viewport()->setMouseTracking( true );
- viewport()->setFocusPolicy( TQ_WheelFocus );
- setFocusPolicy( TQ_WheelFocus );
+ viewport()->setFocusPolicy( TQWidget::WheelFocus );
+ setFocusPolicy( TQWidget::WheelFocus );
setAcceptDrops( true );
//looks better with the statusbar
@@ -236,9 +237,9 @@ void KonqBaseListViewWidget::readProtocolConfig( const KURL & url )
lstColumns << column;
const TQString type = (*extraFieldsIt).type; // ## TODO use when sorting
TQVariant::Type t = TQVariant::Invalid;
- if ( type.lower() == TQString(TQSTRING_OBJECT_NAME_STRING).lower() )
+ if ( type.lower() == TQString("TQString").lower() )
t = TQVariant::String;
- else if ( type.lower() == TQString(TQDATETIME_OBJECT_NAME_STRING).lower() )
+ else if ( type.lower() == TQString("TQDateTime").lower() )
t = TQVariant::DateTime;
else
kdWarning() << "Unsupported ExtraType '" << type << "'" << endl;
@@ -425,13 +426,13 @@ void KonqBaseListViewWidget::contentsMousePressEvent( TQMouseEvent *e ) {
TDEListView::contentsMousePressEvent( e );
}
else {
- if ( e->button() == Qt::LeftButton ) {
+ if ( e->button() == TQt::LeftButton ) {
m_rubber = new TQRect( e->x(), e->y(), 0, 0 );
clearSelection();
emit selectionChanged();
m_fileTip->setItem( 0 );
}
- if ( e->button() != Qt::RightButton ) {
+ if ( e->button() != TQt::RightButton ) {
TQListView::contentsMousePressEvent( e );
}
}
@@ -452,7 +453,7 @@ void KonqBaseListViewWidget::contentsMouseReleaseEvent( TQMouseEvent *e ) {
}
if ( m_scrollTimer ) {
- disconnect( m_scrollTimer, TQT_SIGNAL( timeout() ), this, TQT_SLOT( slotAutoScroll() ) );
+ disconnect( m_scrollTimer, TQ_SIGNAL( timeout() ), this, TQ_SLOT( slotAutoScroll() ) );
m_scrollTimer->stop();
delete m_scrollTimer;
m_scrollTimer = 0;
@@ -524,28 +525,37 @@ void KonqBaseListViewWidget::contentsWheelEvent( TQWheelEvent *e )
void KonqBaseListViewWidget::contentsMouseDoubleClickEvent(TQMouseEvent *e)
{
- if (m_rubber) {
- TQRect r(m_rubber->normalize());
- delete m_rubber;
- m_rubber = NULL;
- repaintContents(r, false);
- }
-
- TQPoint vp = contentsToViewport(e->pos());
- KonqBaseListViewItem* item = isExecuteArea(vp) ?
- static_cast<KonqBaseListViewItem*>(itemAt(vp)) : NULL;
+ if (m_rubber)
+ {
+ TQRect r(m_rubber->normalize());
+ delete m_rubber;
+ m_rubber = NULL;
+ repaintContents(r, false);
+ }
+
+ TQPoint vp = contentsToViewport(e->pos());
+ KonqBaseListViewItem* item = isExecuteArea(vp) ?
+ static_cast<KonqBaseListViewItem*>(itemAt(vp)) : NULL;
- if (item) {
+ if (item)
+ {
TDEListView::contentsMouseDoubleClickEvent(e);
- }
- else {
+ }
+ else if (m_pSettings->doubleClickMoveToParent())
+ {
KParts::URLArgs args;
args.trustedSource = true;
- KURL upURL = m_dirLister->url().upURL();
- if (!upURL.isEmpty()) {
- m_pBrowserView->extension()->openURLRequest(upURL, args);
- }
- }
+ KURL baseURL(m_dirLister->url().internalReferenceURL());
+ if (baseURL.isEmpty())
+ {
+ baseURL = m_dirLister->url();
+ }
+ KURL upURL = baseURL.upURL();
+ if (!upURL.isEmpty())
+ {
+ m_pBrowserView->extension()->openURLRequest(upURL, args);
+ }
+ }
}
void KonqBaseListViewWidget::leaveEvent( TQEvent *e )
@@ -575,7 +585,7 @@ void KonqBaseListViewWidget::drawRubber( TQPainter *p )
TQPoint pt( m_rubber->x(), m_rubber->y() );
pt = contentsToViewport( pt );
- style().tqdrawPrimitive( TQStyle::PE_RubberBand, p,
+ style().drawPrimitive( TQStyle::PE_RubberBand, p,
TQRect( pt.x(), pt.y(), m_rubber->width(), m_rubber->height() ),
colorGroup(), TQStyle::Style_Default, colorGroup().base() );
}
@@ -752,15 +762,15 @@ void KonqBaseListViewWidget::slotAutoScroll()
{
m_scrollTimer = new TQTimer( this );
- connect( m_scrollTimer, TQT_SIGNAL( timeout() ),
- this, TQT_SLOT( slotAutoScroll() ) );
+ connect( m_scrollTimer, TQ_SIGNAL( timeout() ),
+ this, TQ_SLOT( slotAutoScroll() ) );
m_scrollTimer->start( 100, false );
}
}
else if ( m_scrollTimer )
{
- disconnect( m_scrollTimer, TQT_SIGNAL( timeout() ),
- this, TQT_SLOT( slotAutoScroll() ) );
+ disconnect( m_scrollTimer, TQ_SIGNAL( timeout() ),
+ this, TQ_SLOT( slotAutoScroll() ) );
m_scrollTimer->stop();
delete m_scrollTimer;
m_scrollTimer = 0;
@@ -962,7 +972,7 @@ void KonqBaseListViewWidget::slotSelectionChanged()
void KonqBaseListViewWidget::slotMouseButtonClicked2( int _button,
TQListViewItem *_item, const TQPoint& pos, int )
{
- if ( _button == Qt::MidButton )
+ if ( _button == TQt::MidButton )
{
if ( _item && isExecuteArea( viewport()->mapFromGlobal(pos) ) )
m_pBrowserView->mmbClicked( static_cast<KonqBaseListViewItem *>(_item)->item() );
@@ -1206,11 +1216,7 @@ bool KonqBaseListViewWidget::openURL( const KURL &url )
{
m_pBrowserView->newIconSize( m_pBrowserView->m_pProps->iconSize() );
m_pBrowserView->m_paShowDot->setChecked( m_pBrowserView->m_pProps->isShowingDotFiles() );
- if ( m_pBrowserView->m_paCaseInsensitive->isChecked() != m_pBrowserView->m_pProps->isCaseInsensitiveSort() ) {
- m_pBrowserView->m_paCaseInsensitive->setChecked( m_pBrowserView->m_pProps->isCaseInsensitiveSort() );
- // This is in case openURL returned all items synchronously.
- sort();
- }
+ m_sortOrder = m_pBrowserView->m_pProps->getSortOrder();
// It has to be "viewport()" - this is what KonqDirPart's slots act upon,
// and otherwise we get a color/pixmap in the square between the scrollbars.
@@ -1484,7 +1490,7 @@ KonqBaseListViewWidget::iterator KonqBaseListViewWidget::iterator::operator++(in
void KonqBaseListViewWidget::paintEmptyArea( TQPainter *p, const TQRect &r )
{
- const TQPixmap *pm = TQT_TQPIXMAP_CONST(viewport()->paletteBackgroundPixmap());
+ const TQPixmap *pm = viewport()->paletteBackgroundPixmap();
if (!pm || pm->isNull())
p->fillRect(r, viewport()->backgroundColor());
@@ -1557,7 +1563,7 @@ void KonqBaseListViewWidget::slotUpdateBackground()
if ( !m_backgroundTimer )
{
m_backgroundTimer = new TQTimer( this );
- connect( m_backgroundTimer, TQT_SIGNAL( timeout() ), viewport(), TQT_SLOT( update() ) );
+ connect( m_backgroundTimer, TQ_SIGNAL( timeout() ), viewport(), TQ_SLOT( update() ) );
}
else
m_backgroundTimer->stop();
@@ -1566,11 +1572,6 @@ void KonqBaseListViewWidget::slotUpdateBackground()
}
}
-bool KonqBaseListViewWidget::caseInsensitiveSort() const
-{
- return m_pBrowserView->m_pProps->isCaseInsensitiveSort();
-}
-
// based on isExecuteArea from tdelistview.cpp
int KonqBaseListViewWidget::executeArea( TQListViewItem *_item )
{
diff --git a/konqueror/listview/konq_listviewwidget.h b/konqueror/listview/konq_listviewwidget.h
index 613f012b3..ebae4c389 100644
--- a/konqueror/listview/konq_listviewwidget.h
+++ b/konqueror/listview/konq_listviewwidget.h
@@ -79,7 +79,7 @@ class KonqBaseListViewWidget : public TDEListView
friend class KonqListView;
friend class ListViewBrowserExtension;
- Q_OBJECT
+ TQ_OBJECT
public:
KonqBaseListViewWidget( KonqListView *parent, TQWidget *parentWidget );
@@ -137,7 +137,6 @@ public:
void setAscending( bool b ) { m_bAscending = b; }
bool ascending() const { return m_bAscending; }
- bool caseInsensitiveSort() const;
virtual void paintEmptyArea( TQPainter *p, const TQRect &r );
@@ -260,6 +259,8 @@ protected:
bool m_itemFound:1;
bool m_restored:1;
+ TextSortOrder m_sortOrder;
+
int m_filenameColumn;
int m_filenameColumnWidth;
diff --git a/konqueror/listview/konq_textview.desktop b/konqueror/listview/konq_textview.desktop
index 3f44f0543..ff4e4c988 100644
--- a/konqueror/listview/konq_textview.desktop
+++ b/konqueror/listview/konq_textview.desktop
@@ -1,85 +1,6 @@
[Desktop Entry]
Type=Service
Name=Text View
-Name[af]=Teks Besigtig
-Name[ar]=عرض نصي
-Name[az]=Mətn Görünüşü
-Name[be]=Тэкст
-Name[bg]=Текстов преглед
-Name[bn]=টেক্সট ভিউ
-Name[br]=Gwel skrid
-Name[bs]=Tekstualni pogled
-Name[ca]=Vista de text
-Name[cs]=Textový pohled
-Name[csb]=Tekstowi wëzdrzatk
-Name[cy]=Golwg Testun
-Name[da]=Tekstvisning
-Name[de]=Textansicht
-Name[el]=Προβολή κειμένου
-Name[eo]=Tekstrigardo
-Name[es]=Vista de texto
-Name[et]=Vaade tekstina
-Name[eu]=Testu ikuspegia
-Name[fa]=متن‌نما
-Name[fi]=Tekstinäkymä
-Name[fr]=Affichage de Texte
-Name[fy]=Tekstwerjefte
-Name[ga]=Amharc Téacs
-Name[gl]=Vista de Texto
-Name[he]=תצוגת טקסט
-Name[hi]=पाठ दृश्य
-Name[hr]=Tekstualni prikaz
-Name[hu]=Szöveges
-Name[id]=Tampilan Teks
-Name[is]=Textasýn
-Name[it]=Vista testuale
-Name[ja]=テキストビュー
-Name[ka]=ტექსტის სახით
-Name[kk]=Жай мәтін тізім
-Name[km]=ទិដ្ឋភាព​អត្ថបទ
-Name[ko]=VideoText 뷰어
-Name[lo]=ມຸມມອງຂໍ້ຄວາມ
-Name[lt]=Rodyti tekstą
-Name[lv]=Teksta Skatījums
-Name[mk]=Текстуален преглед
-Name[mn]=Текстээр харах
-Name[ms]=Paparan Teks
-Name[mt]=Uri Kliem biss
-Name[nb]=Tekstvisning
-Name[nds]=Textansicht
-Name[ne]=पाठ दृश्य
-Name[nl]=Tekstweergave
-Name[nn]=Tekstvising
-Name[nso]=Pono ya Sengwalwana
-Name[pa]=ਪਾਠ ਝਲਕ
-Name[pl]=Widok tekstowy
-Name[pt]=Vista em Texto
-Name[pt_BR]=Visão Texto
-Name[ro]=Vizualizare text
-Name[ru]=В виде текста
-Name[rw]=Igaragaza Umwandiko
-Name[se]=Teakstačájeheapmi
-Name[sk]=Textový pohľad
-Name[sl]=Besedilni pogled
-Name[sr]=Текстуални приказ
-Name[sr@Latn]=Tekstualni prikaz
-Name[sv]=Textvy
-Name[ta]=உரை காட்சி
-Name[te]=వచన వీక్షణం
-Name[tg]=Ба намуди матн
-Name[th]=มุมมองแบบข้อความ
-Name[tr]=Metin Görünümü
-Name[tt]=Mätenle Küreneş
-Name[uk]=Текстовий вигляд
-Name[uz]=Matn koʻrinishida
-Name[uz@cyrillic]=Матн кўринишида
-Name[ven]=Mbonalelo ya Manwalwa
-Name[vi]=Xem kiểu Văn bản
-Name[wa]=Vey e môde tecse
-Name[xh]=Imboniselo Yombhalo
-Name[zh_CN]=文本视图
-Name[zh_TW]=文字檢視
-Name[zu]=Umbukiso wombhalo
MimeType=inode/directory
X-TDE-ServiceTypes=Browser/View
X-TDE-Library=konq_listview
diff --git a/konqueror/listview/konq_textview.rc b/konqueror/listview/konq_textview.rc
index 612deb5cb..e29a0293b 100644
--- a/konqueror/listview/konq_textview.rc
+++ b/konqueror/listview/konq_textview.rc
@@ -1,5 +1,5 @@
<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
-<kpartgui name="KonqTextView" version="5">
+<kpartgui name="KonqTextView" version="7">
<MenuBar>
<Menu name="edit"><text>&amp;Edit</text>
<Menu name="selection"><text>Selection</text>
@@ -13,7 +13,17 @@
</Menu>
<Menu name="view"><text>&amp;View</text>
<Action name="show_dot" />
- <Action name="sort_caseinsensitive"/>
+ <Menu name="sort"><text>&amp;Sort</text>
+ <Action name="order_unicode_based"/>
+ <Action name="order_unicode_based_case_insensitive"/>
+ <Action name="order_locale_based"/>
+ <Separator/>
+ <Action name="group_directories_first"/>
+ <Action name="group_hidden_first"/>
+ <Separator/>
+ <Action name="alternate_sort_order"/>
+ <Action name="reverse_sort_order"/>
+ </Menu>
<Menu name="listview_show"><text>Show Details</text>
<TearOffHandle />
<Action name="show_size"/>
diff --git a/konqueror/listview/konq_textviewitem.cc b/konqueror/listview/konq_textviewitem.cpp
index 1076e10af..625e10f79 100644
--- a/konqueror/listview/konq_textviewitem.cc
+++ b/konqueror/listview/konq_textviewitem.cpp
@@ -210,7 +210,7 @@ void KonqTextViewItem::paintCell( TQPainter *_painter, const TQColorGroup & _cg,
cg.setColor(TQColorGroup::Text, static_cast<KonqTextViewWidget *>(listView())->colors[type]);
// Don't do that! Keep things readable whatever the selection background color is
// cg.setColor(TQColorGroup::HighlightedText, static_cast<KonqTextViewWidget *>(listView())->highlight[type]);
-// cg.setColor(TQColorGroup::Highlight, Qt::darkGray);
+// cg.setColor(TQColorGroup::Highlight, TQt::darkGray);
TDEListViewItem::paintCell( _painter, cg, _column, _width, _alignment );
}
@@ -223,7 +223,7 @@ void KonqTextViewItem::paintCell( TQPainter *_painter, const TQColorGroup & _cg,
TQPixmap pix( _r.width(), _r.height() );
bitBlt( &pix, 0, 0, _p->device(), _r.left(), _r.top(), _r.width(), _r.height() );
TQImage im = pix.convertToImage();
- im = KImageEffect::fade( im, 0.25, Qt::black );
+ im = KImageEffect::fade( im, 0.25, TQt::black );
_p->drawImage( _r.topLeft(), im );
}*/
diff --git a/konqueror/listview/konq_textviewwidget.cc b/konqueror/listview/konq_textviewwidget.cpp
index ab227899a..d814d2fbc 100644
--- a/konqueror/listview/konq_textviewwidget.cc
+++ b/konqueror/listview/konq_textviewwidget.cpp
@@ -43,17 +43,17 @@ KonqTextViewWidget::KonqTextViewWidget( KonqListView *parent, TQWidget *parentWi
setAllColumnsShowFocus(TRUE);
setRootIsDecorated(false);
- colors[KTVI_REGULAR]=Qt::black;
+ colors[KTVI_REGULAR]=TQt::black;
colors[KTVI_EXEC]=TQColor(0,170,0);
- colors[KTVI_REGULARLINK]=Qt::black;
- colors[KTVI_DIR]=Qt::black;
- colors[KTVI_DIRLINK]=Qt::black;
- colors[KTVI_BADLINK]=Qt::red;
- colors[KTVI_SOCKET]=Qt::magenta;
- colors[KTVI_FIFO]=Qt::magenta;
- colors[KTVI_UNKNOWN]=Qt::red;
- colors[KTVI_CHARDEV]=Qt::blue;
- colors[KTVI_BLOCKDEV]=Qt::blue;
+ colors[KTVI_REGULARLINK]=TQt::black;
+ colors[KTVI_DIR]=TQt::black;
+ colors[KTVI_DIRLINK]=TQt::black;
+ colors[KTVI_BADLINK]=TQt::red;
+ colors[KTVI_SOCKET]=TQt::magenta;
+ colors[KTVI_FIFO]=TQt::magenta;
+ colors[KTVI_UNKNOWN]=TQt::red;
+ colors[KTVI_CHARDEV]=TQt::blue;
+ colors[KTVI_BLOCKDEV]=TQt::blue;
m_showIcons=FALSE;
}
diff --git a/konqueror/listview/konq_textviewwidget.h b/konqueror/listview/konq_textviewwidget.h
index 06a5cbbb5..d42014ba1 100644
--- a/konqueror/listview/konq_textviewwidget.h
+++ b/konqueror/listview/konq_textviewwidget.h
@@ -32,7 +32,7 @@ class KonqTextViewItem;
class KonqTextViewWidget : public KonqBaseListViewWidget
{
friend class KonqTextViewItem;
- Q_OBJECT
+ TQ_OBJECT
public:
KonqTextViewWidget( KonqListView *parent, TQWidget *parentWidget );
~KonqTextViewWidget();
diff --git a/konqueror/listview/konq_treeview.desktop b/konqueror/listview/konq_treeview.desktop
index 3169cba48..7960d145a 100644
--- a/konqueror/listview/konq_treeview.desktop
+++ b/konqueror/listview/konq_treeview.desktop
@@ -1,84 +1,6 @@
[Desktop Entry]
Type=Service
Name=Tree View
-Name[af]=Boom Besigtig
-Name[ar]=عرض شجري
-Name[az]=Ağaç Görünüşü
-Name[be]=Дрэва
-Name[bg]=Дървовиден преглед
-Name[bn]=ট্রি ভিউ
-Name[br]=Gwel gwezenn
-Name[bs]=Pogled stabla
-Name[ca]=Vista d'arbre
-Name[cs]=Stromový pohled
-Name[csb]=Wëzdrzatk drzéwiã
-Name[cy]=Golwg Coeden
-Name[da]=Trævisning
-Name[de]=Baumansicht
-Name[el]=Προβολή δέντρου
-Name[eo]=Arba rigardo
-Name[es]=Vista en árbol
-Name[et]=Vaade puuna
-Name[eu]=Zuhaitz erako ikuspegia
-Name[fa]=درخت‌نما
-Name[fi]=Puunäkymä
-Name[fr]=Affichage en arborescence
-Name[fy]=Beamstruktuerwerjefte
-Name[ga]=Amharc Crainn
-Name[gl]=Vista de Árbore
-Name[he]=תצוגת עץ
-Name[hi]=ट्री दृश्य
-Name[hr]=Prikaz stabla
-Name[hu]=Fastruktúra
-Name[id]=Tampilan Pohon
-Name[is]=Trjáasýn
-Name[it]=Vista ad albero
-Name[ja]=ツリービュー
-Name[ka]=ხის სახით
-Name[kk]=Бұтақ түрінде
-Name[km]=ទិដ្ឋភាព​មែកធាង
-Name[lo]=ມຸມມອງແບບລາຍການຕົ້ນໄມ້
-Name[lt]=Rodyti medį
-Name[lv]=Koka Skatījums
-Name[mk]=Преглед со стебло
-Name[mn]=Модоор харах
-Name[ms]=Paparan Pepohon
-Name[mt]=Uri Friegħi
-Name[nb]=Trevisning
-Name[nds]=Boomansicht
-Name[ne]=ट्रि दृश्य
-Name[nl]=Boomstructuurweergave
-Name[nn]=Trevising
-Name[nso]=Pono ya Mohlare
-Name[pa]=ਲੜੀ ਝਲਕ
-Name[pl]=Widok drzewa
-Name[pt]=Vista em Árvore
-Name[pt_BR]=Visão em Árvore
-Name[ro]=Vizualizare arborescentă
-Name[ru]=В виде дерева
-Name[rw]=Igaragaza Igiti
-Name[se]=Muorračájeheapmi
-Name[sk]=Stromová štruktúra
-Name[sl]=Drevesni pogled
-Name[sr]=Приказ стабла
-Name[sr@Latn]=Prikaz stabla
-Name[sv]=Trädvy
-Name[ta]=மரக் காட்சி
-Name[te]=ట్రీ వీక్షణం
-Name[tg]=Ба намуди дарахт
-Name[th]=มุมมองแบบรายการต้นไม้
-Name[tr]=Ağaç Görünümü
-Name[tt]=Ağaçlı Küreneş
-Name[uk]=Вигляд структури каталогів
-Name[uz]=Daraxt koʻrinishida
-Name[uz@cyrillic]=Дарахт кўринишида
-Name[ven]=Mbonalelo ya Muri
-Name[vi]=Xem kiểu Cây
-Name[wa]=Vey come èn åbe
-Name[xh]=Imboniselo Yomthi
-Name[zh_CN]=树视图
-Name[zh_TW]=樹狀瀏覽
-Name[zu]=Umbukiso Wesihlahla
MimeType=inode/directory
X-TDE-ServiceTypes=KParts/ReadOnlyPart,Browser/View
X-TDE-Library=konq_listview
diff --git a/konqueror/listview/konq_treeview.rc b/konqueror/listview/konq_treeview.rc
index 7f8981779..9ef045785 100644
--- a/konqueror/listview/konq_treeview.rc
+++ b/konqueror/listview/konq_treeview.rc
@@ -1,5 +1,5 @@
<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
-<kpartgui name="KonqTreeView" version="10">
+<kpartgui name="KonqTreeView" version="12">
<MenuBar>
<Menu name="edit"><text>&amp;Edit</text>
<Menu name="selection"><text>Selection</text>
@@ -24,8 +24,17 @@
</Menu>
<Separator/>
<Action name="show_dot"/>
- <Action name="sort_caseinsensitive"/>
- <!--<Action name="sort_directoriesfirst" /> TODO -->
+ <Menu name="sort"><text>&amp;Sort</text>
+ <Action name="order_unicode_based"/>
+ <Action name="order_unicode_based_case_insensitive"/>
+ <Action name="order_locale_based"/>
+ <Separator/>
+ <Action name="group_directories_first"/>
+ <Action name="group_hidden_first"/>
+ <Separator/>
+ <Action name="alternate_sort_order"/>
+ <Action name="reverse_sort_order"/>
+ </Menu>
<Menu name="listview_show"><text>Show Details</text>
<TearOffHandle />
<Action name="show_size"/>
diff --git a/konqueror/listview/konq_treeviewitem.cc b/konqueror/listview/konq_treeviewitem.cpp
index 12953c401..12953c401 100644
--- a/konqueror/listview/konq_treeviewitem.cc
+++ b/konqueror/listview/konq_treeviewitem.cpp
diff --git a/konqueror/listview/konq_treeviewwidget.cc b/konqueror/listview/konq_treeviewwidget.cpp
index 77adc4b61..02c297c88 100644
--- a/konqueror/listview/konq_treeviewwidget.cc
+++ b/konqueror/listview/konq_treeviewwidget.cpp
@@ -35,12 +35,12 @@ KonqTreeViewWidget::KonqTreeViewWidget( KonqListView *parent, TQWidget *parentWi
setRootIsDecorated( true );
setTreeStepSize( 20 );
- connect( m_dirLister, TQT_SIGNAL( completed( const KURL & ) ),
- this, TQT_SLOT( slotCompleted( const KURL & ) ) );
- connect( m_dirLister, TQT_SIGNAL( clear( const KURL & ) ),
- this, TQT_SLOT( slotClear( const KURL & ) ) );
- connect( m_dirLister, TQT_SIGNAL( redirection( const KURL &, const KURL & ) ),
- this, TQT_SLOT( slotRedirection( const KURL &, const KURL & ) ) );
+ connect( m_dirLister, TQ_SIGNAL( completed( const KURL & ) ),
+ this, TQ_SLOT( slotCompleted( const KURL & ) ) );
+ connect( m_dirLister, TQ_SIGNAL( clear( const KURL & ) ),
+ this, TQ_SLOT( slotClear( const KURL & ) ) );
+ connect( m_dirLister, TQ_SIGNAL( redirection( const KURL &, const KURL & ) ),
+ this, TQ_SLOT( slotRedirection( const KURL &, const KURL & ) ) );
}
KonqTreeViewWidget::~KonqTreeViewWidget()
diff --git a/konqueror/listview/konq_treeviewwidget.h b/konqueror/listview/konq_treeviewwidget.h
index 01b85ddf6..0f16240db 100644
--- a/konqueror/listview/konq_treeviewwidget.h
+++ b/konqueror/listview/konq_treeviewwidget.h
@@ -32,7 +32,7 @@ class KonqTreeViewWidget : public KonqBaseListViewWidget
{
friend class KonqListViewDir;
- Q_OBJECT
+ TQ_OBJECT
public:
KonqTreeViewWidget( KonqListView *parent, TQWidget *parentWidget );
virtual ~KonqTreeViewWidget();