From 8ffb67b31c5e17270553bd4c75987f86b2bf7e98 Mon Sep 17 00:00:00 2001
From: Benedikt Meurer <benny@xfce.org>
Date: Sun, 12 Mar 2006 18:13:12 +0000
Subject: [PATCH] 2006-03-12	Benedikt Meurer <benny@xfce.org>

	* thunar/thunar-enum-types.{c,h}, thunar/thunar-list-model.c,
	  thunar/thunar-path-entry.c: Rename THUNAR_COLUMN_REAL_NAME to
	  THUNAR_COLUMN_FILE_NAME.
	* thunar/thunar-enum-types.{c,h}, thunar/thunar-list-model.c: Add new
	  list model columns THUNAR_COLUMN_GROUP and THUNAR_COLUMN_OWNER.
	* thunar/thunar-enum-types.{c,h}: Divide ThunarColumns into visible and
	  special columns.
	* thunar/thunar-text-renderer.c(thunar_text_renderer_get_size): Improve
	  guessing the required width for text columns.
	* thunar/thunar-text-renderer.c(thunar_text_renderer_set_widget): Set
	  fixed height for the text render.
	* thunar/thunar-preferences.c, docs/README.thunarrc: Add preferences for
	  the configurable detailed list view columns. Bug #1351.
	* thunar/thunar-column-editor.{c,h}, thunar/thunar-column-model.{c,h},
	  thunar/Makefile.am: Import ThunarColumnModel and ThunarColumnEditor
	  classes. The ThunarColumnModel class handles the order, visibility and
	  fixed widths of columns. The ThunarColumnEditor class provides a
	  dialog to configure the ThunarColumnModel. Bug #1351.
	* thunar/thunar-details-view.{c,h}, thunar/thunar-details-view-ui.xml,
	  thunar/Makefile.am: Use column order and visibility from the
	  ThunarColumnOrder. Add "Configure Columns..." menu item to "View",
	  which pops up the ThunarColumnEditor. For fixed column mode, we use
	  the fixed height mode provided by GtkTreeView, which speeds up the
	  detailed list view a lot, esp. with older Pango version. Bug #1351.
	* po/POTFILES.in: Add new files here.
	* po/Thunar.pot, po/*.po: Merge new strings.
	* po/de.po: Update the german translations.




(Old svn revision: 20363)
---
 ChangeLog                         |   30 +
 docs/README.thunarrc              |   44 ++
 po/ChangeLog                      |    6 +
 po/POTFILES.in                    |    3 +
 po/Thunar.pot                     |  151 ++++-
 po/ca.po                          |  167 ++++-
 po/de.po                          |  164 ++++-
 po/el.po                          |  165 ++++-
 po/es.po                          |  161 ++++-
 po/eu.po                          |  165 ++++-
 po/fi.po                          |  165 ++++-
 po/fr.po                          |  165 ++++-
 po/hu.po                          |  165 ++++-
 po/it.po                          |  167 ++++-
 po/ja.po                          |  165 ++++-
 po/nl.po                          |  165 ++++-
 po/pl.po                          |  163 ++++-
 po/pt_BR.po                       |  164 ++++-
 po/ru.po                          |  164 ++++-
 po/sv.po                          |  165 ++++-
 po/zh_TW.po                       |  159 ++++-
 thunar/Makefile.am                |   11 +
 thunar/thunar-column-editor.c     |  603 +++++++++++++++++
 thunar/thunar-column-editor.h     |   45 ++
 thunar/thunar-column-model.c      | 1047 +++++++++++++++++++++++++++++
 thunar/thunar-column-model.h      |   83 +++
 thunar/thunar-details-view-ui.xml |   23 +
 thunar/thunar-details-view.c      |  557 +++++++++++----
 thunar/thunar-details-view.h      |    8 +-
 thunar/thunar-enum-types.c        |   22 +-
 thunar/thunar-enum-types.h        |   22 +-
 thunar/thunar-list-model.c        |  124 +++-
 thunar/thunar-path-entry.c        |    8 +-
 thunar/thunar-preferences.c       |   59 ++
 thunar/thunar-text-renderer.c     |    6 +
 35 files changed, 4774 insertions(+), 707 deletions(-)
 create mode 100644 thunar/thunar-column-editor.c
 create mode 100644 thunar/thunar-column-editor.h
 create mode 100644 thunar/thunar-column-model.c
 create mode 100644 thunar/thunar-column-model.h
 create mode 100644 thunar/thunar-details-view-ui.xml

diff --git a/ChangeLog b/ChangeLog
index 712959b2e..1191749cb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,33 @@
+2006-03-12	Benedikt Meurer <benny@xfce.org>
+
+	* thunar/thunar-enum-types.{c,h}, thunar/thunar-list-model.c,
+	  thunar/thunar-path-entry.c: Rename THUNAR_COLUMN_REAL_NAME to
+	  THUNAR_COLUMN_FILE_NAME.
+	* thunar/thunar-enum-types.{c,h}, thunar/thunar-list-model.c: Add new
+	  list model columns THUNAR_COLUMN_GROUP and THUNAR_COLUMN_OWNER.
+	* thunar/thunar-enum-types.{c,h}: Divide ThunarColumns into visible and
+	  special columns.
+	* thunar/thunar-text-renderer.c(thunar_text_renderer_get_size): Improve
+	  guessing the required width for text columns.
+	* thunar/thunar-text-renderer.c(thunar_text_renderer_set_widget): Set
+	  fixed height for the text render.
+	* thunar/thunar-preferences.c, docs/README.thunarrc: Add preferences for
+	  the configurable detailed list view columns. Bug #1351.
+	* thunar/thunar-column-editor.{c,h}, thunar/thunar-column-model.{c,h},
+	  thunar/Makefile.am: Import ThunarColumnModel and ThunarColumnEditor
+	  classes. The ThunarColumnModel class handles the order, visibility and
+	  fixed widths of columns. The ThunarColumnEditor class provides a
+	  dialog to configure the ThunarColumnModel. Bug #1351.
+	* thunar/thunar-details-view.{c,h}, thunar/thunar-details-view-ui.xml,
+	  thunar/Makefile.am: Use column order and visibility from the
+	  ThunarColumnOrder. Add "Configure Columns..." menu item to "View",
+	  which pops up the ThunarColumnEditor. For fixed column mode, we use
+	  the fixed height mode provided by GtkTreeView, which speeds up the
+	  detailed list view a lot, esp. with older Pango version. Bug #1351.
+	* po/POTFILES.in: Add new files here.
+	* po/Thunar.pot, po/*.po: Merge new strings.
+	* po/de.po: Update the german translations.
+
 2006-03-11	Benedikt Meurer <benny@xfce.org>
 
 	* thunar-uca/thunar-uca-editor.c(thunar_uca_editor_command_clicked),
diff --git a/docs/README.thunarrc b/docs/README.thunarrc
index 4aaf47a18..29bec9d4d 100644
--- a/docs/README.thunarrc
+++ b/docs/README.thunarrc
@@ -24,6 +24,48 @@ The Thunar Configuration File (thunarrc)
 
      The last selected zoom level for the detailed list view.
 
+   * LastDetailsViewColumnOrder
+
+     A comma separated list of columns, which specifies the order of
+     information that appears in the detailed list view. Valid names
+     for the detailed list columns are:
+
+	- THUNAR_COLUMN_DATE_ACCESSED
+        - THUNAR_COLUMN_DATE_MODIFIED
+        - THUNAR_COLUMN_GROUP
+        - THUNAR_COLUMN_MIME_TYPE
+        - THUNAR_COLUMN_NAME
+        - THUNAR_COLUMN_OWNER
+        - THUNAR_COLUMN_PERMISSIONS
+        - THUNAR_COLUMN_SIZE
+        - THUNAR_COLUMN_TYPE
+
+   * LastDetailsViewColumnWidths
+
+     A comma separated list of column widths, used if the details view
+     is in fixed column mode. The exact format of this list should be
+     considered an implementation detail and may change in future
+     versions of Thunar.
+
+   * LastDetailsViewFixedColumns (FALSE/TRUE)
+
+     Whether to use fixed column widths in the detailed list view.
+
+   * LastDetailsViewVisibleColumns
+
+     The comma separated list of visible columns in the detailed list
+     view. Valid names for the detailed list columns are:
+
+	- THUNAR_COLUMN_DATE_ACCESSED
+        - THUNAR_COLUMN_DATE_MODIFIED
+        - THUNAR_COLUMN_GROUP
+        - THUNAR_COLUMN_MIME_TYPE
+        - THUNAR_COLUMN_NAME
+        - THUNAR_COLUMN_OWNER
+        - THUNAR_COLUMN_PERMISSIONS
+        - THUNAR_COLUMN_SIZE
+        - THUNAR_COLUMN_TYPE
+
    * LastIconViewZoomLevel (THUNAR_ZOOM_LEVEL_SMALLEST/
    			    THUNAR_ZOOM_LEVEL_SMALLER/
    			    THUNAR_ZOOM_LEVEL_SMALL/
@@ -51,8 +93,10 @@ The Thunar Configuration File (thunarrc)
 
    * LastSortColumn (THUNAR_COLUMN_DATE_ACCESSED/
                      THUNAR_COLUMN_DATE_MODIFIED/
+                     THUNAR_COLUMN_GROUP/
                      THUNAR_COLUMN_MIME_TYPE/
                      THUNAR_COLUMN_NAME/
+                     THUNAR_COLUMN_OWNER/
                      THUNAR_COLUMN_PERMISSIONS/
                      THUNAR_COLUMN_SIZE/
                      THUNAR_COLUMN_TYPE)
diff --git a/po/ChangeLog b/po/ChangeLog
index d67796f59..6a48737ee 100644
--- a/po/ChangeLog
+++ b/po/ChangeLog
@@ -1,3 +1,9 @@
+2006-03-12  Benedikt Meurer <benny@xfce.org>
+
+	* POTFILES.in: Add new files here.
+	* Thunar.pot, *.po: Merge new strings.
+	* de.po: Update the german translations.
+
 2006-03-12  Daichi Kawahata <daichi@xfce.org>
 
 	* ja.po: Updated Japanese translations.
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 587730b8f..803c0dac6 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -41,11 +41,14 @@ thunar/thunar-chooser-button.c
 thunar/thunar-chooser-dialog.c
 thunar/thunar-chooser-model.c
 thunar/thunar-clipboard-manager.c
+thunar/thunar-column-editor.c
+thunar/thunar-column-model.c
 thunar/thunar-create-dialog.c
 thunar/thunar-details-view.c
 thunar/thunar-dialogs.c
 thunar/thunar-dnd.c
 thunar/thunar-emblem-chooser.c
+thunar/thunar-enum-types.c
 thunar/thunar-file.c
 thunar/thunar-folder.c
 thunar/thunar-gdk-pixbuf-extensions.c
diff --git a/po/Thunar.pot b/po/Thunar.pot
index 49e747d3b..7157ff202 100644
--- a/po/Thunar.pot
+++ b/po/Thunar.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-03-11 18:15+0100\n"
+"POT-Creation-Date: 2006-03-12 18:55+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -160,7 +160,7 @@ msgid "The icon of the mime handler"
 msgstr ""
 
 #: ../thunar-vfs/thunar-vfs-mime-handler.c:176
-#: ../thunar/thunar-details-view.c:178
+#: ../thunar/thunar-enum-types.c:64
 msgid "Name"
 msgstr ""
 
@@ -186,7 +186,7 @@ msgstr ""
 msgid "URI too long to fit into buffer"
 msgstr ""
 
-#: ../thunar-vfs/thunar-vfs-thumb.c:176 ../thunar/thunar-details-view.c:197
+#: ../thunar-vfs/thunar-vfs-thumb.c:176 ../thunar/thunar-enum-types.c:67
 msgid "Size"
 msgstr ""
 
@@ -248,7 +248,7 @@ msgstr ""
 msgid "copy of %s"
 msgstr ""
 
-#: ../thunar-vfs/thunar-vfs-xfer.c:190 ../thunar/thunar-list-model.c:716
+#: ../thunar-vfs/thunar-vfs-xfer.c:190 ../thunar/thunar-list-model.c:752
 #: ../thunar/thunar-properties-dialog.c:658
 #, c-format
 msgid "link to %s"
@@ -562,6 +562,70 @@ msgstr ""
 msgid "There is nothing on the clipboard to paste"
 msgstr ""
 
+#: ../thunar/thunar-column-editor.c:153
+msgid "Configure Columns in the Detailed List View"
+msgstr ""
+
+#: ../thunar/thunar-column-editor.c:164
+msgid "Visible Columns"
+msgstr ""
+
+#. create the top label for the column editor dialog
+#: ../thunar/thunar-column-editor.c:177
+msgid ""
+"Chooser the order of information to appear in the\n"
+"detailed list view."
+msgstr ""
+
+#. create the "Move Up" button
+#: ../thunar/thunar-column-editor.c:218
+msgid "Move _Up"
+msgstr ""
+
+#. create the "Move Down" button
+#: ../thunar/thunar-column-editor.c:228
+msgid "Move Dow_n"
+msgstr ""
+
+#. create the "Show" button
+#: ../thunar/thunar-column-editor.c:238
+msgid "_Show"
+msgstr ""
+
+#. create the "Hide" button
+#: ../thunar/thunar-column-editor.c:244
+msgid "Hi_de"
+msgstr ""
+
+#. create the "Use Default" button
+#: ../thunar/thunar-column-editor.c:255
+msgid "Use De_fault"
+msgstr ""
+
+#: ../thunar/thunar-column-editor.c:264
+msgid "Column Sizing"
+msgstr ""
+
+#. create the label that explains the column sizing option
+#: ../thunar/thunar-column-editor.c:277
+msgid ""
+"By default columns will be automatically expanded if\n"
+"needed to ensure the text is fully visible. If you dis-\n"
+"able this behavior below the file manager will always\n"
+"use the user defined column widths."
+msgstr ""
+
+#. create the "Automatically expand columns as needed" button
+#: ../thunar/thunar-column-editor.c:286
+msgid "Automatically _expand columns as needed"
+msgstr ""
+
+#: ../thunar/thunar-column-model.c:894 ../thunar/thunar-list-model.c:702
+#: ../thunar/thunar-list-model.c:731
+#: ../thunar/thunar-permissions-chooser.c:270
+msgid "Unknown"
+msgstr ""
+
 #: ../thunar/thunar-create-dialog.c:180 ../thunar/thunar-standard-view.c:2242
 msgid "Enter the new name:"
 msgstr ""
@@ -572,27 +636,19 @@ msgstr ""
 msgid "Cannot convert filename \"%s\" to the local encoding"
 msgstr ""
 
-#.
-#. Permissions chooser
-#.
-#: ../thunar/thunar-details-view.c:212
-#: ../thunar/thunar-properties-dialog.c:414
-msgid "Permissions"
-msgstr ""
-
-#: ../thunar/thunar-details-view.c:227
-msgid "Type"
+#: ../thunar/thunar-details-view.c:130
+msgid "Configure _Columns..."
 msgstr ""
 
-#: ../thunar/thunar-details-view.c:239
-msgid "Date modified"
+#: ../thunar/thunar-details-view.c:130
+msgid "Configure the columns in the detailed list view"
 msgstr ""
 
-#: ../thunar/thunar-details-view.c:268
+#: ../thunar/thunar-details-view.c:411
 msgid "Detailed directory listing"
 msgstr ""
 
-#: ../thunar/thunar-details-view.c:269
+#: ../thunar/thunar-details-view.c:412
 msgid "Details view"
 msgstr ""
 
@@ -620,6 +676,45 @@ msgstr ""
 msgid "Failed to execute file \"%s\""
 msgstr ""
 
+#: ../thunar/thunar-enum-types.c:60
+msgid "Date Accessed"
+msgstr ""
+
+#: ../thunar/thunar-enum-types.c:61
+msgid "Date Modified"
+msgstr ""
+
+#: ../thunar/thunar-enum-types.c:62
+msgid "Group"
+msgstr ""
+
+#: ../thunar/thunar-enum-types.c:63
+msgid "MIME Type"
+msgstr ""
+
+#: ../thunar/thunar-enum-types.c:65
+msgid "Owner"
+msgstr ""
+
+#.
+#. Permissions chooser
+#.
+#: ../thunar/thunar-enum-types.c:66 ../thunar/thunar-properties-dialog.c:414
+msgid "Permissions"
+msgstr ""
+
+#: ../thunar/thunar-enum-types.c:68
+msgid "Type"
+msgstr ""
+
+#: ../thunar/thunar-enum-types.c:69
+msgid "File"
+msgstr ""
+
+#: ../thunar/thunar-enum-types.c:70
+msgid "File Name"
+msgstr ""
+
 #: ../thunar/thunar-file.c:727
 msgid "The root folder has no parent"
 msgstr ""
@@ -839,47 +934,47 @@ msgstr[1] ""
 msgid "Open With \"%s\""
 msgstr ""
 
-#: ../thunar/thunar-list-model.c:714 ../thunar/thunar-properties-dialog.c:656
+#: ../thunar/thunar-list-model.c:750 ../thunar/thunar-properties-dialog.c:656
 msgid "broken link"
 msgstr ""
 
-#: ../thunar/thunar-list-model.c:1989
+#: ../thunar/thunar-list-model.c:2075
 #, c-format
 msgid "%d item, Free space: %s"
 msgid_plural "%d items, Free space: %s"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../thunar/thunar-list-model.c:1994
+#: ../thunar/thunar-list-model.c:2080
 #, c-format
 msgid "%d item"
 msgid_plural "%d items"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../thunar/thunar-list-model.c:2010
+#: ../thunar/thunar-list-model.c:2096
 #, c-format
 msgid "\"%s\" broken link"
 msgstr ""
 
-#: ../thunar/thunar-list-model.c:2014
+#: ../thunar/thunar-list-model.c:2100
 #, c-format
 msgid "\"%s\" (%s) link to %s"
 msgstr ""
 
-#: ../thunar/thunar-list-model.c:2019
+#: ../thunar/thunar-list-model.c:2105
 #, c-format
 msgid "\"%s\" (%s) %s"
 msgstr ""
 
-#: ../thunar/thunar-list-model.c:2036
+#: ../thunar/thunar-list-model.c:2122
 #, c-format
 msgid "%d item selected (%s)"
 msgid_plural "%d items selected (%s)"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../thunar/thunar-list-model.c:2041
+#: ../thunar/thunar-list-model.c:2127
 #, c-format
 msgid "%d item selected"
 msgid_plural "%d items selected"
@@ -961,10 +1056,6 @@ msgstr ""
 msgid "Owner:"
 msgstr ""
 
-#: ../thunar/thunar-permissions-chooser.c:270
-msgid "Unknown"
-msgstr ""
-
 #: ../thunar/thunar-permissions-chooser.c:284
 #: ../thunar/thunar-permissions-chooser.c:337
 msgid "Access:"
diff --git a/po/ca.po b/po/ca.po
index 43ae027f5..ac23158a5 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Thunar 0.2.1svn\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-03-11 18:15+0100\n"
+"POT-Creation-Date: 2006-03-12 18:55+0100\n"
 "PO-Revision-Date: 2006-01-29 15:14+0900\n"
 "Last-Translator: Pau Rul·lan Ferragut <paurullan@bulma.net>\n"
 "Language-Team: Catalan\n"
@@ -177,7 +177,7 @@ msgid "The icon of the mime handler"
 msgstr ""
 
 #: ../thunar-vfs/thunar-vfs-mime-handler.c:176
-#: ../thunar/thunar-details-view.c:178
+#: ../thunar/thunar-enum-types.c:64
 msgid "Name"
 msgstr "Nom"
 
@@ -203,7 +203,7 @@ msgstr "El camí és massa llarg per caber a la memòria intermèdia"
 msgid "URI too long to fit into buffer"
 msgstr "La URI és massa llarg per caber a la memòria intermèdia"
 
-#: ../thunar-vfs/thunar-vfs-thumb.c:176 ../thunar/thunar-details-view.c:197
+#: ../thunar-vfs/thunar-vfs-thumb.c:176 ../thunar/thunar-enum-types.c:67
 msgid "Size"
 msgstr "Mida"
 
@@ -266,7 +266,7 @@ msgstr "Ha fallat"
 msgid "copy of %s"
 msgstr "còpia de %s"
 
-#: ../thunar-vfs/thunar-vfs-xfer.c:190 ../thunar/thunar-list-model.c:716
+#: ../thunar-vfs/thunar-vfs-xfer.c:190 ../thunar/thunar-list-model.c:752
 #: ../thunar/thunar-properties-dialog.c:658
 #, c-format
 msgid "link to %s"
@@ -586,6 +586,72 @@ msgstr "Altres aplicacions:"
 msgid "There is nothing on the clipboard to paste"
 msgstr "El portaretalls no té res per enganxar"
 
+#: ../thunar/thunar-column-editor.c:153
+msgid "Configure Columns in the Detailed List View"
+msgstr ""
+
+#: ../thunar/thunar-column-editor.c:164
+msgid "Visible Columns"
+msgstr ""
+
+#. create the top label for the column editor dialog
+#: ../thunar/thunar-column-editor.c:177
+msgid ""
+"Chooser the order of information to appear in the\n"
+"detailed list view."
+msgstr ""
+
+#. create the "Move Up" button
+#: ../thunar/thunar-column-editor.c:218
+msgid "Move _Up"
+msgstr ""
+
+#. create the "Move Down" button
+#: ../thunar/thunar-column-editor.c:228
+msgid "Move Dow_n"
+msgstr ""
+
+#. create the "Show" button
+#: ../thunar/thunar-column-editor.c:238
+msgid "_Show"
+msgstr ""
+
+#. create the "Hide" button
+#: ../thunar/thunar-column-editor.c:244
+#, fuzzy
+msgid "Hi_de"
+msgstr "Amagad_a"
+
+#. create the "Use Default" button
+#: ../thunar/thunar-column-editor.c:255
+msgid "Use De_fault"
+msgstr ""
+
+#: ../thunar/thunar-column-editor.c:264
+msgid "Column Sizing"
+msgstr ""
+
+#. create the label that explains the column sizing option
+#: ../thunar/thunar-column-editor.c:277
+msgid ""
+"By default columns will be automatically expanded if\n"
+"needed to ensure the text is fully visible. If you dis-\n"
+"able this behavior below the file manager will always\n"
+"use the user defined column widths."
+msgstr ""
+
+#. create the "Automatically expand columns as needed" button
+#: ../thunar/thunar-column-editor.c:286
+msgid "Automatically _expand columns as needed"
+msgstr ""
+
+#: ../thunar/thunar-column-model.c:894 ../thunar/thunar-list-model.c:702
+#: ../thunar/thunar-list-model.c:731
+#: ../thunar/thunar-permissions-chooser.c:270
+#, fuzzy
+msgid "Unknown"
+msgstr "Desconegut"
+
 #: ../thunar/thunar-create-dialog.c:180 ../thunar/thunar-standard-view.c:2242
 msgid "Enter the new name:"
 msgstr "Introduïu el nom nou:"
@@ -596,27 +662,21 @@ msgstr "Introduïu el nom nou:"
 msgid "Cannot convert filename \"%s\" to the local encoding"
 msgstr "converteix"
 
-#.
-#. Permissions chooser
-#.
-#: ../thunar/thunar-details-view.c:212
-#: ../thunar/thunar-properties-dialog.c:414
-msgid "Permissions"
-msgstr "Permisos"
-
-#: ../thunar/thunar-details-view.c:227
-msgid "Type"
-msgstr "Tipus"
+#: ../thunar/thunar-details-view.c:130
+#, fuzzy
+msgid "Configure _Columns..."
+msgstr "Configura accions personalitzades..."
 
-#: ../thunar/thunar-details-view.c:239
-msgid "Date modified"
-msgstr "Data modificada"
+#: ../thunar/thunar-details-view.c:130
+#, fuzzy
+msgid "Configure the columns in the detailed list view"
+msgstr "Pantalla in a llista"
 
-#: ../thunar/thunar-details-view.c:268
+#: ../thunar/thunar-details-view.c:411
 msgid "Detailed directory listing"
 msgstr "Llistat detallat de directoris"
 
-#: ../thunar/thunar-details-view.c:269
+#: ../thunar/thunar-details-view.c:412
 msgid "Details view"
 msgstr "Mostra detalls"
 
@@ -645,6 +705,52 @@ msgstr "_Enllaça aquí"
 msgid "Failed to execute file \"%s\""
 msgstr "No s'ha pogut executar `%s'"
 
+#: ../thunar/thunar-enum-types.c:60
+#, fuzzy
+msgid "Date Accessed"
+msgstr "Accedit:"
+
+#: ../thunar/thunar-enum-types.c:61
+#, fuzzy
+msgid "Date Modified"
+msgstr "Data modificada"
+
+#: ../thunar/thunar-enum-types.c:62
+#, fuzzy
+msgid "Group"
+msgstr "Grup:"
+
+#: ../thunar/thunar-enum-types.c:63
+#, fuzzy
+msgid "MIME Type"
+msgstr "Tipus"
+
+#: ../thunar/thunar-enum-types.c:65
+#, fuzzy
+msgid "Owner"
+msgstr "Propietari:"
+
+#.
+#. Permissions chooser
+#.
+#: ../thunar/thunar-enum-types.c:66 ../thunar/thunar-properties-dialog.c:414
+msgid "Permissions"
+msgstr "Permisos"
+
+#: ../thunar/thunar-enum-types.c:68
+msgid "Type"
+msgstr "Tipus"
+
+#: ../thunar/thunar-enum-types.c:69
+#, fuzzy
+msgid "File"
+msgstr "_Fitxers"
+
+#: ../thunar/thunar-enum-types.c:70
+#, fuzzy
+msgid "File Name"
+msgstr "Gestor de fitxers"
+
 #: ../thunar/thunar-file.c:727
 msgid "The root folder has no parent"
 msgstr "La carpeta arrel no té pare"
@@ -885,48 +991,48 @@ msgstr[1] "seleccionat"
 msgid "Open With \"%s\""
 msgstr "Obre amb"
 
-#: ../thunar/thunar-list-model.c:714 ../thunar/thunar-properties-dialog.c:656
+#: ../thunar/thunar-list-model.c:750 ../thunar/thunar-properties-dialog.c:656
 #, fuzzy
 msgid "broken link"
 msgstr "enllaç"
 
-#: ../thunar/thunar-list-model.c:1989
+#: ../thunar/thunar-list-model.c:2075
 #, fuzzy, c-format
 msgid "%d item, Free space: %s"
 msgid_plural "%d items, Free space: %s"
 msgstr[0] "element Lliure espai"
 msgstr[1] "element Lliure espai"
 
-#: ../thunar/thunar-list-model.c:1994
+#: ../thunar/thunar-list-model.c:2080
 #, fuzzy, c-format
 msgid "%d item"
 msgid_plural "%d items"
 msgstr[0] "element"
 msgstr[1] "element"
 
-#: ../thunar/thunar-list-model.c:2010
+#: ../thunar/thunar-list-model.c:2096
 #, fuzzy, c-format
 msgid "\"%s\" broken link"
 msgstr "enllaç"
 
-#: ../thunar/thunar-list-model.c:2014
+#: ../thunar/thunar-list-model.c:2100
 #, fuzzy, c-format
 msgid "\"%s\" (%s) link to %s"
 msgstr "enllaç"
 
-#: ../thunar/thunar-list-model.c:2019
+#: ../thunar/thunar-list-model.c:2105
 #, c-format
 msgid "\"%s\" (%s) %s"
 msgstr "\"%s\" (%s) %s"
 
-#: ../thunar/thunar-list-model.c:2036
+#: ../thunar/thunar-list-model.c:2122
 #, fuzzy, c-format
 msgid "%d item selected (%s)"
 msgid_plural "%d items selected (%s)"
 msgstr[0] "element seleccionat"
 msgstr[1] "element seleccionat"
 
-#: ../thunar/thunar-list-model.c:2041
+#: ../thunar/thunar-list-model.c:2127
 #, fuzzy, c-format
 msgid "%d item selected"
 msgid_plural "%d items selected"
@@ -1016,11 +1122,6 @@ msgstr "Llegit Escriptura"
 msgid "Owner:"
 msgstr "Propietari:"
 
-#: ../thunar/thunar-permissions-chooser.c:270
-#, fuzzy
-msgid "Unknown"
-msgstr "Desconegut"
-
 #: ../thunar/thunar-permissions-chooser.c:284
 #: ../thunar/thunar-permissions-chooser.c:337
 #, fuzzy
diff --git a/po/de.po b/po/de.po
index 3d2aa8581..192c08915 100644
--- a/po/de.po
+++ b/po/de.po
@@ -8,8 +8,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Thunar 0.2.3svn\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-03-11 18:15+0100\n"
-"PO-Revision-Date: 2006-03-11 18:16+0100\n"
+"POT-Creation-Date: 2006-03-12 18:55+0100\n"
+"PO-Revision-Date: 2006-03-12 18:56+0100\n"
 "Last-Translator: Benedikt Meurer <benny@xfce.org>\n"
 "Language-Team: German <de@li.org>\n"
 "MIME-Version: 1.0\n"
@@ -174,7 +174,7 @@ msgid "The icon of the mime handler"
 msgstr "Das Symbol für den Mime-Handler"
 
 #: ../thunar-vfs/thunar-vfs-mime-handler.c:176
-#: ../thunar/thunar-details-view.c:178
+#: ../thunar/thunar-enum-types.c:64
 msgid "Name"
 msgstr "Name"
 
@@ -200,7 +200,7 @@ msgstr "Puffer zu klein um Pfad aufzunehmen"
 msgid "URI too long to fit into buffer"
 msgstr "Puffer zu klein um URI aufzunehmen"
 
-#: ../thunar-vfs/thunar-vfs-thumb.c:176 ../thunar/thunar-details-view.c:197
+#: ../thunar-vfs/thunar-vfs-thumb.c:176 ../thunar/thunar-enum-types.c:67
 msgid "Size"
 msgstr "Größe"
 
@@ -262,7 +262,7 @@ msgstr "Konnte /proc/mounts nicht öffnen: %s"
 msgid "copy of %s"
 msgstr "Kopie von %s"
 
-#: ../thunar-vfs/thunar-vfs-xfer.c:190 ../thunar/thunar-list-model.c:716
+#: ../thunar-vfs/thunar-vfs-xfer.c:190 ../thunar/thunar-list-model.c:752
 #: ../thunar/thunar-properties-dialog.c:658
 #, c-format
 msgid "link to %s"
@@ -585,6 +585,77 @@ msgid "There is nothing on the clipboard to paste"
 msgstr ""
 "In der Zwischenablage befindet sich nichts was hier eingefügt werden könnte"
 
+#: ../thunar/thunar-column-editor.c:153
+msgid "Configure Columns in the Detailed List View"
+msgstr "Die Spalten in der Detailansicht festlegen"
+
+#: ../thunar/thunar-column-editor.c:164
+msgid "Visible Columns"
+msgstr "Anzuzeigende Spalten"
+
+#. create the top label for the column editor dialog
+#: ../thunar/thunar-column-editor.c:177
+msgid ""
+"Chooser the order of information to appear in the\n"
+"detailed list view."
+msgstr ""
+"Legen Sie die Reihenfolge fest, in der in der Detailansicht\n"
+"Informationen angezeigt werden sollen."
+
+#. create the "Move Up" button
+#: ../thunar/thunar-column-editor.c:218
+msgid "Move _Up"
+msgstr "_Raufschieben"
+
+#. create the "Move Down" button
+#: ../thunar/thunar-column-editor.c:228
+msgid "Move Dow_n"
+msgstr "R_unterschieben"
+
+#. create the "Show" button
+#: ../thunar/thunar-column-editor.c:238
+msgid "_Show"
+msgstr "_Anzeigen"
+
+#. create the "Hide" button
+#: ../thunar/thunar-column-editor.c:244
+msgid "Hi_de"
+msgstr "_Verbergen"
+
+#. create the "Use Default" button
+#: ../thunar/thunar-column-editor.c:255
+msgid "Use De_fault"
+msgstr "V_orgabe verwenden"
+
+#: ../thunar/thunar-column-editor.c:264
+msgid "Column Sizing"
+msgstr "Spaltengröße"
+
+#. create the label that explains the column sizing option
+#: ../thunar/thunar-column-editor.c:277
+msgid ""
+"By default columns will be automatically expanded if\n"
+"needed to ensure the text is fully visible. If you dis-\n"
+"able this behavior below the file manager will always\n"
+"use the user defined column widths."
+msgstr ""
+"Standardmäßig werden die Listenspalten automatisch\n"
+"vergrößert, falls notwendig, so daß der Text vollstän-\n"
+"dig angezeigt werden kann. Wird diese Einstellung de-\n"
+"aktiviert, merkt sich der Dateimanager die benutzerde-\n"
+"finierten Spaltengrößen."
+
+#. create the "Automatically expand columns as needed" button
+#: ../thunar/thunar-column-editor.c:286
+msgid "Automatically _expand columns as needed"
+msgstr "Listenspalten automatisch ver_größern"
+
+#: ../thunar/thunar-column-model.c:894 ../thunar/thunar-list-model.c:702
+#: ../thunar/thunar-list-model.c:731
+#: ../thunar/thunar-permissions-chooser.c:270
+msgid "Unknown"
+msgstr "Unbekannt"
+
 #: ../thunar/thunar-create-dialog.c:180 ../thunar/thunar-standard-view.c:2242
 msgid "Enter the new name:"
 msgstr "Neuen Namen eingeben:"
@@ -597,27 +668,19 @@ msgstr ""
 "Der Dateiname »%s« kann nicht in den Dateisystem Zeichensatz umgewandelt "
 "werden"
 
-#.
-#. Permissions chooser
-#.
-#: ../thunar/thunar-details-view.c:212
-#: ../thunar/thunar-properties-dialog.c:414
-msgid "Permissions"
-msgstr "Berechtigungen"
+#: ../thunar/thunar-details-view.c:130
+msgid "Configure _Columns..."
+msgstr "Listens_palten festlegen..."
 
-#: ../thunar/thunar-details-view.c:227
-msgid "Type"
-msgstr "Typ"
+#: ../thunar/thunar-details-view.c:130
+msgid "Configure the columns in the detailed list view"
+msgstr "Die Listenspalten in der Detailansicht festlegen"
 
-#: ../thunar/thunar-details-view.c:239
-msgid "Date modified"
-msgstr "Letzte Änderung"
-
-#: ../thunar/thunar-details-view.c:268
+#: ../thunar/thunar-details-view.c:411
 msgid "Detailed directory listing"
 msgstr "Detailierte Verzeichnisansicht"
 
-#: ../thunar/thunar-details-view.c:269
+#: ../thunar/thunar-details-view.c:412
 msgid "Details view"
 msgstr "Detailansicht"
 
@@ -645,6 +708,45 @@ msgstr "Hierher verknü_pfen"
 msgid "Failed to execute file \"%s\""
 msgstr "Konnte »%s« nicht umbenennen"
 
+#: ../thunar/thunar-enum-types.c:60
+msgid "Date Accessed"
+msgstr "Zugriffsdatum"
+
+#: ../thunar/thunar-enum-types.c:61
+msgid "Date Modified"
+msgstr "Änderungsdatum"
+
+#: ../thunar/thunar-enum-types.c:62
+msgid "Group"
+msgstr "Gruppe"
+
+#: ../thunar/thunar-enum-types.c:63
+msgid "MIME Type"
+msgstr "MIME-Typ"
+
+#: ../thunar/thunar-enum-types.c:65
+msgid "Owner"
+msgstr "Besitzer"
+
+#.
+#. Permissions chooser
+#.
+#: ../thunar/thunar-enum-types.c:66 ../thunar/thunar-properties-dialog.c:414
+msgid "Permissions"
+msgstr "Berechtigungen"
+
+#: ../thunar/thunar-enum-types.c:68
+msgid "Type"
+msgstr "Typ"
+
+#: ../thunar/thunar-enum-types.c:69
+msgid "File"
+msgstr "Datei"
+
+#: ../thunar/thunar-enum-types.c:70
+msgid "File Name"
+msgstr "Dateiname"
+
 #: ../thunar/thunar-file.c:727
 msgid "The root folder has no parent"
 msgstr "Das Wurzelverzeichnis hat kein übergeordnetes Verzeichnis"
@@ -870,47 +972,47 @@ msgstr[1] "Die ausgewählten Dateien mit den Standardanwendungen öffnen"
 msgid "Open With \"%s\""
 msgstr "Mit »%s« öffnen"
 
-#: ../thunar/thunar-list-model.c:714 ../thunar/thunar-properties-dialog.c:656
+#: ../thunar/thunar-list-model.c:750 ../thunar/thunar-properties-dialog.c:656
 msgid "broken link"
 msgstr "Verknüpfung (fehlerhaft)"
 
-#: ../thunar/thunar-list-model.c:1989
+#: ../thunar/thunar-list-model.c:2075
 #, c-format
 msgid "%d item, Free space: %s"
 msgid_plural "%d items, Free space: %s"
 msgstr[0] "%d Objekt, Freier Speicher: %s"
 msgstr[1] "%d Objekte, Freier Speicher: %s"
 
-#: ../thunar/thunar-list-model.c:1994
+#: ../thunar/thunar-list-model.c:2080
 #, c-format
 msgid "%d item"
 msgid_plural "%d items"
 msgstr[0] "%d Objekt"
 msgstr[1] "%d Objekte"
 
-#: ../thunar/thunar-list-model.c:2010
+#: ../thunar/thunar-list-model.c:2096
 #, c-format
 msgid "\"%s\" broken link"
 msgstr "»%s« Verknüpfung (fehlerhaft)"
 
-#: ../thunar/thunar-list-model.c:2014
+#: ../thunar/thunar-list-model.c:2100
 #, c-format
 msgid "\"%s\" (%s) link to %s"
 msgstr "»%s« (%s) Verknüpfung mit %s"
 
-#: ../thunar/thunar-list-model.c:2019
+#: ../thunar/thunar-list-model.c:2105
 #, c-format
 msgid "\"%s\" (%s) %s"
 msgstr "»%s« (%s) %s"
 
-#: ../thunar/thunar-list-model.c:2036
+#: ../thunar/thunar-list-model.c:2122
 #, c-format
 msgid "%d item selected (%s)"
 msgid_plural "%d items selected (%s)"
 msgstr[0] "%d Objekt ausgewählt (%s)"
 msgstr[1] "%d Objekte ausgewählt (%s)"
 
-#: ../thunar/thunar-list-model.c:2041
+#: ../thunar/thunar-list-model.c:2127
 #, c-format
 msgid "%d item selected"
 msgid_plural "%d items selected"
@@ -992,10 +1094,6 @@ msgstr "Lesen & Schreiben"
 msgid "Owner:"
 msgstr "Besitzer:"
 
-#: ../thunar/thunar-permissions-chooser.c:270
-msgid "Unknown"
-msgstr "Unbekannt"
-
 #: ../thunar/thunar-permissions-chooser.c:284
 #: ../thunar/thunar-permissions-chooser.c:337
 msgid "Access:"
diff --git a/po/el.po b/po/el.po
index f8082e429..fe3d063e9 100644
--- a/po/el.po
+++ b/po/el.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Thunar 0.2.1svn\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-03-11 18:15+0100\n"
+"POT-Creation-Date: 2006-03-12 18:55+0100\n"
 "PO-Revision-Date: 2006-03-03 21:38+0200\n"
 "Last-Translator: Stavros Giannouris <stavrosg2002@freemail.gr>\n"
 "Language-Team: Greek <nls@tux.hellug.gr>\n"
@@ -175,7 +175,7 @@ msgid "The icon of the mime handler"
 msgstr ""
 
 #: ../thunar-vfs/thunar-vfs-mime-handler.c:176
-#: ../thunar/thunar-details-view.c:178
+#: ../thunar/thunar-enum-types.c:64
 msgid "Name"
 msgstr "Όνομα"
 
@@ -201,7 +201,7 @@ msgstr "Η διαδρομή είναι υπερβολικά μεγάλη για
 msgid "URI too long to fit into buffer"
 msgstr "Το URI είναι υπερβολικά μεγάλο για να χωρέσει στην προσωρινή μνήμη"
 
-#: ../thunar-vfs/thunar-vfs-thumb.c:176 ../thunar/thunar-details-view.c:197
+#: ../thunar-vfs/thunar-vfs-thumb.c:176 ../thunar/thunar-enum-types.c:67
 msgid "Size"
 msgstr "Μέγεθος"
 
@@ -263,7 +263,7 @@ msgstr "Το άνοιγμα του /proc/mounts απέτυχε: %s"
 msgid "copy of %s"
 msgstr "αντίγραφο του %s"
 
-#: ../thunar-vfs/thunar-vfs-xfer.c:190 ../thunar/thunar-list-model.c:716
+#: ../thunar-vfs/thunar-vfs-xfer.c:190 ../thunar/thunar-list-model.c:752
 #: ../thunar/thunar-properties-dialog.c:658
 #, c-format
 msgid "link to %s"
@@ -582,6 +582,71 @@ msgstr "Άλλες Εφαρμογές"
 msgid "There is nothing on the clipboard to paste"
 msgstr "Δεν υπάρχει τίποτα στο πρόχειρο για να επικολληθεί."
 
+#: ../thunar/thunar-column-editor.c:153
+msgid "Configure Columns in the Detailed List View"
+msgstr ""
+
+#: ../thunar/thunar-column-editor.c:164
+msgid "Visible Columns"
+msgstr ""
+
+#. create the top label for the column editor dialog
+#: ../thunar/thunar-column-editor.c:177
+msgid ""
+"Chooser the order of information to appear in the\n"
+"detailed list view."
+msgstr ""
+
+#. create the "Move Up" button
+#: ../thunar/thunar-column-editor.c:218
+msgid "Move _Up"
+msgstr ""
+
+#. create the "Move Down" button
+#: ../thunar/thunar-column-editor.c:228
+msgid "Move Dow_n"
+msgstr ""
+
+#. create the "Show" button
+#: ../thunar/thunar-column-editor.c:238
+msgid "_Show"
+msgstr ""
+
+#. create the "Hide" button
+#: ../thunar/thunar-column-editor.c:244
+#, fuzzy
+msgid "Hi_de"
+msgstr "Κ_ρυφό"
+
+#. create the "Use Default" button
+#: ../thunar/thunar-column-editor.c:255
+msgid "Use De_fault"
+msgstr ""
+
+#: ../thunar/thunar-column-editor.c:264
+msgid "Column Sizing"
+msgstr ""
+
+#. create the label that explains the column sizing option
+#: ../thunar/thunar-column-editor.c:277
+msgid ""
+"By default columns will be automatically expanded if\n"
+"needed to ensure the text is fully visible. If you dis-\n"
+"able this behavior below the file manager will always\n"
+"use the user defined column widths."
+msgstr ""
+
+#. create the "Automatically expand columns as needed" button
+#: ../thunar/thunar-column-editor.c:286
+msgid "Automatically _expand columns as needed"
+msgstr ""
+
+#: ../thunar/thunar-column-model.c:894 ../thunar/thunar-list-model.c:702
+#: ../thunar/thunar-list-model.c:731
+#: ../thunar/thunar-permissions-chooser.c:270
+msgid "Unknown"
+msgstr "Άγνωστο"
+
 #: ../thunar/thunar-create-dialog.c:180 ../thunar/thunar-standard-view.c:2242
 msgid "Enter the new name:"
 msgstr "Εισάγετε νέο όνομα:"
@@ -594,27 +659,21 @@ msgstr ""
 "Δεν είναι δυνατή η μετατροπή του ονόματος αρχείου \"%s\" στην τοπική "
 "κωδικοποίηση"
 
-#.
-#. Permissions chooser
-#.
-#: ../thunar/thunar-details-view.c:212
-#: ../thunar/thunar-properties-dialog.c:414
-msgid "Permissions"
-msgstr "Δικαιώματα"
-
-#: ../thunar/thunar-details-view.c:227
-msgid "Type"
-msgstr "Τύπος"
+#: ../thunar/thunar-details-view.c:130
+#, fuzzy
+msgid "Configure _Columns..."
+msgstr "Ρυθμίσεις προσαρμο_σμένων ενεργειών..."
 
-#: ../thunar/thunar-details-view.c:239
-msgid "Date modified"
-msgstr "Ημερομηνία Τροποποίησης"
+#: ../thunar/thunar-details-view.c:130
+#, fuzzy
+msgid "Configure the columns in the detailed list view"
+msgstr "Εμφάνιση περιεχομένων φακέλου ως λεπτομερή λίστα"
 
-#: ../thunar/thunar-details-view.c:268
+#: ../thunar/thunar-details-view.c:411
 msgid "Detailed directory listing"
 msgstr "Λεπτομερής απεικόνιση καταλόγων"
 
-#: ../thunar/thunar-details-view.c:269
+#: ../thunar/thunar-details-view.c:412
 msgid "Details view"
 msgstr "Προβολή λεπτομεριών"
 
@@ -642,6 +701,52 @@ msgstr "Δ_ημιουργία δεσμού εδώ"
 msgid "Failed to execute file \"%s\""
 msgstr "Η εκτέλεση του \"%s\" απέτυχε"
 
+#: ../thunar/thunar-enum-types.c:60
+#, fuzzy
+msgid "Date Accessed"
+msgstr "Προσπελάστηκε:"
+
+#: ../thunar/thunar-enum-types.c:61
+#, fuzzy
+msgid "Date Modified"
+msgstr "Ημερομηνία Τροποποίησης"
+
+#: ../thunar/thunar-enum-types.c:62
+#, fuzzy
+msgid "Group"
+msgstr "Ομάδα:"
+
+#: ../thunar/thunar-enum-types.c:63
+#, fuzzy
+msgid "MIME Type"
+msgstr "Τύπος"
+
+#: ../thunar/thunar-enum-types.c:65
+#, fuzzy
+msgid "Owner"
+msgstr "Ιδιοκτήτης:"
+
+#.
+#. Permissions chooser
+#.
+#: ../thunar/thunar-enum-types.c:66 ../thunar/thunar-properties-dialog.c:414
+msgid "Permissions"
+msgstr "Δικαιώματα"
+
+#: ../thunar/thunar-enum-types.c:68
+msgid "Type"
+msgstr "Τύπος"
+
+#: ../thunar/thunar-enum-types.c:69
+#, fuzzy
+msgid "File"
+msgstr "_Αρχείο"
+
+#: ../thunar/thunar-enum-types.c:70
+#, fuzzy
+msgid "File Name"
+msgstr "Διαχειριστής Αρχείων"
+
 #: ../thunar/thunar-file.c:727
 msgid "The root folder has no parent"
 msgstr "Ο ριζικός φάκελος δεν έχει γονεϊκό φάκελο"
@@ -862,47 +967,47 @@ msgstr[1] "Άνοιγμα των επιλεγμένων αρχείων με τι
 msgid "Open With \"%s\""
 msgstr "Άνοιγμα Με το \"%s\""
 
-#: ../thunar/thunar-list-model.c:714 ../thunar/thunar-properties-dialog.c:656
+#: ../thunar/thunar-list-model.c:750 ../thunar/thunar-properties-dialog.c:656
 msgid "broken link"
 msgstr "σπασμένος δεσμός"
 
-#: ../thunar/thunar-list-model.c:1989
+#: ../thunar/thunar-list-model.c:2075
 #, c-format
 msgid "%d item, Free space: %s"
 msgid_plural "%d items, Free space: %s"
 msgstr[0] "%d αντικείμενο, Ελεύθερος χώρος: %s"
 msgstr[1] "%d αντικείμενα, Ελεύθερος χώρος: %s"
 
-#: ../thunar/thunar-list-model.c:1994
+#: ../thunar/thunar-list-model.c:2080
 #, c-format
 msgid "%d item"
 msgid_plural "%d items"
 msgstr[0] "%d αντικείμενο"
 msgstr[1] "%d αντικείμενα"
 
-#: ../thunar/thunar-list-model.c:2010
+#: ../thunar/thunar-list-model.c:2096
 #, c-format
 msgid "\"%s\" broken link"
 msgstr "σπασμένος δεσμός \"%s\""
 
-#: ../thunar/thunar-list-model.c:2014
+#: ../thunar/thunar-list-model.c:2100
 #, c-format
 msgid "\"%s\" (%s) link to %s"
 msgstr "\"%s\" (%s) δεσμός προς το %s"
 
-#: ../thunar/thunar-list-model.c:2019
+#: ../thunar/thunar-list-model.c:2105
 #, c-format
 msgid "\"%s\" (%s) %s"
 msgstr "\"%s\" (%s) %s"
 
-#: ../thunar/thunar-list-model.c:2036
+#: ../thunar/thunar-list-model.c:2122
 #, c-format
 msgid "%d item selected (%s)"
 msgid_plural "%d items selected (%s)"
 msgstr[0] "%d επιλεγμένο αντικείμενο (%s)"
 msgstr[1] "%d επιλεγμένα αντικείμενα (%s)"
 
-#: ../thunar/thunar-list-model.c:2041
+#: ../thunar/thunar-list-model.c:2127
 #, c-format
 msgid "%d item selected"
 msgid_plural "%d items selected"
@@ -984,10 +1089,6 @@ msgstr "Εγγραφή & Ανάγνωση"
 msgid "Owner:"
 msgstr "Ιδιοκτήτης:"
 
-#: ../thunar/thunar-permissions-chooser.c:270
-msgid "Unknown"
-msgstr "Άγνωστο"
-
 #: ../thunar/thunar-permissions-chooser.c:284
 #: ../thunar/thunar-permissions-chooser.c:337
 msgid "Access:"
diff --git a/po/es.po b/po/es.po
index 752e0293f..2966a9b80 100644
--- a/po/es.po
+++ b/po/es.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Thunar 0.2.1svn\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-03-11 18:15+0100\n"
+"POT-Creation-Date: 2006-03-12 18:55+0100\n"
 "PO-Revision-Date: 2005-10-14 23:57+0900\n"
 "Last-Translator: Pablo Hernández-M. Saiz <homeless3d@gmail.com>\n"
 "Language-Team: Spanish <es@li.org>\n"
@@ -174,7 +174,7 @@ msgid "The icon of the mime handler"
 msgstr ""
 
 #: ../thunar-vfs/thunar-vfs-mime-handler.c:176
-#: ../thunar/thunar-details-view.c:178
+#: ../thunar/thunar-enum-types.c:64
 msgid "Name"
 msgstr "Nombre"
 
@@ -200,7 +200,7 @@ msgstr ""
 msgid "URI too long to fit into buffer"
 msgstr ""
 
-#: ../thunar-vfs/thunar-vfs-thumb.c:176 ../thunar/thunar-details-view.c:197
+#: ../thunar-vfs/thunar-vfs-thumb.c:176 ../thunar/thunar-enum-types.c:67
 msgid "Size"
 msgstr "Tamaño"
 
@@ -264,7 +264,7 @@ msgstr "Imposible renombrar %s."
 msgid "copy of %s"
 msgstr ""
 
-#: ../thunar-vfs/thunar-vfs-xfer.c:190 ../thunar/thunar-list-model.c:716
+#: ../thunar-vfs/thunar-vfs-xfer.c:190 ../thunar/thunar-list-model.c:752
 #: ../thunar/thunar-properties-dialog.c:658
 #, c-format
 msgid "link to %s"
@@ -589,6 +589,71 @@ msgstr "Otra aplicación..."
 msgid "There is nothing on the clipboard to paste"
 msgstr "No hay nada en el portapapeles que pueda ser pegado"
 
+#: ../thunar/thunar-column-editor.c:153
+msgid "Configure Columns in the Detailed List View"
+msgstr ""
+
+#: ../thunar/thunar-column-editor.c:164
+msgid "Visible Columns"
+msgstr ""
+
+#. create the top label for the column editor dialog
+#: ../thunar/thunar-column-editor.c:177
+msgid ""
+"Chooser the order of information to appear in the\n"
+"detailed list view."
+msgstr ""
+
+#. create the "Move Up" button
+#: ../thunar/thunar-column-editor.c:218
+msgid "Move _Up"
+msgstr ""
+
+#. create the "Move Down" button
+#: ../thunar/thunar-column-editor.c:228
+msgid "Move Dow_n"
+msgstr ""
+
+#. create the "Show" button
+#: ../thunar/thunar-column-editor.c:238
+msgid "_Show"
+msgstr ""
+
+#. create the "Hide" button
+#: ../thunar/thunar-column-editor.c:244
+#, fuzzy
+msgid "Hi_de"
+msgstr "_Oculto/a"
+
+#. create the "Use Default" button
+#: ../thunar/thunar-column-editor.c:255
+msgid "Use De_fault"
+msgstr ""
+
+#: ../thunar/thunar-column-editor.c:264
+msgid "Column Sizing"
+msgstr ""
+
+#. create the label that explains the column sizing option
+#: ../thunar/thunar-column-editor.c:277
+msgid ""
+"By default columns will be automatically expanded if\n"
+"needed to ensure the text is fully visible. If you dis-\n"
+"able this behavior below the file manager will always\n"
+"use the user defined column widths."
+msgstr ""
+
+#. create the "Automatically expand columns as needed" button
+#: ../thunar/thunar-column-editor.c:286
+msgid "Automatically _expand columns as needed"
+msgstr ""
+
+#: ../thunar/thunar-column-model.c:894 ../thunar/thunar-list-model.c:702
+#: ../thunar/thunar-list-model.c:731
+#: ../thunar/thunar-permissions-chooser.c:270
+msgid "Unknown"
+msgstr ""
+
 #: ../thunar/thunar-create-dialog.c:180 ../thunar/thunar-standard-view.c:2242
 msgid "Enter the new name:"
 msgstr ""
@@ -599,27 +664,19 @@ msgstr ""
 msgid "Cannot convert filename \"%s\" to the local encoding"
 msgstr ""
 
-#.
-#. Permissions chooser
-#.
-#: ../thunar/thunar-details-view.c:212
-#: ../thunar/thunar-properties-dialog.c:414
-msgid "Permissions"
-msgstr "Permisos"
-
-#: ../thunar/thunar-details-view.c:227
-msgid "Type"
-msgstr "Tipo"
+#: ../thunar/thunar-details-view.c:130
+msgid "Configure _Columns..."
+msgstr ""
 
-#: ../thunar/thunar-details-view.c:239
-msgid "Date modified"
-msgstr "Fecha de modificación"
+#: ../thunar/thunar-details-view.c:130
+msgid "Configure the columns in the detailed list view"
+msgstr ""
 
-#: ../thunar/thunar-details-view.c:268
+#: ../thunar/thunar-details-view.c:411
 msgid "Detailed directory listing"
 msgstr "Listado detallado del directorio"
 
-#: ../thunar/thunar-details-view.c:269
+#: ../thunar/thunar-details-view.c:412
 msgid "Details view"
 msgstr "Vista detallada"
 
@@ -649,6 +706,50 @@ msgstr ""
 msgid "Failed to execute file \"%s\""
 msgstr "Imposible renombrar %s."
 
+#: ../thunar/thunar-enum-types.c:60
+#, fuzzy
+msgid "Date Accessed"
+msgstr "Accedido:"
+
+#: ../thunar/thunar-enum-types.c:61
+#, fuzzy
+msgid "Date Modified"
+msgstr "Fecha de modificación"
+
+#: ../thunar/thunar-enum-types.c:62
+msgid "Group"
+msgstr ""
+
+#: ../thunar/thunar-enum-types.c:63
+#, fuzzy
+msgid "MIME Type"
+msgstr "Tipo"
+
+#: ../thunar/thunar-enum-types.c:65
+msgid "Owner"
+msgstr ""
+
+#.
+#. Permissions chooser
+#.
+#: ../thunar/thunar-enum-types.c:66 ../thunar/thunar-properties-dialog.c:414
+msgid "Permissions"
+msgstr "Permisos"
+
+#: ../thunar/thunar-enum-types.c:68
+msgid "Type"
+msgstr "Tipo"
+
+#: ../thunar/thunar-enum-types.c:69
+#, fuzzy
+msgid "File"
+msgstr "_Archivo"
+
+#: ../thunar/thunar-enum-types.c:70
+#, fuzzy
+msgid "File Name"
+msgstr "Gestor de archivos"
+
 #: ../thunar/thunar-file.c:727
 msgid "The root folder has no parent"
 msgstr ""
@@ -877,47 +978,47 @@ msgstr[1] ""
 msgid "Open With \"%s\""
 msgstr "Abrir con"
 
-#: ../thunar/thunar-list-model.c:714 ../thunar/thunar-properties-dialog.c:656
+#: ../thunar/thunar-list-model.c:750 ../thunar/thunar-properties-dialog.c:656
 msgid "broken link"
 msgstr ""
 
-#: ../thunar/thunar-list-model.c:1989
+#: ../thunar/thunar-list-model.c:2075
 #, c-format
 msgid "%d item, Free space: %s"
 msgid_plural "%d items, Free space: %s"
 msgstr[0] "%d elemento, espacio libre %s"
 msgstr[1] "%d elementos, espacio libre %s"
 
-#: ../thunar/thunar-list-model.c:1994
+#: ../thunar/thunar-list-model.c:2080
 #, c-format
 msgid "%d item"
 msgid_plural "%d items"
 msgstr[0] "%d elemento"
 msgstr[1] "%d elementos"
 
-#: ../thunar/thunar-list-model.c:2010
+#: ../thunar/thunar-list-model.c:2096
 #, c-format
 msgid "\"%s\" broken link"
 msgstr ""
 
-#: ../thunar/thunar-list-model.c:2014
+#: ../thunar/thunar-list-model.c:2100
 #, fuzzy, c-format
 msgid "\"%s\" (%s) link to %s"
 msgstr "\"%s\" (%s) %s"
 
-#: ../thunar/thunar-list-model.c:2019
+#: ../thunar/thunar-list-model.c:2105
 #, c-format
 msgid "\"%s\" (%s) %s"
 msgstr "\"%s\" (%s) %s"
 
-#: ../thunar/thunar-list-model.c:2036
+#: ../thunar/thunar-list-model.c:2122
 #, c-format
 msgid "%d item selected (%s)"
 msgid_plural "%d items selected (%s)"
 msgstr[0] "%d elemento seleccionado (%s)"
 msgstr[1] "%d elementos seleccionados (%s)"
 
-#: ../thunar/thunar-list-model.c:2041
+#: ../thunar/thunar-list-model.c:2127
 #, c-format
 msgid "%d item selected"
 msgid_plural "%d items selected"
@@ -1000,10 +1101,6 @@ msgstr ""
 msgid "Owner:"
 msgstr ""
 
-#: ../thunar/thunar-permissions-chooser.c:270
-msgid "Unknown"
-msgstr ""
-
 #: ../thunar/thunar-permissions-chooser.c:284
 #: ../thunar/thunar-permissions-chooser.c:337
 #, fuzzy
diff --git a/po/eu.po b/po/eu.po
index 9b91765d8..f6d4db9b0 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Thunar 0.2.1svn\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-03-11 18:15+0100\n"
+"POT-Creation-Date: 2006-03-12 18:55+0100\n"
 "PO-Revision-Date: 2006-02-22 12:03+0100\n"
 "Last-Translator: Piarres Beobide <pi@beobide.net>\n"
 "Language-Team: Basque <translation-team-eu@lists.sourceforge.net>\n"
@@ -174,7 +174,7 @@ msgid "The icon of the mime handler"
 msgstr "Mime kudeatzailearen ikonoa"
 
 #: ../thunar-vfs/thunar-vfs-mime-handler.c:176
-#: ../thunar/thunar-details-view.c:178
+#: ../thunar/thunar-enum-types.c:64
 msgid "Name"
 msgstr "Izena"
 
@@ -200,7 +200,7 @@ msgstr "Bidea luzeegia buferrean sartzeko"
 msgid "URI too long to fit into buffer"
 msgstr "URI-a luzeegia buferrean sartzeko"
 
-#: ../thunar-vfs/thunar-vfs-thumb.c:176 ../thunar/thunar-details-view.c:197
+#: ../thunar-vfs/thunar-vfs-thumb.c:176 ../thunar/thunar-enum-types.c:67
 msgid "Size"
 msgstr "Tamaina"
 
@@ -262,7 +262,7 @@ msgstr "Huts /proc/mounts irekitzerkaoan: %s"
 msgid "copy of %s"
 msgstr "%s-ren kopia"
 
-#: ../thunar-vfs/thunar-vfs-xfer.c:190 ../thunar/thunar-list-model.c:716
+#: ../thunar-vfs/thunar-vfs-xfer.c:190 ../thunar/thunar-list-model.c:752
 #: ../thunar/thunar-properties-dialog.c:658
 #, c-format
 msgid "link to %s"
@@ -580,6 +580,71 @@ msgstr "BEste Aplikazioak"
 msgid "There is nothing on the clipboard to paste"
 msgstr "Ez dago itsasteko ezer arbelan "
 
+#: ../thunar/thunar-column-editor.c:153
+msgid "Configure Columns in the Detailed List View"
+msgstr ""
+
+#: ../thunar/thunar-column-editor.c:164
+msgid "Visible Columns"
+msgstr ""
+
+#. create the top label for the column editor dialog
+#: ../thunar/thunar-column-editor.c:177
+msgid ""
+"Chooser the order of information to appear in the\n"
+"detailed list view."
+msgstr ""
+
+#. create the "Move Up" button
+#: ../thunar/thunar-column-editor.c:218
+msgid "Move _Up"
+msgstr ""
+
+#. create the "Move Down" button
+#: ../thunar/thunar-column-editor.c:228
+msgid "Move Dow_n"
+msgstr ""
+
+#. create the "Show" button
+#: ../thunar/thunar-column-editor.c:238
+msgid "_Show"
+msgstr ""
+
+#. create the "Hide" button
+#: ../thunar/thunar-column-editor.c:244
+#, fuzzy
+msgid "Hi_de"
+msgstr "_Ezkutatua"
+
+#. create the "Use Default" button
+#: ../thunar/thunar-column-editor.c:255
+msgid "Use De_fault"
+msgstr ""
+
+#: ../thunar/thunar-column-editor.c:264
+msgid "Column Sizing"
+msgstr ""
+
+#. create the label that explains the column sizing option
+#: ../thunar/thunar-column-editor.c:277
+msgid ""
+"By default columns will be automatically expanded if\n"
+"needed to ensure the text is fully visible. If you dis-\n"
+"able this behavior below the file manager will always\n"
+"use the user defined column widths."
+msgstr ""
+
+#. create the "Automatically expand columns as needed" button
+#: ../thunar/thunar-column-editor.c:286
+msgid "Automatically _expand columns as needed"
+msgstr ""
+
+#: ../thunar/thunar-column-model.c:894 ../thunar/thunar-list-model.c:702
+#: ../thunar/thunar-list-model.c:731
+#: ../thunar/thunar-permissions-chooser.c:270
+msgid "Unknown"
+msgstr "Ezezaguna"
+
 #: ../thunar/thunar-create-dialog.c:180 ../thunar/thunar-standard-view.c:2242
 msgid "Enter the new name:"
 msgstr "Izen berria idatzi:"
@@ -590,27 +655,21 @@ msgstr "Izen berria idatzi:"
 msgid "Cannot convert filename \"%s\" to the local encoding"
 msgstr "Ezin da `%s' fitxategi izena kodeketa lokalera bihurtu"
 
-#.
-#. Permissions chooser
-#.
-#: ../thunar/thunar-details-view.c:212
-#: ../thunar/thunar-properties-dialog.c:414
-msgid "Permissions"
-msgstr "Baimenak"
-
-#: ../thunar/thunar-details-view.c:227
-msgid "Type"
-msgstr "Mota"
+#: ../thunar/thunar-details-view.c:130
+#, fuzzy
+msgid "Configure _Columns..."
+msgstr "E_kintza pertsonalizatuak konfiguratu..."
 
-#: ../thunar/thunar-details-view.c:239
-msgid "Date modified"
-msgstr "Data aldaturik"
+#: ../thunar/thunar-details-view.c:130
+#, fuzzy
+msgid "Configure the columns in the detailed list view"
+msgstr "Karpeta edukia zehazturiko zerrenda ikuspegian bistarazi"
 
-#: ../thunar/thunar-details-view.c:268
+#: ../thunar/thunar-details-view.c:411
 msgid "Detailed directory listing"
 msgstr "Xeheturiko direktorio zerrendatzea"
 
-#: ../thunar/thunar-details-view.c:269
+#: ../thunar/thunar-details-view.c:412
 msgid "Details view"
 msgstr "Xeheturiko ikuspegia"
 
@@ -639,6 +698,52 @@ msgstr "Hona _lotu"
 msgid "Failed to execute file \"%s\""
 msgstr "Huts \"%s\" fitxategia abiaraztean"
 
+#: ../thunar/thunar-enum-types.c:60
+#, fuzzy
+msgid "Date Accessed"
+msgstr "Erabilia:"
+
+#: ../thunar/thunar-enum-types.c:61
+#, fuzzy
+msgid "Date Modified"
+msgstr "Data aldaturik"
+
+#: ../thunar/thunar-enum-types.c:62
+#, fuzzy
+msgid "Group"
+msgstr "Taldea:"
+
+#: ../thunar/thunar-enum-types.c:63
+#, fuzzy
+msgid "MIME Type"
+msgstr "Mota"
+
+#: ../thunar/thunar-enum-types.c:65
+#, fuzzy
+msgid "Owner"
+msgstr "Jabea:"
+
+#.
+#. Permissions chooser
+#.
+#: ../thunar/thunar-enum-types.c:66 ../thunar/thunar-properties-dialog.c:414
+msgid "Permissions"
+msgstr "Baimenak"
+
+#: ../thunar/thunar-enum-types.c:68
+msgid "Type"
+msgstr "Mota"
+
+#: ../thunar/thunar-enum-types.c:69
+#, fuzzy
+msgid "File"
+msgstr "_Fitxategia"
+
+#: ../thunar/thunar-enum-types.c:70
+#, fuzzy
+msgid "File Name"
+msgstr "Fitxategi Kudeatzailea"
+
 #: ../thunar/thunar-file.c:727
 msgid "The root folder has no parent"
 msgstr "Erro karpetak ez du gurasorik"
@@ -859,47 +964,47 @@ msgstr[1] "Aukeratutako fitxategiak lehenetsiriko aplikazioak ireki"
 msgid "Open With \"%s\""
 msgstr "\"%s\"-rekin Ireki"
 
-#: ../thunar/thunar-list-model.c:714 ../thunar/thunar-properties-dialog.c:656
+#: ../thunar/thunar-list-model.c:750 ../thunar/thunar-properties-dialog.c:656
 msgid "broken link"
 msgstr "Apurturiko lotura"
 
-#: ../thunar/thunar-list-model.c:1989
+#: ../thunar/thunar-list-model.c:2075
 #, c-format
 msgid "%d item, Free space: %s"
 msgid_plural "%d items, Free space: %s"
 msgstr[0] "Elementu %d, Leku librea: %s"
 msgstr[1] "%d elementu, Leku librea: %s"
 
-#: ../thunar/thunar-list-model.c:1994
+#: ../thunar/thunar-list-model.c:2080
 #, c-format
 msgid "%d item"
 msgid_plural "%d items"
 msgstr[0] "Elementu %d"
 msgstr[1] "%d elementu"
 
-#: ../thunar/thunar-list-model.c:2010
+#: ../thunar/thunar-list-model.c:2096
 #, c-format
 msgid "\"%s\" broken link"
 msgstr "\"%s\" apurturiko lotura"
 
-#: ../thunar/thunar-list-model.c:2014
+#: ../thunar/thunar-list-model.c:2100
 #, c-format
 msgid "\"%s\" (%s) link to %s"
 msgstr "\"%s\" (%s) %s-ra lotzen du"
 
-#: ../thunar/thunar-list-model.c:2019
+#: ../thunar/thunar-list-model.c:2105
 #, c-format
 msgid "\"%s\" (%s) %s"
 msgstr "\"%s\" (%s) %s"
 
-#: ../thunar/thunar-list-model.c:2036
+#: ../thunar/thunar-list-model.c:2122
 #, c-format
 msgid "%d item selected (%s)"
 msgid_plural "%d items selected (%s)"
 msgstr[0] "Elementu %d aukeraturik (%s)"
 msgstr[1] "%d elementu aukeraturik (%s)"
 
-#: ../thunar/thunar-list-model.c:2041
+#: ../thunar/thunar-list-model.c:2127
 #, c-format
 msgid "%d item selected"
 msgid_plural "%d items selected"
@@ -981,10 +1086,6 @@ msgstr "Irakurri eta Idatzi"
 msgid "Owner:"
 msgstr "Jabea:"
 
-#: ../thunar/thunar-permissions-chooser.c:270
-msgid "Unknown"
-msgstr "Ezezaguna"
-
 #: ../thunar/thunar-permissions-chooser.c:284
 #: ../thunar/thunar-permissions-chooser.c:337
 msgid "Access:"
diff --git a/po/fi.po b/po/fi.po
index 461096878..0366d9bbf 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Thunar 0.2.1svn\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-03-11 18:15+0100\n"
+"POT-Creation-Date: 2006-03-12 18:55+0100\n"
 "PO-Revision-Date: 2006-03-01 21:36+0200\n"
 "Last-Translator: jari <jari.rahkonen@pp1.inet.fi>\n"
 "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
@@ -171,7 +171,7 @@ msgid "The icon of the mime handler"
 msgstr "Mime-käsittelijän kuvake"
 
 #: ../thunar-vfs/thunar-vfs-mime-handler.c:176
-#: ../thunar/thunar-details-view.c:178
+#: ../thunar/thunar-enum-types.c:64
 msgid "Name"
 msgstr "Nimi"
 
@@ -197,7 +197,7 @@ msgstr "Polku ei mahdu puskuriin"
 msgid "URI too long to fit into buffer"
 msgstr "URI ei mahdu puskuriin"
 
-#: ../thunar-vfs/thunar-vfs-thumb.c:176 ../thunar/thunar-details-view.c:197
+#: ../thunar-vfs/thunar-vfs-thumb.c:176 ../thunar/thunar-enum-types.c:67
 msgid "Size"
 msgstr "Koko"
 
@@ -259,7 +259,7 @@ msgstr "Kohteen /proc/mounts avaaminen epäonnistui: %s"
 msgid "copy of %s"
 msgstr "kopio kohteesta %s"
 
-#: ../thunar-vfs/thunar-vfs-xfer.c:190 ../thunar/thunar-list-model.c:716
+#: ../thunar-vfs/thunar-vfs-xfer.c:190 ../thunar/thunar-list-model.c:752
 #: ../thunar/thunar-properties-dialog.c:658
 #, c-format
 msgid "link to %s"
@@ -576,6 +576,71 @@ msgstr "Muut sovellukset"
 msgid "There is nothing on the clipboard to paste"
 msgstr "Leikepöydällä ei ole liitettävää"
 
+#: ../thunar/thunar-column-editor.c:153
+msgid "Configure Columns in the Detailed List View"
+msgstr ""
+
+#: ../thunar/thunar-column-editor.c:164
+msgid "Visible Columns"
+msgstr ""
+
+#. create the top label for the column editor dialog
+#: ../thunar/thunar-column-editor.c:177
+msgid ""
+"Chooser the order of information to appear in the\n"
+"detailed list view."
+msgstr ""
+
+#. create the "Move Up" button
+#: ../thunar/thunar-column-editor.c:218
+msgid "Move _Up"
+msgstr ""
+
+#. create the "Move Down" button
+#: ../thunar/thunar-column-editor.c:228
+msgid "Move Dow_n"
+msgstr ""
+
+#. create the "Show" button
+#: ../thunar/thunar-column-editor.c:238
+msgid "_Show"
+msgstr ""
+
+#. create the "Hide" button
+#: ../thunar/thunar-column-editor.c:244
+#, fuzzy
+msgid "Hi_de"
+msgstr "_Piilota"
+
+#. create the "Use Default" button
+#: ../thunar/thunar-column-editor.c:255
+msgid "Use De_fault"
+msgstr ""
+
+#: ../thunar/thunar-column-editor.c:264
+msgid "Column Sizing"
+msgstr ""
+
+#. create the label that explains the column sizing option
+#: ../thunar/thunar-column-editor.c:277
+msgid ""
+"By default columns will be automatically expanded if\n"
+"needed to ensure the text is fully visible. If you dis-\n"
+"able this behavior below the file manager will always\n"
+"use the user defined column widths."
+msgstr ""
+
+#. create the "Automatically expand columns as needed" button
+#: ../thunar/thunar-column-editor.c:286
+msgid "Automatically _expand columns as needed"
+msgstr ""
+
+#: ../thunar/thunar-column-model.c:894 ../thunar/thunar-list-model.c:702
+#: ../thunar/thunar-list-model.c:731
+#: ../thunar/thunar-permissions-chooser.c:270
+msgid "Unknown"
+msgstr "Tuntematon"
+
 #: ../thunar/thunar-create-dialog.c:180 ../thunar/thunar-standard-view.c:2242
 msgid "Enter the new name:"
 msgstr "Syötä uusi nimi:"
@@ -586,27 +651,21 @@ msgstr "Syötä uusi nimi:"
 msgid "Cannot convert filename \"%s\" to the local encoding"
 msgstr "Tiedostonimeä \"%s\" ei voi muuttaa käytössä olevaan merkistöön"
 
-#.
-#. Permissions chooser
-#.
-#: ../thunar/thunar-details-view.c:212
-#: ../thunar/thunar-properties-dialog.c:414
-msgid "Permissions"
-msgstr "Käyttöoikeudet"
-
-#: ../thunar/thunar-details-view.c:227
-msgid "Type"
-msgstr "Tyyppi"
+#: ../thunar/thunar-details-view.c:130
+#, fuzzy
+msgid "Configure _Columns..."
+msgstr "_Mukautetut toiminnot..."
 
-#: ../thunar/thunar-details-view.c:239
-msgid "Date modified"
-msgstr "Muokkauspäivämäärä"
+#: ../thunar/thunar-details-view.c:130
+#, fuzzy
+msgid "Configure the columns in the detailed list view"
+msgstr "Näytä hakemiston sisältö yksityiskohtaisessa listanäkymässä"
 
-#: ../thunar/thunar-details-view.c:268
+#: ../thunar/thunar-details-view.c:411
 msgid "Detailed directory listing"
 msgstr "Yksityiskohtainen hakemistolistaus"
 
-#: ../thunar/thunar-details-view.c:269
+#: ../thunar/thunar-details-view.c:412
 msgid "Details view"
 msgstr "Yksityiskohtainen näkymä"
 
@@ -634,6 +693,52 @@ msgstr "_Linkitä tähän"
 msgid "Failed to execute file \"%s\""
 msgstr "Tiedoston \"%s\" suorittaminen epäonnistui"
 
+#: ../thunar/thunar-enum-types.c:60
+#, fuzzy
+msgid "Date Accessed"
+msgstr "Käytetty:"
+
+#: ../thunar/thunar-enum-types.c:61
+#, fuzzy
+msgid "Date Modified"
+msgstr "Muokkauspäivämäärä"
+
+#: ../thunar/thunar-enum-types.c:62
+#, fuzzy
+msgid "Group"
+msgstr "Ryhmä:"
+
+#: ../thunar/thunar-enum-types.c:63
+#, fuzzy
+msgid "MIME Type"
+msgstr "Tyyppi"
+
+#: ../thunar/thunar-enum-types.c:65
+#, fuzzy
+msgid "Owner"
+msgstr "Omistaja:"
+
+#.
+#. Permissions chooser
+#.
+#: ../thunar/thunar-enum-types.c:66 ../thunar/thunar-properties-dialog.c:414
+msgid "Permissions"
+msgstr "Käyttöoikeudet"
+
+#: ../thunar/thunar-enum-types.c:68
+msgid "Type"
+msgstr "Tyyppi"
+
+#: ../thunar/thunar-enum-types.c:69
+#, fuzzy
+msgid "File"
+msgstr "_Tiedosto"
+
+#: ../thunar/thunar-enum-types.c:70
+#, fuzzy
+msgid "File Name"
+msgstr "Tiedostonhallinta"
+
 #: ../thunar/thunar-file.c:727
 msgid "The root folder has no parent"
 msgstr "Juurella ei ole ylähakemistoa"
@@ -854,47 +959,47 @@ msgstr[1] "Avaa valitut tiedostot oletussovelluksissa"
 msgid "Open With \"%s\""
 msgstr "Avaa sovelluksessa \"%s\""
 
-#: ../thunar/thunar-list-model.c:714 ../thunar/thunar-properties-dialog.c:656
+#: ../thunar/thunar-list-model.c:750 ../thunar/thunar-properties-dialog.c:656
 msgid "broken link"
 msgstr "rikkinäinen linkki"
 
-#: ../thunar/thunar-list-model.c:1989
+#: ../thunar/thunar-list-model.c:2075
 #, c-format
 msgid "%d item, Free space: %s"
 msgid_plural "%d items, Free space: %s"
 msgstr[0] "%d kohde, vapaata tilaa: %s"
 msgstr[1] "%d kohdetta, vapaata tilaa: %s"
 
-#: ../thunar/thunar-list-model.c:1994
+#: ../thunar/thunar-list-model.c:2080
 #, c-format
 msgid "%d item"
 msgid_plural "%d items"
 msgstr[0] "%d kohde"
 msgstr[1] "%d kohdetta"
 
-#: ../thunar/thunar-list-model.c:2010
+#: ../thunar/thunar-list-model.c:2096
 #, c-format
 msgid "\"%s\" broken link"
 msgstr "\"%s\" rikkinäinen linkki"
 
-#: ../thunar/thunar-list-model.c:2014
+#: ../thunar/thunar-list-model.c:2100
 #, c-format
 msgid "\"%s\" (%s) link to %s"
 msgstr "\"%s\" (%s) linkki kohteeseen %s"
 
-#: ../thunar/thunar-list-model.c:2019
+#: ../thunar/thunar-list-model.c:2105
 #, c-format
 msgid "\"%s\" (%s) %s"
 msgstr "\"%s\" (%s) %s"
 
-#: ../thunar/thunar-list-model.c:2036
+#: ../thunar/thunar-list-model.c:2122
 #, c-format
 msgid "%d item selected (%s)"
 msgid_plural "%d items selected (%s)"
 msgstr[0] "%d kohde valittu (%s)"
 msgstr[1] "%d kohdetta valittu (%s)"
 
-#: ../thunar/thunar-list-model.c:2041
+#: ../thunar/thunar-list-model.c:2127
 #, c-format
 msgid "%d item selected"
 msgid_plural "%d items selected"
@@ -976,10 +1081,6 @@ msgstr "Luku ja kirjoitus"
 msgid "Owner:"
 msgstr "Omistaja:"
 
-#: ../thunar/thunar-permissions-chooser.c:270
-msgid "Unknown"
-msgstr "Tuntematon"
-
 #: ../thunar/thunar-permissions-chooser.c:284
 #: ../thunar/thunar-permissions-chooser.c:337
 msgid "Access:"
diff --git a/po/fr.po b/po/fr.po
index e3db74bb1..cd2441e86 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Thunar 0.2.1svn\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-03-11 18:15+0100\n"
+"POT-Creation-Date: 2006-03-12 18:55+0100\n"
 "PO-Revision-Date: 2006-03-02 11:55+0100\n"
 "Last-Translator: Stephane Roy <sroy@j2n.net>\n"
 "Language-Team: French <traduc@traduc.org>\n"
@@ -172,7 +172,7 @@ msgid "The icon of the mime handler"
 msgstr ""
 
 #: ../thunar-vfs/thunar-vfs-mime-handler.c:176
-#: ../thunar/thunar-details-view.c:178
+#: ../thunar/thunar-enum-types.c:64
 msgid "Name"
 msgstr "Nom"
 
@@ -198,7 +198,7 @@ msgstr "Chemin trop long pour être stockée dans le cache"
 msgid "URI too long to fit into buffer"
 msgstr "URI trop longue pour être stockée dans le cache"
 
-#: ../thunar-vfs/thunar-vfs-thumb.c:176 ../thunar/thunar-details-view.c:197
+#: ../thunar-vfs/thunar-vfs-thumb.c:176 ../thunar/thunar-enum-types.c:67
 msgid "Size"
 msgstr "Taille"
 
@@ -260,7 +260,7 @@ msgstr "Échec à l'ouverture de /proc/mounts : %s"
 msgid "copy of %s"
 msgstr "copie de %s"
 
-#: ../thunar-vfs/thunar-vfs-xfer.c:190 ../thunar/thunar-list-model.c:716
+#: ../thunar-vfs/thunar-vfs-xfer.c:190 ../thunar/thunar-list-model.c:752
 #: ../thunar/thunar-properties-dialog.c:658
 #, c-format
 msgid "link to %s"
@@ -581,6 +581,71 @@ msgstr "Autres applications :"
 msgid "There is nothing on the clipboard to paste"
 msgstr "Il n'y a rien à coller dans le presse-papier"
 
+#: ../thunar/thunar-column-editor.c:153
+msgid "Configure Columns in the Detailed List View"
+msgstr ""
+
+#: ../thunar/thunar-column-editor.c:164
+msgid "Visible Columns"
+msgstr ""
+
+#. create the top label for the column editor dialog
+#: ../thunar/thunar-column-editor.c:177
+msgid ""
+"Chooser the order of information to appear in the\n"
+"detailed list view."
+msgstr ""
+
+#. create the "Move Up" button
+#: ../thunar/thunar-column-editor.c:218
+msgid "Move _Up"
+msgstr ""
+
+#. create the "Move Down" button
+#: ../thunar/thunar-column-editor.c:228
+msgid "Move Dow_n"
+msgstr ""
+
+#. create the "Show" button
+#: ../thunar/thunar-column-editor.c:238
+msgid "_Show"
+msgstr ""
+
+#. create the "Hide" button
+#: ../thunar/thunar-column-editor.c:244
+#, fuzzy
+msgid "Hi_de"
+msgstr "_Caché"
+
+#. create the "Use Default" button
+#: ../thunar/thunar-column-editor.c:255
+msgid "Use De_fault"
+msgstr ""
+
+#: ../thunar/thunar-column-editor.c:264
+msgid "Column Sizing"
+msgstr ""
+
+#. create the label that explains the column sizing option
+#: ../thunar/thunar-column-editor.c:277
+msgid ""
+"By default columns will be automatically expanded if\n"
+"needed to ensure the text is fully visible. If you dis-\n"
+"able this behavior below the file manager will always\n"
+"use the user defined column widths."
+msgstr ""
+
+#. create the "Automatically expand columns as needed" button
+#: ../thunar/thunar-column-editor.c:286
+msgid "Automatically _expand columns as needed"
+msgstr ""
+
+#: ../thunar/thunar-column-model.c:894 ../thunar/thunar-list-model.c:702
+#: ../thunar/thunar-list-model.c:731
+#: ../thunar/thunar-permissions-chooser.c:270
+msgid "Unknown"
+msgstr "Inconnu"
+
 #: ../thunar/thunar-create-dialog.c:180 ../thunar/thunar-standard-view.c:2242
 msgid "Enter the new name:"
 msgstr "Entrer le nouveau nom :"
@@ -591,27 +656,21 @@ msgstr "Entrer le nouveau nom :"
 msgid "Cannot convert filename \"%s\" to the local encoding"
 msgstr "Ne peut pas convertir le nom du fichier \"%s\" vers le codage local"
 
-#.
-#. Permissions chooser
-#.
-#: ../thunar/thunar-details-view.c:212
-#: ../thunar/thunar-properties-dialog.c:414
-msgid "Permissions"
-msgstr "Permissions"
-
-#: ../thunar/thunar-details-view.c:227
-msgid "Type"
-msgstr "Type"
+#: ../thunar/thunar-details-view.c:130
+#, fuzzy
+msgid "Configure _Columns..."
+msgstr "Configurer les actions pers_onnalisée..."
 
-#: ../thunar/thunar-details-view.c:239
-msgid "Date modified"
-msgstr "Date modifiée"
+#: ../thunar/thunar-details-view.c:130
+#, fuzzy
+msgid "Configure the columns in the detailed list view"
+msgstr "Affiche le contenu du dossier sous forme de liste détaillée"
 
-#: ../thunar/thunar-details-view.c:268
+#: ../thunar/thunar-details-view.c:411
 msgid "Detailed directory listing"
 msgstr "Liste détaillée des répertoires"
 
-#: ../thunar/thunar-details-view.c:269
+#: ../thunar/thunar-details-view.c:412
 msgid "Details view"
 msgstr "Vue détails"
 
@@ -639,6 +698,52 @@ msgstr "_Lier ici"
 msgid "Failed to execute file \"%s\""
 msgstr "Échec à l'exécution du fichier \"%s\""
 
+#: ../thunar/thunar-enum-types.c:60
+#, fuzzy
+msgid "Date Accessed"
+msgstr "Accédé :"
+
+#: ../thunar/thunar-enum-types.c:61
+#, fuzzy
+msgid "Date Modified"
+msgstr "Date modifiée"
+
+#: ../thunar/thunar-enum-types.c:62
+#, fuzzy
+msgid "Group"
+msgstr "Groupe :"
+
+#: ../thunar/thunar-enum-types.c:63
+#, fuzzy
+msgid "MIME Type"
+msgstr "Type"
+
+#: ../thunar/thunar-enum-types.c:65
+#, fuzzy
+msgid "Owner"
+msgstr "Propriétaire :"
+
+#.
+#. Permissions chooser
+#.
+#: ../thunar/thunar-enum-types.c:66 ../thunar/thunar-properties-dialog.c:414
+msgid "Permissions"
+msgstr "Permissions"
+
+#: ../thunar/thunar-enum-types.c:68
+msgid "Type"
+msgstr "Type"
+
+#: ../thunar/thunar-enum-types.c:69
+#, fuzzy
+msgid "File"
+msgstr "_Fichier"
+
+#: ../thunar/thunar-enum-types.c:70
+#, fuzzy
+msgid "File Name"
+msgstr "Gestionnaire de fichier"
+
 #: ../thunar/thunar-file.c:727
 msgid "The root folder has no parent"
 msgstr "Le dossier racine n'a pas de père"
@@ -860,47 +965,47 @@ msgstr[1] "Ouvrir les fichiers sélectionnés avec l'application par défaut"
 msgid "Open With \"%s\""
 msgstr "Ouvrir avec \"%s\""
 
-#: ../thunar/thunar-list-model.c:714 ../thunar/thunar-properties-dialog.c:656
+#: ../thunar/thunar-list-model.c:750 ../thunar/thunar-properties-dialog.c:656
 msgid "broken link"
 msgstr "lien cassé"
 
-#: ../thunar/thunar-list-model.c:1989
+#: ../thunar/thunar-list-model.c:2075
 #, c-format
 msgid "%d item, Free space: %s"
 msgid_plural "%d items, Free space: %s"
 msgstr[0] "%d élément, espace libre : %s"
 msgstr[1] "%d éléments, espace libre : %s"
 
-#: ../thunar/thunar-list-model.c:1994
+#: ../thunar/thunar-list-model.c:2080
 #, c-format
 msgid "%d item"
 msgid_plural "%d items"
 msgstr[0] "%d élément"
 msgstr[1] "%d éléments"
 
-#: ../thunar/thunar-list-model.c:2010
+#: ../thunar/thunar-list-model.c:2096
 #, c-format
 msgid "\"%s\" broken link"
 msgstr "\"%s\" lien cassé"
 
-#: ../thunar/thunar-list-model.c:2014
+#: ../thunar/thunar-list-model.c:2100
 #, c-format
 msgid "\"%s\" (%s) link to %s"
 msgstr "\"%s\" (%s) lien vers %s"
 
-#: ../thunar/thunar-list-model.c:2019
+#: ../thunar/thunar-list-model.c:2105
 #, c-format
 msgid "\"%s\" (%s) %s"
 msgstr "\"%s\" (%s) %s"
 
-#: ../thunar/thunar-list-model.c:2036
+#: ../thunar/thunar-list-model.c:2122
 #, c-format
 msgid "%d item selected (%s)"
 msgid_plural "%d items selected (%s)"
 msgstr[0] "%d élément sélectionné (%s)"
 msgstr[1] "%d éléments sélectionnés (%s)"
 
-#: ../thunar/thunar-list-model.c:2041
+#: ../thunar/thunar-list-model.c:2127
 #, c-format
 msgid "%d item selected"
 msgid_plural "%d items selected"
@@ -982,10 +1087,6 @@ msgstr "lecture & écriture"
 msgid "Owner:"
 msgstr "Propriétaire :"
 
-#: ../thunar/thunar-permissions-chooser.c:270
-msgid "Unknown"
-msgstr "Inconnu"
-
 #: ../thunar/thunar-permissions-chooser.c:284
 #: ../thunar/thunar-permissions-chooser.c:337
 msgid "Access:"
diff --git a/po/hu.po b/po/hu.po
index bcbe4c519..bb841afc1 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Thunar 0.2.1svn\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-03-11 18:15+0100\n"
+"POT-Creation-Date: 2006-03-12 18:55+0100\n"
 "PO-Revision-Date: 2006-03-02 11:43+0100\n"
 "Last-Translator: SZERVÑC Attila <sas@321.hu>\n"
 "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
@@ -173,7 +173,7 @@ msgid "The icon of the mime handler"
 msgstr "A mime kezelő ikonja"
 
 #: ../thunar-vfs/thunar-vfs-mime-handler.c:176
-#: ../thunar/thunar-details-view.c:178
+#: ../thunar/thunar-enum-types.c:64
 msgid "Name"
 msgstr "Név"
 
@@ -199,7 +199,7 @@ msgstr "Az ösvény túl hosszú"
 msgid "URI too long to fit into buffer"
 msgstr "Az URI túl hosszú"
 
-#: ../thunar-vfs/thunar-vfs-thumb.c:176 ../thunar/thunar-details-view.c:197
+#: ../thunar-vfs/thunar-vfs-thumb.c:176 ../thunar/thunar-enum-types.c:67
 msgid "Size"
 msgstr "Méret"
 
@@ -261,7 +261,7 @@ msgstr "/proc/mounts megnyitása sikertelen: %s"
 msgid "copy of %s"
 msgstr "%s másolata"
 
-#: ../thunar-vfs/thunar-vfs-xfer.c:190 ../thunar/thunar-list-model.c:716
+#: ../thunar-vfs/thunar-vfs-xfer.c:190 ../thunar/thunar-list-model.c:752
 #: ../thunar/thunar-properties-dialog.c:658
 #, c-format
 msgid "link to %s"
@@ -576,6 +576,71 @@ msgstr "Más alkalmazások:"
 msgid "There is nothing on the clipboard to paste"
 msgstr "Nincs beillesztenivaló a vágólapon"
 
+#: ../thunar/thunar-column-editor.c:153
+msgid "Configure Columns in the Detailed List View"
+msgstr ""
+
+#: ../thunar/thunar-column-editor.c:164
+msgid "Visible Columns"
+msgstr ""
+
+#. create the top label for the column editor dialog
+#: ../thunar/thunar-column-editor.c:177
+msgid ""
+"Chooser the order of information to appear in the\n"
+"detailed list view."
+msgstr ""
+
+#. create the "Move Up" button
+#: ../thunar/thunar-column-editor.c:218
+msgid "Move _Up"
+msgstr ""
+
+#. create the "Move Down" button
+#: ../thunar/thunar-column-editor.c:228
+msgid "Move Dow_n"
+msgstr ""
+
+#. create the "Show" button
+#: ../thunar/thunar-column-editor.c:238
+msgid "_Show"
+msgstr ""
+
+#. create the "Hide" button
+#: ../thunar/thunar-column-editor.c:244
+#, fuzzy
+msgid "Hi_de"
+msgstr "_Rejtett"
+
+#. create the "Use Default" button
+#: ../thunar/thunar-column-editor.c:255
+msgid "Use De_fault"
+msgstr ""
+
+#: ../thunar/thunar-column-editor.c:264
+msgid "Column Sizing"
+msgstr ""
+
+#. create the label that explains the column sizing option
+#: ../thunar/thunar-column-editor.c:277
+msgid ""
+"By default columns will be automatically expanded if\n"
+"needed to ensure the text is fully visible. If you dis-\n"
+"able this behavior below the file manager will always\n"
+"use the user defined column widths."
+msgstr ""
+
+#. create the "Automatically expand columns as needed" button
+#: ../thunar/thunar-column-editor.c:286
+msgid "Automatically _expand columns as needed"
+msgstr ""
+
+#: ../thunar/thunar-column-model.c:894 ../thunar/thunar-list-model.c:702
+#: ../thunar/thunar-list-model.c:731
+#: ../thunar/thunar-permissions-chooser.c:270
+msgid "Unknown"
+msgstr "Ismeretlen"
+
 #: ../thunar/thunar-create-dialog.c:180 ../thunar/thunar-standard-view.c:2242
 msgid "Enter the new name:"
 msgstr "Új fájlnév megadása:"
@@ -586,27 +651,21 @@ msgstr "Új fájlnév megadása:"
 msgid "Cannot convert filename \"%s\" to the local encoding"
 msgstr "Nem tudom átalakítani helyi kódolásra e fájlnevet: \"%s\""
 
-#.
-#. Permissions chooser
-#.
-#: ../thunar/thunar-details-view.c:212
-#: ../thunar/thunar-properties-dialog.c:414
-msgid "Permissions"
-msgstr "Jogok"
-
-#: ../thunar/thunar-details-view.c:227
-msgid "Type"
-msgstr "Típus"
+#: ../thunar/thunar-details-view.c:130
+#, fuzzy
+msgid "Configure _Columns..."
+msgstr "Egyéni műveletek beállítása..."
 
-#: ../thunar/thunar-details-view.c:239
-msgid "Date modified"
-msgstr "Módosítás ideje"
+#: ../thunar/thunar-details-view.c:130
+#, fuzzy
+msgid "Configure the columns in the detailed list view"
+msgstr "Mappa megjelenítése részletes lista nézetben"
 
-#: ../thunar/thunar-details-view.c:268
+#: ../thunar/thunar-details-view.c:411
 msgid "Detailed directory listing"
 msgstr "Részletes könyvtárlista"
 
-#: ../thunar/thunar-details-view.c:269
+#: ../thunar/thunar-details-view.c:412
 msgid "Details view"
 msgstr "Részletes nézet"
 
@@ -634,6 +693,52 @@ msgstr "_Lánc ide"
 msgid "Failed to execute file \"%s\""
 msgstr "Nem futtatható fájl: \"%s\""
 
+#: ../thunar/thunar-enum-types.c:60
+#, fuzzy
+msgid "Date Accessed"
+msgstr "Megnyitva:"
+
+#: ../thunar/thunar-enum-types.c:61
+#, fuzzy
+msgid "Date Modified"
+msgstr "Módosítás ideje"
+
+#: ../thunar/thunar-enum-types.c:62
+#, fuzzy
+msgid "Group"
+msgstr "Csoport:"
+
+#: ../thunar/thunar-enum-types.c:63
+#, fuzzy
+msgid "MIME Type"
+msgstr "Típus"
+
+#: ../thunar/thunar-enum-types.c:65
+#, fuzzy
+msgid "Owner"
+msgstr "Tulajdonos:"
+
+#.
+#. Permissions chooser
+#.
+#: ../thunar/thunar-enum-types.c:66 ../thunar/thunar-properties-dialog.c:414
+msgid "Permissions"
+msgstr "Jogok"
+
+#: ../thunar/thunar-enum-types.c:68
+msgid "Type"
+msgstr "Típus"
+
+#: ../thunar/thunar-enum-types.c:69
+#, fuzzy
+msgid "File"
+msgstr "_Fájl"
+
+#: ../thunar/thunar-enum-types.c:70
+#, fuzzy
+msgid "File Name"
+msgstr "Fájlkezelő"
+
 #: ../thunar/thunar-file.c:727
 msgid "The root folder has no parent"
 msgstr "A gyökérkönyvtárnak nincsenek szülei"
@@ -845,44 +950,44 @@ msgstr[0] "Minden kijelölt fájlt az alapalkalmazással nyit meg"
 msgid "Open With \"%s\""
 msgstr "Megnyitás ezzel: \"%s\""
 
-#: ../thunar/thunar-list-model.c:714 ../thunar/thunar-properties-dialog.c:656
+#: ../thunar/thunar-list-model.c:750 ../thunar/thunar-properties-dialog.c:656
 msgid "broken link"
 msgstr "törött lánc"
 
-#: ../thunar/thunar-list-model.c:1989
+#: ../thunar/thunar-list-model.c:2075
 #, c-format
 msgid "%d item, Free space: %s"
 msgid_plural "%d items, Free space: %s"
 msgstr[0] "%d elem, Szabad: %s"
 
-#: ../thunar/thunar-list-model.c:1994
+#: ../thunar/thunar-list-model.c:2080
 #, c-format
 msgid "%d item"
 msgid_plural "%d items"
 msgstr[0] "%d elem"
 
-#: ../thunar/thunar-list-model.c:2010
+#: ../thunar/thunar-list-model.c:2096
 #, c-format
 msgid "\"%s\" broken link"
 msgstr "\"%s\" törött lánc"
 
-#: ../thunar/thunar-list-model.c:2014
+#: ../thunar/thunar-list-model.c:2100
 #, c-format
 msgid "\"%s\" (%s) link to %s"
 msgstr "\"%s\" (%s) lánc ide: %s"
 
-#: ../thunar/thunar-list-model.c:2019
+#: ../thunar/thunar-list-model.c:2105
 #, c-format
 msgid "\"%s\" (%s) %s"
 msgstr "\"%s\" (%s) %s"
 
-#: ../thunar/thunar-list-model.c:2036
+#: ../thunar/thunar-list-model.c:2122
 #, c-format
 msgid "%d item selected (%s)"
 msgid_plural "%d items selected (%s)"
 msgstr[0] "%d elem kijelölve (%s)"
 
-#: ../thunar/thunar-list-model.c:2041
+#: ../thunar/thunar-list-model.c:2127
 #, c-format
 msgid "%d item selected"
 msgid_plural "%d items selected"
@@ -963,10 +1068,6 @@ msgstr "Írás/olvasás"
 msgid "Owner:"
 msgstr "Tulajdonos:"
 
-#: ../thunar/thunar-permissions-chooser.c:270
-msgid "Unknown"
-msgstr "Ismeretlen"
-
 #: ../thunar/thunar-permissions-chooser.c:284
 #: ../thunar/thunar-permissions-chooser.c:337
 msgid "Access:"
diff --git a/po/it.po b/po/it.po
index 68ce51856..c9ae37d65 100644
--- a/po/it.po
+++ b/po/it.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Thunar 0.2.1svn\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-03-11 18:15+0100\n"
+"POT-Creation-Date: 2006-03-12 18:55+0100\n"
 "PO-Revision-Date: 2006-03-04 13:55+0100\n"
 "Last-Translator: Roberto Pariset <r.pariset@gmail.com>\n"
 "Language-Team: GUFI <traduzioni@gufi.org>\n"
@@ -174,7 +174,7 @@ msgid "The icon of the mime handler"
 msgstr "L'icona del gestore mime"
 
 #: ../thunar-vfs/thunar-vfs-mime-handler.c:176
-#: ../thunar/thunar-details-view.c:178
+#: ../thunar/thunar-enum-types.c:64
 msgid "Name"
 msgstr "Nome"
 
@@ -200,7 +200,7 @@ msgstr "Path troppo lunga per entrare nel buffer"
 msgid "URI too long to fit into buffer"
 msgstr "URI troppo lunga per entrare nel buffer"
 
-#: ../thunar-vfs/thunar-vfs-thumb.c:176 ../thunar/thunar-details-view.c:197
+#: ../thunar-vfs/thunar-vfs-thumb.c:176 ../thunar/thunar-enum-types.c:67
 msgid "Size"
 msgstr "Dimensione"
 
@@ -262,7 +262,7 @@ msgstr "Impossibile aprire /proc/mounts: %s"
 msgid "copy of %s"
 msgstr "copia di %s"
 
-#: ../thunar-vfs/thunar-vfs-xfer.c:190 ../thunar/thunar-list-model.c:716
+#: ../thunar-vfs/thunar-vfs-xfer.c:190 ../thunar/thunar-list-model.c:752
 #: ../thunar/thunar-properties-dialog.c:658
 #, c-format
 msgid "link to %s"
@@ -581,6 +581,71 @@ msgstr "Altre applicazioni"
 msgid "There is nothing on the clipboard to paste"
 msgstr "Nella clipboard non c'è niente da incollare"
 
+#: ../thunar/thunar-column-editor.c:153
+msgid "Configure Columns in the Detailed List View"
+msgstr ""
+
+#: ../thunar/thunar-column-editor.c:164
+msgid "Visible Columns"
+msgstr ""
+
+#. create the top label for the column editor dialog
+#: ../thunar/thunar-column-editor.c:177
+msgid ""
+"Chooser the order of information to appear in the\n"
+"detailed list view."
+msgstr ""
+
+#. create the "Move Up" button
+#: ../thunar/thunar-column-editor.c:218
+msgid "Move _Up"
+msgstr ""
+
+#. create the "Move Down" button
+#: ../thunar/thunar-column-editor.c:228
+msgid "Move Dow_n"
+msgstr ""
+
+#. create the "Show" button
+#: ../thunar/thunar-column-editor.c:238
+msgid "_Show"
+msgstr ""
+
+#. create the "Hide" button
+#: ../thunar/thunar-column-editor.c:244
+#, fuzzy
+msgid "Hi_de"
+msgstr "_Nascosto"
+
+#. create the "Use Default" button
+#: ../thunar/thunar-column-editor.c:255
+msgid "Use De_fault"
+msgstr ""
+
+#: ../thunar/thunar-column-editor.c:264
+msgid "Column Sizing"
+msgstr ""
+
+#. create the label that explains the column sizing option
+#: ../thunar/thunar-column-editor.c:277
+msgid ""
+"By default columns will be automatically expanded if\n"
+"needed to ensure the text is fully visible. If you dis-\n"
+"able this behavior below the file manager will always\n"
+"use the user defined column widths."
+msgstr ""
+
+#. create the "Automatically expand columns as needed" button
+#: ../thunar/thunar-column-editor.c:286
+msgid "Automatically _expand columns as needed"
+msgstr ""
+
+#: ../thunar/thunar-column-model.c:894 ../thunar/thunar-list-model.c:702
+#: ../thunar/thunar-list-model.c:731
+#: ../thunar/thunar-permissions-chooser.c:270
+msgid "Unknown"
+msgstr "Sconosciuto"
+
 #: ../thunar/thunar-create-dialog.c:180 ../thunar/thunar-standard-view.c:2242
 msgid "Enter the new name:"
 msgstr "Inserire il nuovo nome:"
@@ -591,27 +656,23 @@ msgstr "Inserire il nuovo nome:"
 msgid "Cannot convert filename \"%s\" to the local encoding"
 msgstr "Impossibile convertire il nome del file \"%s\" nella codifica locale"
 
-#.
-#. Permissions chooser
-#.
-#: ../thunar/thunar-details-view.c:212
-#: ../thunar/thunar-properties-dialog.c:414
-msgid "Permissions"
-msgstr "Permessi"
-
-#: ../thunar/thunar-details-view.c:227
-msgid "Type"
-msgstr "Tipo"
+#: ../thunar/thunar-details-view.c:130
+#, fuzzy
+msgid "Configure _Columns..."
+msgstr "Imposta azio_ni personalizzate..."
 
-#: ../thunar/thunar-details-view.c:239
-msgid "Date modified"
-msgstr "Data di modifica"
+#: ../thunar/thunar-details-view.c:130
+#, fuzzy
+msgid "Configure the columns in the detailed list view"
+msgstr ""
+"Mostra il contenuto della directory con una visualizzazione a lista "
+"dettagliata"
 
-#: ../thunar/thunar-details-view.c:268
+#: ../thunar/thunar-details-view.c:411
 msgid "Detailed directory listing"
 msgstr "Lista dettagliata delle directory"
 
-#: ../thunar/thunar-details-view.c:269
+#: ../thunar/thunar-details-view.c:412
 msgid "Details view"
 msgstr "Visualizzazione dettagliata"
 
@@ -639,6 +700,52 @@ msgstr "_Crea link qui"
 msgid "Failed to execute file \"%s\""
 msgstr "Impossibile eseguire \"%s\""
 
+#: ../thunar/thunar-enum-types.c:60
+#, fuzzy
+msgid "Date Accessed"
+msgstr "Acceduto:"
+
+#: ../thunar/thunar-enum-types.c:61
+#, fuzzy
+msgid "Date Modified"
+msgstr "Data di modifica"
+
+#: ../thunar/thunar-enum-types.c:62
+#, fuzzy
+msgid "Group"
+msgstr "Gruppo:"
+
+#: ../thunar/thunar-enum-types.c:63
+#, fuzzy
+msgid "MIME Type"
+msgstr "Tipo"
+
+#: ../thunar/thunar-enum-types.c:65
+#, fuzzy
+msgid "Owner"
+msgstr "Proprietario:"
+
+#.
+#. Permissions chooser
+#.
+#: ../thunar/thunar-enum-types.c:66 ../thunar/thunar-properties-dialog.c:414
+msgid "Permissions"
+msgstr "Permessi"
+
+#: ../thunar/thunar-enum-types.c:68
+msgid "Type"
+msgstr "Tipo"
+
+#: ../thunar/thunar-enum-types.c:69
+#, fuzzy
+msgid "File"
+msgstr "_File"
+
+#: ../thunar/thunar-enum-types.c:70
+#, fuzzy
+msgid "File Name"
+msgstr "File Manager"
+
 #: ../thunar/thunar-file.c:727
 msgid "The root folder has no parent"
 msgstr "La directory radice non ha padre"
@@ -860,47 +967,47 @@ msgstr[1] "Apri i file selezionati con l'applicazione di default"
 msgid "Open With \"%s\""
 msgstr "Apri con \"%s\""
 
-#: ../thunar/thunar-list-model.c:714 ../thunar/thunar-properties-dialog.c:656
+#: ../thunar/thunar-list-model.c:750 ../thunar/thunar-properties-dialog.c:656
 msgid "broken link"
 msgstr "link rotto"
 
-#: ../thunar/thunar-list-model.c:1989
+#: ../thunar/thunar-list-model.c:2075
 #, c-format
 msgid "%d item, Free space: %s"
 msgid_plural "%d items, Free space: %s"
 msgstr[0] "%d elemento, spazio libero %s"
 msgstr[1] "%d elementi, spazio libero %s"
 
-#: ../thunar/thunar-list-model.c:1994
+#: ../thunar/thunar-list-model.c:2080
 #, c-format
 msgid "%d item"
 msgid_plural "%d items"
 msgstr[0] "%d elemento"
 msgstr[1] "%d elementi"
 
-#: ../thunar/thunar-list-model.c:2010
+#: ../thunar/thunar-list-model.c:2096
 #, c-format
 msgid "\"%s\" broken link"
 msgstr "\"%s\" link rotto"
 
-#: ../thunar/thunar-list-model.c:2014
+#: ../thunar/thunar-list-model.c:2100
 #, c-format
 msgid "\"%s\" (%s) link to %s"
 msgstr "\"%s\" (%s) punta a %s"
 
-#: ../thunar/thunar-list-model.c:2019
+#: ../thunar/thunar-list-model.c:2105
 #, c-format
 msgid "\"%s\" (%s) %s"
 msgstr "\"%s\" (%s) %s"
 
-#: ../thunar/thunar-list-model.c:2036
+#: ../thunar/thunar-list-model.c:2122
 #, c-format
 msgid "%d item selected (%s)"
 msgid_plural "%d items selected (%s)"
 msgstr[0] "%d elemento selezionato (%s)"
 msgstr[1] "%d elementi selezionati (%s)"
 
-#: ../thunar/thunar-list-model.c:2041
+#: ../thunar/thunar-list-model.c:2127
 #, c-format
 msgid "%d item selected"
 msgid_plural "%d items selected"
@@ -982,10 +1089,6 @@ msgstr "Lettura più scrittura"
 msgid "Owner:"
 msgstr "Proprietario:"
 
-#: ../thunar/thunar-permissions-chooser.c:270
-msgid "Unknown"
-msgstr "Sconosciuto"
-
 #: ../thunar/thunar-permissions-chooser.c:284
 #: ../thunar/thunar-permissions-chooser.c:337
 msgid "Access:"
diff --git a/po/ja.po b/po/ja.po
index 258db91aa..f3f7e5580 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -14,7 +14,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Thunar 0.2.1svn\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-03-11 18:15+0100\n"
+"POT-Creation-Date: 2006-03-12 18:55+0100\n"
 "PO-Revision-Date: 2006-03-12 18:48+0900\n"
 "Last-Translator: Daichi Kawahata <daichi@xfce.org>\n"
 "Language-Team: Japanese <xfce-users-jp@ml.fdiary.net>\n"
@@ -181,7 +181,7 @@ msgid "The icon of the mime handler"
 msgstr "MIMEハンドラーのアイコンです。"
 
 #: ../thunar-vfs/thunar-vfs-mime-handler.c:176
-#: ../thunar/thunar-details-view.c:178
+#: ../thunar/thunar-enum-types.c:64
 msgid "Name"
 msgstr "名前"
 
@@ -207,7 +207,7 @@ msgstr "バッファに格納するにはパスが長すぎます。"
 msgid "URI too long to fit into buffer"
 msgstr "バッファに格納するには URI が長すぎます。"
 
-#: ../thunar-vfs/thunar-vfs-thumb.c:176 ../thunar/thunar-details-view.c:197
+#: ../thunar-vfs/thunar-vfs-thumb.c:176 ../thunar/thunar-enum-types.c:67
 msgid "Size"
 msgstr "サイズ"
 
@@ -269,7 +269,7 @@ msgstr "/proc/mounts を開くのに失敗しました: %s"
 msgid "copy of %s"
 msgstr "%s のコピー"
 
-#: ../thunar-vfs/thunar-vfs-xfer.c:190 ../thunar/thunar-list-model.c:716
+#: ../thunar-vfs/thunar-vfs-xfer.c:190 ../thunar/thunar-list-model.c:752
 #: ../thunar/thunar-properties-dialog.c:658
 #, c-format
 msgid "link to %s"
@@ -591,6 +591,71 @@ msgstr "他のアプリケーション"
 msgid "There is nothing on the clipboard to paste"
 msgstr "クリップボードに貼り付けるものはありません。"
 
+#: ../thunar/thunar-column-editor.c:153
+msgid "Configure Columns in the Detailed List View"
+msgstr ""
+
+#: ../thunar/thunar-column-editor.c:164
+msgid "Visible Columns"
+msgstr ""
+
+#. create the top label for the column editor dialog
+#: ../thunar/thunar-column-editor.c:177
+msgid ""
+"Chooser the order of information to appear in the\n"
+"detailed list view."
+msgstr ""
+
+#. create the "Move Up" button
+#: ../thunar/thunar-column-editor.c:218
+msgid "Move _Up"
+msgstr ""
+
+#. create the "Move Down" button
+#: ../thunar/thunar-column-editor.c:228
+msgid "Move Dow_n"
+msgstr ""
+
+#. create the "Show" button
+#: ../thunar/thunar-column-editor.c:238
+msgid "_Show"
+msgstr ""
+
+#. create the "Hide" button
+#: ../thunar/thunar-column-editor.c:244
+#, fuzzy
+msgid "Hi_de"
+msgstr "表示しない(_H)"
+
+#. create the "Use Default" button
+#: ../thunar/thunar-column-editor.c:255
+msgid "Use De_fault"
+msgstr ""
+
+#: ../thunar/thunar-column-editor.c:264
+msgid "Column Sizing"
+msgstr ""
+
+#. create the label that explains the column sizing option
+#: ../thunar/thunar-column-editor.c:277
+msgid ""
+"By default columns will be automatically expanded if\n"
+"needed to ensure the text is fully visible. If you dis-\n"
+"able this behavior below the file manager will always\n"
+"use the user defined column widths."
+msgstr ""
+
+#. create the "Automatically expand columns as needed" button
+#: ../thunar/thunar-column-editor.c:286
+msgid "Automatically _expand columns as needed"
+msgstr ""
+
+#: ../thunar/thunar-column-model.c:894 ../thunar/thunar-list-model.c:702
+#: ../thunar/thunar-list-model.c:731
+#: ../thunar/thunar-permissions-chooser.c:270
+msgid "Unknown"
+msgstr "不明"
+
 #: ../thunar/thunar-create-dialog.c:180 ../thunar/thunar-standard-view.c:2242
 msgid "Enter the new name:"
 msgstr "新しい名前を入力して下さい:"
@@ -601,27 +666,21 @@ msgstr "新しい名前を入力して下さい:"
 msgid "Cannot convert filename \"%s\" to the local encoding"
 msgstr "ファイル名「%s」をあなたのエンコード方式に変換できません。"
 
-#.
-#. Permissions chooser
-#.
-#: ../thunar/thunar-details-view.c:212
-#: ../thunar/thunar-properties-dialog.c:414
-msgid "Permissions"
-msgstr "アクセス権"
-
-#: ../thunar/thunar-details-view.c:227
-msgid "Type"
-msgstr "タイプ"
+#: ../thunar/thunar-details-view.c:130
+#, fuzzy
+msgid "Configure _Columns..."
+msgstr "アクションの設定(_U)..."
 
-#: ../thunar/thunar-details-view.c:239
-msgid "Date modified"
-msgstr "変更日時"
+#: ../thunar/thunar-details-view.c:130
+#, fuzzy
+msgid "Configure the columns in the detailed list view"
+msgstr "フォルダの内容を詳細なリストで表示します。"
 
-#: ../thunar/thunar-details-view.c:268
+#: ../thunar/thunar-details-view.c:411
 msgid "Detailed directory listing"
 msgstr "詳細なファイル情報と共にフォルダをリスト表示します。"
 
-#: ../thunar/thunar-details-view.c:269
+#: ../thunar/thunar-details-view.c:412
 msgid "Details view"
 msgstr "詳細表示"
 
@@ -649,6 +708,52 @@ msgstr "ここにリンク(_L)"
 msgid "Failed to execute file \"%s\""
 msgstr "ファイル「%s」の実行に失敗しました。"
 
+#: ../thunar/thunar-enum-types.c:60
+#, fuzzy
+msgid "Date Accessed"
+msgstr "アクセス日時:"
+
+#: ../thunar/thunar-enum-types.c:61
+#, fuzzy
+msgid "Date Modified"
+msgstr "変更日時"
+
+#: ../thunar/thunar-enum-types.c:62
+#, fuzzy
+msgid "Group"
+msgstr "所属グループ:"
+
+#: ../thunar/thunar-enum-types.c:63
+#, fuzzy
+msgid "MIME Type"
+msgstr "タイプ"
+
+#: ../thunar/thunar-enum-types.c:65
+#, fuzzy
+msgid "Owner"
+msgstr "ファイル所有者:"
+
+#.
+#. Permissions chooser
+#.
+#: ../thunar/thunar-enum-types.c:66 ../thunar/thunar-properties-dialog.c:414
+msgid "Permissions"
+msgstr "アクセス権"
+
+#: ../thunar/thunar-enum-types.c:68
+msgid "Type"
+msgstr "タイプ"
+
+#: ../thunar/thunar-enum-types.c:69
+#, fuzzy
+msgid "File"
+msgstr "ファイル(_F)"
+
+#: ../thunar/thunar-enum-types.c:70
+#, fuzzy
+msgid "File Name"
+msgstr "ファイルマネージャー"
+
 #: ../thunar/thunar-file.c:727
 msgid "The root folder has no parent"
 msgstr "ルートフォルダに上位のフォルダがありません。"
@@ -861,44 +966,44 @@ msgstr[0] "標準のアプリケーションを使用して選択したファイ
 msgid "Open With \"%s\""
 msgstr "%sで開く"
 
-#: ../thunar/thunar-list-model.c:714 ../thunar/thunar-properties-dialog.c:656
+#: ../thunar/thunar-list-model.c:750 ../thunar/thunar-properties-dialog.c:656
 msgid "broken link"
 msgstr "壊れたリンク"
 
-#: ../thunar/thunar-list-model.c:1989
+#: ../thunar/thunar-list-model.c:2075
 #, c-format
 msgid "%d item, Free space: %s"
 msgid_plural "%d items, Free space: %s"
 msgstr[0] "%d 個のアイテムがあります。空き容量: %s"
 
-#: ../thunar/thunar-list-model.c:1994
+#: ../thunar/thunar-list-model.c:2080
 #, c-format
 msgid "%d item"
 msgid_plural "%d items"
 msgstr[0] "%d 個のアイテムがあります。"
 
-#: ../thunar/thunar-list-model.c:2010
+#: ../thunar/thunar-list-model.c:2096
 #, c-format
 msgid "\"%s\" broken link"
 msgstr "「%s」壊れたリンク"
 
-#: ../thunar/thunar-list-model.c:2014
+#: ../thunar/thunar-list-model.c:2100
 #, c-format
 msgid "\"%s\" (%s) link to %s"
 msgstr "「%1$s」%3$sへのリンク (%2$s)"
 
-#: ../thunar/thunar-list-model.c:2019
+#: ../thunar/thunar-list-model.c:2105
 #, c-format
 msgid "\"%s\" (%s) %s"
 msgstr "「%1$s」%3$s (%2$s)"
 
-#: ../thunar/thunar-list-model.c:2036
+#: ../thunar/thunar-list-model.c:2122
 #, c-format
 msgid "%d item selected (%s)"
 msgid_plural "%d items selected (%s)"
 msgstr[0] "%d 個のアイテム (%s) が選択されています。"
 
-#: ../thunar/thunar-list-model.c:2041
+#: ../thunar/thunar-list-model.c:2127
 #, c-format
 msgid "%d item selected"
 msgid_plural "%d items selected"
@@ -979,10 +1084,6 @@ msgstr "読込と書込"
 msgid "Owner:"
 msgstr "ファイル所有者:"
 
-#: ../thunar/thunar-permissions-chooser.c:270
-msgid "Unknown"
-msgstr "不明"
-
 #: ../thunar/thunar-permissions-chooser.c:284
 #: ../thunar/thunar-permissions-chooser.c:337
 msgid "Access:"
diff --git a/po/nl.po b/po/nl.po
index cb8b66dd1..eb0274b1b 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Thunar 0.2.1svn\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-03-11 18:15+0100\n"
+"POT-Creation-Date: 2006-03-12 18:55+0100\n"
 "PO-Revision-Date: 2006-01-31 14:07+0100\n"
 "Last-Translator: Vincent Tunru <imnotb@gmail.com>\n"
 "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
@@ -183,7 +183,7 @@ msgid "The icon of the mime handler"
 msgstr ""
 
 #: ../thunar-vfs/thunar-vfs-mime-handler.c:176
-#: ../thunar/thunar-details-view.c:178
+#: ../thunar/thunar-enum-types.c:64
 msgid "Name"
 msgstr "Naam:"
 
@@ -209,7 +209,7 @@ msgstr "Pad te lang voor buffer"
 msgid "URI too long to fit into buffer"
 msgstr "URI te lang voor buffer"
 
-#: ../thunar-vfs/thunar-vfs-thumb.c:176 ../thunar/thunar-details-view.c:197
+#: ../thunar-vfs/thunar-vfs-thumb.c:176 ../thunar/thunar-enum-types.c:67
 msgid "Size"
 msgstr "Grootte"
 
@@ -272,7 +272,7 @@ msgstr "Fout bij het wijzigen van de naam van `%s'"
 msgid "copy of %s"
 msgstr "Kopie van %s"
 
-#: ../thunar-vfs/thunar-vfs-xfer.c:190 ../thunar/thunar-list-model.c:716
+#: ../thunar-vfs/thunar-vfs-xfer.c:190 ../thunar/thunar-list-model.c:752
 #: ../thunar/thunar-properties-dialog.c:658
 #, c-format
 msgid "link to %s"
@@ -593,6 +593,71 @@ msgstr "Andere Programma's"
 msgid "There is nothing on the clipboard to paste"
 msgstr "Er is niets op het klembord om te plakken"
 
+#: ../thunar/thunar-column-editor.c:153
+msgid "Configure Columns in the Detailed List View"
+msgstr ""
+
+#: ../thunar/thunar-column-editor.c:164
+msgid "Visible Columns"
+msgstr ""
+
+#. create the top label for the column editor dialog
+#: ../thunar/thunar-column-editor.c:177
+msgid ""
+"Chooser the order of information to appear in the\n"
+"detailed list view."
+msgstr ""
+
+#. create the "Move Up" button
+#: ../thunar/thunar-column-editor.c:218
+msgid "Move _Up"
+msgstr ""
+
+#. create the "Move Down" button
+#: ../thunar/thunar-column-editor.c:228
+msgid "Move Dow_n"
+msgstr ""
+
+#. create the "Show" button
+#: ../thunar/thunar-column-editor.c:238
+msgid "_Show"
+msgstr ""
+
+#. create the "Hide" button
+#: ../thunar/thunar-column-editor.c:244
+#, fuzzy
+msgid "Hi_de"
+msgstr "_Verborgen"
+
+#. create the "Use Default" button
+#: ../thunar/thunar-column-editor.c:255
+msgid "Use De_fault"
+msgstr ""
+
+#: ../thunar/thunar-column-editor.c:264
+msgid "Column Sizing"
+msgstr ""
+
+#. create the label that explains the column sizing option
+#: ../thunar/thunar-column-editor.c:277
+msgid ""
+"By default columns will be automatically expanded if\n"
+"needed to ensure the text is fully visible. If you dis-\n"
+"able this behavior below the file manager will always\n"
+"use the user defined column widths."
+msgstr ""
+
+#. create the "Automatically expand columns as needed" button
+#: ../thunar/thunar-column-editor.c:286
+msgid "Automatically _expand columns as needed"
+msgstr ""
+
+#: ../thunar/thunar-column-model.c:894 ../thunar/thunar-list-model.c:702
+#: ../thunar/thunar-list-model.c:731
+#: ../thunar/thunar-permissions-chooser.c:270
+msgid "Unknown"
+msgstr "Onbekend"
+
 #: ../thunar/thunar-create-dialog.c:180 ../thunar/thunar-standard-view.c:2242
 msgid "Enter the new name:"
 msgstr "Nieuwe naam invoeren:"
@@ -603,27 +668,21 @@ msgstr "Nieuwe naam invoeren:"
 msgid "Cannot convert filename \"%s\" to the local encoding"
 msgstr "Can bestandsnaam `%s' niet naar locale codering converteren"
 
-#.
-#. Permissions chooser
-#.
-#: ../thunar/thunar-details-view.c:212
-#: ../thunar/thunar-properties-dialog.c:414
-msgid "Permissions"
-msgstr "Toestemmingen"
-
-#: ../thunar/thunar-details-view.c:227
-msgid "Type"
-msgstr "Type"
+#: ../thunar/thunar-details-view.c:130
+#, fuzzy
+msgid "Configure _Columns..."
+msgstr "_Alternatieve acties instellen"
 
-#: ../thunar/thunar-details-view.c:239
-msgid "Date modified"
-msgstr "Datum van laatste bewerking"
+#: ../thunar/thunar-details-view.c:130
+#, fuzzy
+msgid "Configure the columns in the detailed list view"
+msgstr "Mapinhoud weergeven als gedetailleerde lijst"
 
-#: ../thunar/thunar-details-view.c:268
+#: ../thunar/thunar-details-view.c:411
 msgid "Detailed directory listing"
 msgstr "Gedetailleerde mappenweergave"
 
-#: ../thunar/thunar-details-view.c:269
+#: ../thunar/thunar-details-view.c:412
 msgid "Details view"
 msgstr "Gedetailleerde weergavemodus"
 
@@ -652,6 +711,52 @@ msgstr "Hierheen een snelkoppeling maken"
 msgid "Failed to execute file \"%s\""
 msgstr "Fout bij het uitvoeren van `%s'"
 
+#: ../thunar/thunar-enum-types.c:60
+#, fuzzy
+msgid "Date Accessed"
+msgstr "Geopend:"
+
+#: ../thunar/thunar-enum-types.c:61
+#, fuzzy
+msgid "Date Modified"
+msgstr "Datum van laatste bewerking"
+
+#: ../thunar/thunar-enum-types.c:62
+#, fuzzy
+msgid "Group"
+msgstr "Groep:"
+
+#: ../thunar/thunar-enum-types.c:63
+#, fuzzy
+msgid "MIME Type"
+msgstr "Type"
+
+#: ../thunar/thunar-enum-types.c:65
+#, fuzzy
+msgid "Owner"
+msgstr "Eigenaar:"
+
+#.
+#. Permissions chooser
+#.
+#: ../thunar/thunar-enum-types.c:66 ../thunar/thunar-properties-dialog.c:414
+msgid "Permissions"
+msgstr "Toestemmingen"
+
+#: ../thunar/thunar-enum-types.c:68
+msgid "Type"
+msgstr "Type"
+
+#: ../thunar/thunar-enum-types.c:69
+#, fuzzy
+msgid "File"
+msgstr "_Bestand"
+
+#: ../thunar/thunar-enum-types.c:70
+#, fuzzy
+msgid "File Name"
+msgstr "Bestandsbeheerder"
+
 #: ../thunar/thunar-file.c:727
 msgid "The root folder has no parent"
 msgstr "Het hoofdmap heeft geen bovenliggende map"
@@ -881,47 +986,47 @@ msgstr[1] "geselecteerde bestandsnamen (zonder paden)"
 msgid "Open With \"%s\""
 msgstr "Openen Met"
 
-#: ../thunar/thunar-list-model.c:714 ../thunar/thunar-properties-dialog.c:656
+#: ../thunar/thunar-list-model.c:750 ../thunar/thunar-properties-dialog.c:656
 msgid "broken link"
 msgstr "foute verwijzing"
 
-#: ../thunar/thunar-list-model.c:1989
+#: ../thunar/thunar-list-model.c:2075
 #, c-format
 msgid "%d item, Free space: %s"
 msgid_plural "%d items, Free space: %s"
 msgstr[0] "%d item, vrije ruimte: %s"
 msgstr[1] "%d items, vrije ruimte: %s"
 
-#: ../thunar/thunar-list-model.c:1994
+#: ../thunar/thunar-list-model.c:2080
 #, c-format
 msgid "%d item"
 msgid_plural "%d items"
 msgstr[0] "%d item"
 msgstr[1] "%d items"
 
-#: ../thunar/thunar-list-model.c:2010
+#: ../thunar/thunar-list-model.c:2096
 #, c-format
 msgid "\"%s\" broken link"
 msgstr "\"%s\" foute verwijzing"
 
-#: ../thunar/thunar-list-model.c:2014
+#: ../thunar/thunar-list-model.c:2100
 #, c-format
 msgid "\"%s\" (%s) link to %s"
 msgstr "\"%s\" (%s) verwijzing naar %s"
 
-#: ../thunar/thunar-list-model.c:2019
+#: ../thunar/thunar-list-model.c:2105
 #, c-format
 msgid "\"%s\" (%s) %s"
 msgstr "\"%s\" (%s) %s"
 
-#: ../thunar/thunar-list-model.c:2036
+#: ../thunar/thunar-list-model.c:2122
 #, c-format
 msgid "%d item selected (%s)"
 msgid_plural "%d items selected (%s)"
 msgstr[0] "%d item geselecteerd (%s)"
 msgstr[1] "%d items geselecteerd (%s)"
 
-#: ../thunar/thunar-list-model.c:2041
+#: ../thunar/thunar-list-model.c:2127
 #, c-format
 msgid "%d item selected"
 msgid_plural "%d items selected"
@@ -1004,10 +1109,6 @@ msgstr "Lezen en schrijven"
 msgid "Owner:"
 msgstr "Eigenaar:"
 
-#: ../thunar/thunar-permissions-chooser.c:270
-msgid "Unknown"
-msgstr "Onbekend"
-
 #: ../thunar/thunar-permissions-chooser.c:284
 #: ../thunar/thunar-permissions-chooser.c:337
 msgid "Access:"
diff --git a/po/pl.po b/po/pl.po
index cb4077b28..0d96623e5 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Thunar 0.2.1svn\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-03-11 18:15+0100\n"
+"POT-Creation-Date: 2006-03-12 18:55+0100\n"
 "PO-Revision-Date: 2006-01-13 14:21+0100\n"
 "Last-Translator: Tomasz Michał Łukaszewski <T.Lukaszewski@aster.pl>\n"
 "Language-Team: Polish <pl@li.org>\n"
@@ -174,7 +174,7 @@ msgid "The icon of the mime handler"
 msgstr ""
 
 #: ../thunar-vfs/thunar-vfs-mime-handler.c:176
-#: ../thunar/thunar-details-view.c:178
+#: ../thunar/thunar-enum-types.c:64
 msgid "Name"
 msgstr "Nazwa"
 
@@ -200,7 +200,7 @@ msgstr "Ścieżka jest zbyt długa"
 msgid "URI too long to fit into buffer"
 msgstr "Identyfikator URI jest zbyt długi"
 
-#: ../thunar-vfs/thunar-vfs-thumb.c:176 ../thunar/thunar-details-view.c:197
+#: ../thunar-vfs/thunar-vfs-thumb.c:176 ../thunar/thunar-enum-types.c:67
 msgid "Size"
 msgstr "Rozmiar"
 
@@ -264,7 +264,7 @@ msgstr "Nie udało się zmienić nazwy %s."
 msgid "copy of %s"
 msgstr "kopia %s"
 
-#: ../thunar-vfs/thunar-vfs-xfer.c:190 ../thunar/thunar-list-model.c:716
+#: ../thunar-vfs/thunar-vfs-xfer.c:190 ../thunar/thunar-list-model.c:752
 #: ../thunar/thunar-properties-dialog.c:658
 #, c-format
 msgid "link to %s"
@@ -586,6 +586,72 @@ msgstr "Inne aplikacje"
 msgid "There is nothing on the clipboard to paste"
 msgstr "W schowku nie ma nic do wklejenia"
 
+#: ../thunar/thunar-column-editor.c:153
+msgid "Configure Columns in the Detailed List View"
+msgstr ""
+
+#: ../thunar/thunar-column-editor.c:164
+msgid "Visible Columns"
+msgstr ""
+
+#. create the top label for the column editor dialog
+#: ../thunar/thunar-column-editor.c:177
+msgid ""
+"Chooser the order of information to appear in the\n"
+"detailed list view."
+msgstr ""
+
+#. create the "Move Up" button
+#: ../thunar/thunar-column-editor.c:218
+msgid "Move _Up"
+msgstr ""
+
+#. create the "Move Down" button
+#: ../thunar/thunar-column-editor.c:228
+msgid "Move Dow_n"
+msgstr ""
+
+#. create the "Show" button
+#: ../thunar/thunar-column-editor.c:238
+msgid "_Show"
+msgstr ""
+
+#. create the "Hide" button
+#: ../thunar/thunar-column-editor.c:244
+#, fuzzy
+msgid "Hi_de"
+msgstr "Niewidoczny"
+
+#. create the "Use Default" button
+#: ../thunar/thunar-column-editor.c:255
+msgid "Use De_fault"
+msgstr ""
+
+#: ../thunar/thunar-column-editor.c:264
+msgid "Column Sizing"
+msgstr ""
+
+#. create the label that explains the column sizing option
+#: ../thunar/thunar-column-editor.c:277
+msgid ""
+"By default columns will be automatically expanded if\n"
+"needed to ensure the text is fully visible. If you dis-\n"
+"able this behavior below the file manager will always\n"
+"use the user defined column widths."
+msgstr ""
+
+#. create the "Automatically expand columns as needed" button
+#: ../thunar/thunar-column-editor.c:286
+msgid "Automatically _expand columns as needed"
+msgstr ""
+
+#: ../thunar/thunar-column-model.c:894 ../thunar/thunar-list-model.c:702
+#: ../thunar/thunar-list-model.c:731
+#: ../thunar/thunar-permissions-chooser.c:270
+#, fuzzy
+msgid "Unknown"
+msgstr "data nieznana"
+
 #: ../thunar/thunar-create-dialog.c:180 ../thunar/thunar-standard-view.c:2242
 msgid "Enter the new name:"
 msgstr ""
@@ -596,27 +662,19 @@ msgstr ""
 msgid "Cannot convert filename \"%s\" to the local encoding"
 msgstr ""
 
-#.
-#. Permissions chooser
-#.
-#: ../thunar/thunar-details-view.c:212
-#: ../thunar/thunar-properties-dialog.c:414
-msgid "Permissions"
-msgstr "Prawa dostępu"
-
-#: ../thunar/thunar-details-view.c:227
-msgid "Type"
-msgstr "Typ"
+#: ../thunar/thunar-details-view.c:130
+msgid "Configure _Columns..."
+msgstr ""
 
-#: ../thunar/thunar-details-view.c:239
-msgid "Date modified"
-msgstr "Ostatnia modyfikacja"
+#: ../thunar/thunar-details-view.c:130
+msgid "Configure the columns in the detailed list view"
+msgstr ""
 
-#: ../thunar/thunar-details-view.c:268
+#: ../thunar/thunar-details-view.c:411
 msgid "Detailed directory listing"
 msgstr "Pokazuj szczegóły elementów w katalogu"
 
-#: ../thunar/thunar-details-view.c:269
+#: ../thunar/thunar-details-view.c:412
 msgid "Details view"
 msgstr "Widok szczegółowy"
 
@@ -645,6 +703,50 @@ msgstr "Utwórz _łacze"
 msgid "Failed to execute file \"%s\""
 msgstr "Nie udało się uruchomić %s"
 
+#: ../thunar/thunar-enum-types.c:60
+#, fuzzy
+msgid "Date Accessed"
+msgstr "Ostatnio otwarty:"
+
+#: ../thunar/thunar-enum-types.c:61
+#, fuzzy
+msgid "Date Modified"
+msgstr "Ostatnia modyfikacja"
+
+#: ../thunar/thunar-enum-types.c:62
+msgid "Group"
+msgstr ""
+
+#: ../thunar/thunar-enum-types.c:63
+#, fuzzy
+msgid "MIME Type"
+msgstr "Typ"
+
+#: ../thunar/thunar-enum-types.c:65
+msgid "Owner"
+msgstr ""
+
+#.
+#. Permissions chooser
+#.
+#: ../thunar/thunar-enum-types.c:66 ../thunar/thunar-properties-dialog.c:414
+msgid "Permissions"
+msgstr "Prawa dostępu"
+
+#: ../thunar/thunar-enum-types.c:68
+msgid "Type"
+msgstr "Typ"
+
+#: ../thunar/thunar-enum-types.c:69
+#, fuzzy
+msgid "File"
+msgstr "_Plik"
+
+#: ../thunar/thunar-enum-types.c:70
+#, fuzzy
+msgid "File Name"
+msgstr "Menedżer plików"
+
 #: ../thunar/thunar-file.c:727
 msgid "The root folder has no parent"
 msgstr "Katalog główny nie ma katalogu nadrzędnego"
@@ -881,11 +983,11 @@ msgstr[1] ""
 msgid "Open With \"%s\""
 msgstr "Otwórz z"
 
-#: ../thunar/thunar-list-model.c:714 ../thunar/thunar-properties-dialog.c:656
+#: ../thunar/thunar-list-model.c:750 ../thunar/thunar-properties-dialog.c:656
 msgid "broken link"
 msgstr "nieprawidłowe łącze"
 
-#: ../thunar/thunar-list-model.c:1989
+#: ../thunar/thunar-list-model.c:2075
 #, c-format
 msgid "%d item, Free space: %s"
 msgid_plural "%d items, Free space: %s"
@@ -893,7 +995,7 @@ msgstr[0] "%d element, dostępna przestrzeń: %s"
 msgstr[1] "%d elementy, dostępna przestrzeń: %s"
 msgstr[2] "%d elementów, dostępna przestrzeń: %s"
 
-#: ../thunar/thunar-list-model.c:1994
+#: ../thunar/thunar-list-model.c:2080
 #, c-format
 msgid "%d item"
 msgid_plural "%d items"
@@ -901,22 +1003,22 @@ msgstr[0] "%d element"
 msgstr[1] "%d elementy"
 msgstr[2] "%d elementów"
 
-#: ../thunar/thunar-list-model.c:2010
+#: ../thunar/thunar-list-model.c:2096
 #, fuzzy, c-format
 msgid "\"%s\" broken link"
 msgstr "nieprawidłowe łącze"
 
-#: ../thunar/thunar-list-model.c:2014
+#: ../thunar/thunar-list-model.c:2100
 #, fuzzy, c-format
 msgid "\"%s\" (%s) link to %s"
 msgstr "%u. Å‚Ä…cze do %s"
 
-#: ../thunar/thunar-list-model.c:2019
+#: ../thunar/thunar-list-model.c:2105
 #, c-format
 msgid "\"%s\" (%s) %s"
 msgstr ""
 
-#: ../thunar/thunar-list-model.c:2036
+#: ../thunar/thunar-list-model.c:2122
 #, c-format
 msgid "%d item selected (%s)"
 msgid_plural "%d items selected (%s)"
@@ -924,7 +1026,7 @@ msgstr[0] "%d zaznaczony element (%s)"
 msgstr[1] "%d zaznaczone elementy (%s)"
 msgstr[2] "%d zaznaczonych elementów (%s)"
 
-#: ../thunar/thunar-list-model.c:2041
+#: ../thunar/thunar-list-model.c:2127
 #, c-format
 msgid "%d item selected"
 msgid_plural "%d items selected"
@@ -1008,11 +1110,6 @@ msgstr ""
 msgid "Owner:"
 msgstr ""
 
-#: ../thunar/thunar-permissions-chooser.c:270
-#, fuzzy
-msgid "Unknown"
-msgstr "data nieznana"
-
 #: ../thunar/thunar-permissions-chooser.c:284
 #: ../thunar/thunar-permissions-chooser.c:337
 #, fuzzy
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 0bd1730c9..9db2b5b6b 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Thunar 0.2.1svn\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-03-11 18:15+0100\n"
+"POT-Creation-Date: 2006-03-12 18:55+0100\n"
 "PO-Revision-Date: 2006-02-10 22:34-0200\n"
 "Last-Translator: Rodrigo Coacci <rcoacci@gmail.com>\n"
 "Language-Team: os-cillation <info@os-cillation.com>\n"
@@ -174,7 +174,7 @@ msgid "The icon of the mime handler"
 msgstr ""
 
 #: ../thunar-vfs/thunar-vfs-mime-handler.c:176
-#: ../thunar/thunar-details-view.c:178
+#: ../thunar/thunar-enum-types.c:64
 msgid "Name"
 msgstr "Nome"
 
@@ -200,7 +200,7 @@ msgstr "Caminho longo demais para caber no buffer"
 msgid "URI too long to fit into buffer"
 msgstr "URI longo demais para caber no buffer"
 
-#: ../thunar-vfs/thunar-vfs-thumb.c:176 ../thunar/thunar-details-view.c:197
+#: ../thunar-vfs/thunar-vfs-thumb.c:176 ../thunar/thunar-enum-types.c:67
 msgid "Size"
 msgstr "Tamanho"
 
@@ -262,7 +262,7 @@ msgstr "Falha ao abrir \"%s\": %s"
 msgid "copy of %s"
 msgstr "cópia de %s"
 
-#: ../thunar-vfs/thunar-vfs-xfer.c:190 ../thunar/thunar-list-model.c:716
+#: ../thunar-vfs/thunar-vfs-xfer.c:190 ../thunar/thunar-list-model.c:752
 #: ../thunar/thunar-properties-dialog.c:658
 #, c-format
 msgid "link to %s"
@@ -582,6 +582,71 @@ msgstr "Outras Aplicações"
 msgid "There is nothing on the clipboard to paste"
 msgstr "Não há nada na área de transferência para colar"
 
+#: ../thunar/thunar-column-editor.c:153
+msgid "Configure Columns in the Detailed List View"
+msgstr ""
+
+#: ../thunar/thunar-column-editor.c:164
+msgid "Visible Columns"
+msgstr ""
+
+#. create the top label for the column editor dialog
+#: ../thunar/thunar-column-editor.c:177
+msgid ""
+"Chooser the order of information to appear in the\n"
+"detailed list view."
+msgstr ""
+
+#. create the "Move Up" button
+#: ../thunar/thunar-column-editor.c:218
+msgid "Move _Up"
+msgstr ""
+
+#. create the "Move Down" button
+#: ../thunar/thunar-column-editor.c:228
+msgid "Move Dow_n"
+msgstr ""
+
+#. create the "Show" button
+#: ../thunar/thunar-column-editor.c:238
+msgid "_Show"
+msgstr ""
+
+#. create the "Hide" button
+#: ../thunar/thunar-column-editor.c:244
+#, fuzzy
+msgid "Hi_de"
+msgstr "_Invisível"
+
+#. create the "Use Default" button
+#: ../thunar/thunar-column-editor.c:255
+msgid "Use De_fault"
+msgstr ""
+
+#: ../thunar/thunar-column-editor.c:264
+msgid "Column Sizing"
+msgstr ""
+
+#. create the label that explains the column sizing option
+#: ../thunar/thunar-column-editor.c:277
+msgid ""
+"By default columns will be automatically expanded if\n"
+"needed to ensure the text is fully visible. If you dis-\n"
+"able this behavior below the file manager will always\n"
+"use the user defined column widths."
+msgstr ""
+
+#. create the "Automatically expand columns as needed" button
+#: ../thunar/thunar-column-editor.c:286
+msgid "Automatically _expand columns as needed"
+msgstr ""
+
+#: ../thunar/thunar-column-model.c:894 ../thunar/thunar-list-model.c:702
+#: ../thunar/thunar-list-model.c:731
+#: ../thunar/thunar-permissions-chooser.c:270
+msgid "Unknown"
+msgstr "Desconhecido"
+
 #: ../thunar/thunar-create-dialog.c:180 ../thunar/thunar-standard-view.c:2242
 msgid "Enter the new name:"
 msgstr "Entre com o novo nome:"
@@ -592,27 +657,20 @@ msgstr "Entre com o novo nome:"
 msgid "Cannot convert filename \"%s\" to the local encoding"
 msgstr "Não pode converter nome de arquivo `%s' para a codificação local"
 
-#.
-#. Permissions chooser
-#.
-#: ../thunar/thunar-details-view.c:212
-#: ../thunar/thunar-properties-dialog.c:414
-msgid "Permissions"
-msgstr "Permissões"
-
-#: ../thunar/thunar-details-view.c:227
-msgid "Type"
-msgstr "Tipo"
+#: ../thunar/thunar-details-view.c:130
+msgid "Configure _Columns..."
+msgstr ""
 
-#: ../thunar/thunar-details-view.c:239
-msgid "Date modified"
-msgstr "Data modificada"
+#: ../thunar/thunar-details-view.c:130
+#, fuzzy
+msgid "Configure the columns in the detailed list view"
+msgstr "Mostrar conteúdo de pasta em uma visualização de lista detalhada"
 
-#: ../thunar/thunar-details-view.c:268
+#: ../thunar/thunar-details-view.c:411
 msgid "Detailed directory listing"
 msgstr "Listagem de diretório detalhada"
 
-#: ../thunar/thunar-details-view.c:269
+#: ../thunar/thunar-details-view.c:412
 msgid "Details view"
 msgstr "Visualização de detalhes"
 
@@ -641,6 +699,52 @@ msgstr "_Ligue aqui"
 msgid "Failed to execute file \"%s\""
 msgstr "Falha ao executar o arquivo \"%s\""
 
+#: ../thunar/thunar-enum-types.c:60
+#, fuzzy
+msgid "Date Accessed"
+msgstr "Acessado:"
+
+#: ../thunar/thunar-enum-types.c:61
+#, fuzzy
+msgid "Date Modified"
+msgstr "Data modificada"
+
+#: ../thunar/thunar-enum-types.c:62
+#, fuzzy
+msgid "Group"
+msgstr "Grupo"
+
+#: ../thunar/thunar-enum-types.c:63
+#, fuzzy
+msgid "MIME Type"
+msgstr "Tipo"
+
+#: ../thunar/thunar-enum-types.c:65
+#, fuzzy
+msgid "Owner"
+msgstr "Dono"
+
+#.
+#. Permissions chooser
+#.
+#: ../thunar/thunar-enum-types.c:66 ../thunar/thunar-properties-dialog.c:414
+msgid "Permissions"
+msgstr "Permissões"
+
+#: ../thunar/thunar-enum-types.c:68
+msgid "Type"
+msgstr "Tipo"
+
+#: ../thunar/thunar-enum-types.c:69
+#, fuzzy
+msgid "File"
+msgstr "_Arquivo"
+
+#: ../thunar/thunar-enum-types.c:70
+#, fuzzy
+msgid "File Name"
+msgstr "Gerenciador de Arquivos"
+
 #: ../thunar/thunar-file.c:727
 msgid "The root folder has no parent"
 msgstr "A pasta raiz não tem parente"
@@ -861,47 +965,47 @@ msgstr[1] "Abrir os arquivos selecionados com as aplicações padrão"
 msgid "Open With \"%s\""
 msgstr "Abrir Com \"%s\""
 
-#: ../thunar/thunar-list-model.c:714 ../thunar/thunar-properties-dialog.c:656
+#: ../thunar/thunar-list-model.c:750 ../thunar/thunar-properties-dialog.c:656
 msgid "broken link"
 msgstr "ligação quebrada"
 
-#: ../thunar/thunar-list-model.c:1989
+#: ../thunar/thunar-list-model.c:2075
 #, c-format
 msgid "%d item, Free space: %s"
 msgid_plural "%d items, Free space: %s"
 msgstr[0] "%d item, espaço livre: %s"
 msgstr[1] "%d ítens, espaço livre: %s"
 
-#: ../thunar/thunar-list-model.c:1994
+#: ../thunar/thunar-list-model.c:2080
 #, c-format
 msgid "%d item"
 msgid_plural "%d items"
 msgstr[0] "%d item"
 msgstr[1] "%d ítens"
 
-#: ../thunar/thunar-list-model.c:2010
+#: ../thunar/thunar-list-model.c:2096
 #, c-format
 msgid "\"%s\" broken link"
 msgstr "ligação quebrada \"%s\""
 
-#: ../thunar/thunar-list-model.c:2014
+#: ../thunar/thunar-list-model.c:2100
 #, c-format
 msgid "\"%s\" (%s) link to %s"
 msgstr "\"%s\" (%s) ligação para %s"
 
-#: ../thunar/thunar-list-model.c:2019
+#: ../thunar/thunar-list-model.c:2105
 #, c-format
 msgid "\"%s\" (%s) %s"
 msgstr "\"%s\" (%s) %s"
 
-#: ../thunar/thunar-list-model.c:2036
+#: ../thunar/thunar-list-model.c:2122
 #, c-format
 msgid "%d item selected (%s)"
 msgid_plural "%d items selected (%s)"
 msgstr[0] "%d item selecionado (%s)"
 msgstr[1] "%d ítens selecionados (%s)"
 
-#: ../thunar/thunar-list-model.c:2041
+#: ../thunar/thunar-list-model.c:2127
 #, c-format
 msgid "%d item selected"
 msgid_plural "%d items selected"
@@ -984,10 +1088,6 @@ msgstr "Leitura & Escrita"
 msgid "Owner:"
 msgstr "Dono"
 
-#: ../thunar/thunar-permissions-chooser.c:270
-msgid "Unknown"
-msgstr "Desconhecido"
-
 #: ../thunar/thunar-permissions-chooser.c:284
 #: ../thunar/thunar-permissions-chooser.c:337
 msgid "Access:"
diff --git a/po/ru.po b/po/ru.po
index 53101941f..230737910 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Thunar 0.2.1svn\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-03-11 18:15+0100\n"
+"POT-Creation-Date: 2006-03-12 18:55+0100\n"
 "PO-Revision-Date: 2006-02-24 16:14+0500\n"
 "Last-Translator: Sergey Fedoseev <fedoseev.sergey@gmail.com>\n"
 "Language-Team: Russian <ru@li.org>\n"
@@ -174,7 +174,7 @@ msgid "The icon of the mime handler"
 msgstr ""
 
 #: ../thunar-vfs/thunar-vfs-mime-handler.c:176
-#: ../thunar/thunar-details-view.c:178
+#: ../thunar/thunar-enum-types.c:64
 msgid "Name"
 msgstr "Имя"
 
@@ -200,7 +200,7 @@ msgstr "Слишком длинный путь, чтобы поместить е
 msgid "URI too long to fit into buffer"
 msgstr "Слишком длинный URI, чтобы поместить его в буфер"
 
-#: ../thunar-vfs/thunar-vfs-thumb.c:176 ../thunar/thunar-details-view.c:197
+#: ../thunar-vfs/thunar-vfs-thumb.c:176 ../thunar/thunar-enum-types.c:67
 msgid "Size"
 msgstr "Размер"
 
@@ -262,7 +262,7 @@ msgstr "Не удалось открыть /proc/mounts: %s"
 msgid "copy of %s"
 msgstr "копия %s"
 
-#: ../thunar-vfs/thunar-vfs-xfer.c:190 ../thunar/thunar-list-model.c:716
+#: ../thunar-vfs/thunar-vfs-xfer.c:190 ../thunar/thunar-list-model.c:752
 #: ../thunar/thunar-properties-dialog.c:658
 #, c-format
 msgid "link to %s"
@@ -583,6 +583,71 @@ msgstr "Другие приложения"
 msgid "There is nothing on the clipboard to paste"
 msgstr "Буфер обмена пуст"
 
+#: ../thunar/thunar-column-editor.c:153
+msgid "Configure Columns in the Detailed List View"
+msgstr ""
+
+#: ../thunar/thunar-column-editor.c:164
+msgid "Visible Columns"
+msgstr ""
+
+#. create the top label for the column editor dialog
+#: ../thunar/thunar-column-editor.c:177
+msgid ""
+"Chooser the order of information to appear in the\n"
+"detailed list view."
+msgstr ""
+
+#. create the "Move Up" button
+#: ../thunar/thunar-column-editor.c:218
+msgid "Move _Up"
+msgstr ""
+
+#. create the "Move Down" button
+#: ../thunar/thunar-column-editor.c:228
+msgid "Move Dow_n"
+msgstr ""
+
+#. create the "Show" button
+#: ../thunar/thunar-column-editor.c:238
+msgid "_Show"
+msgstr ""
+
+#. create the "Hide" button
+#: ../thunar/thunar-column-editor.c:244
+#, fuzzy
+msgid "Hi_de"
+msgstr "_Скрыть"
+
+#. create the "Use Default" button
+#: ../thunar/thunar-column-editor.c:255
+msgid "Use De_fault"
+msgstr ""
+
+#: ../thunar/thunar-column-editor.c:264
+msgid "Column Sizing"
+msgstr ""
+
+#. create the label that explains the column sizing option
+#: ../thunar/thunar-column-editor.c:277
+msgid ""
+"By default columns will be automatically expanded if\n"
+"needed to ensure the text is fully visible. If you dis-\n"
+"able this behavior below the file manager will always\n"
+"use the user defined column widths."
+msgstr ""
+
+#. create the "Automatically expand columns as needed" button
+#: ../thunar/thunar-column-editor.c:286
+msgid "Automatically _expand columns as needed"
+msgstr ""
+
+#: ../thunar/thunar-column-model.c:894 ../thunar/thunar-list-model.c:702
+#: ../thunar/thunar-list-model.c:731
+#: ../thunar/thunar-permissions-chooser.c:270
+msgid "Unknown"
+msgstr "Неизвестно"
+
 #: ../thunar/thunar-create-dialog.c:180 ../thunar/thunar-standard-view.c:2242
 msgid "Enter the new name:"
 msgstr "Введите имя:"
@@ -593,27 +658,21 @@ msgstr "Введите имя:"
 msgid "Cannot convert filename \"%s\" to the local encoding"
 msgstr "Не удается преобразовать имя \"%s\" файла в локальную кодировку"
 
-#.
-#. Permissions chooser
-#.
-#: ../thunar/thunar-details-view.c:212
-#: ../thunar/thunar-properties-dialog.c:414
-msgid "Permissions"
-msgstr "Права"
-
-#: ../thunar/thunar-details-view.c:227
-msgid "Type"
-msgstr "Тип"
+#: ../thunar/thunar-details-view.c:130
+#, fuzzy
+msgid "Configure _Columns..."
+msgstr "Настроить особые действия..."
 
-#: ../thunar/thunar-details-view.c:239
-msgid "Date modified"
-msgstr "Дата изменения"
+#: ../thunar/thunar-details-view.c:130
+#, fuzzy
+msgid "Configure the columns in the detailed list view"
+msgstr "Отображает содержимое текущей папки в виде списка"
 
-#: ../thunar/thunar-details-view.c:268
+#: ../thunar/thunar-details-view.c:411
 msgid "Detailed directory listing"
 msgstr "Подробный список"
 
-#: ../thunar/thunar-details-view.c:269
+#: ../thunar/thunar-details-view.c:412
 msgid "Details view"
 msgstr "Просмотр в виде списка"
 
@@ -642,6 +701,51 @@ msgstr "Создать ссылку здесь"
 msgid "Failed to execute file \"%s\""
 msgstr "Не удалось запустить \"%s\""
 
+#: ../thunar/thunar-enum-types.c:60
+msgid "Date Accessed"
+msgstr ""
+
+#: ../thunar/thunar-enum-types.c:61
+#, fuzzy
+msgid "Date Modified"
+msgstr "Дата изменения"
+
+#: ../thunar/thunar-enum-types.c:62
+#, fuzzy
+msgid "Group"
+msgstr "Группа:"
+
+#: ../thunar/thunar-enum-types.c:63
+#, fuzzy
+msgid "MIME Type"
+msgstr "Тип"
+
+#: ../thunar/thunar-enum-types.c:65
+#, fuzzy
+msgid "Owner"
+msgstr "Владелец:"
+
+#.
+#. Permissions chooser
+#.
+#: ../thunar/thunar-enum-types.c:66 ../thunar/thunar-properties-dialog.c:414
+msgid "Permissions"
+msgstr "Права"
+
+#: ../thunar/thunar-enum-types.c:68
+msgid "Type"
+msgstr "Тип"
+
+#: ../thunar/thunar-enum-types.c:69
+#, fuzzy
+msgid "File"
+msgstr "_Файл"
+
+#: ../thunar/thunar-enum-types.c:70
+#, fuzzy
+msgid "File Name"
+msgstr "Файловый менеджер"
+
 #: ../thunar/thunar-file.c:727
 msgid "The root folder has no parent"
 msgstr "Корневой каталог не имеет родительского каталога"
@@ -870,11 +974,11 @@ msgstr[2] "Открыть выбранные файлы в приложении
 msgid "Open With \"%s\""
 msgstr "Открыть с помощью \"%s\""
 
-#: ../thunar/thunar-list-model.c:714 ../thunar/thunar-properties-dialog.c:656
+#: ../thunar/thunar-list-model.c:750 ../thunar/thunar-properties-dialog.c:656
 msgid "broken link"
 msgstr "битая ссылка"
 
-#: ../thunar/thunar-list-model.c:1989
+#: ../thunar/thunar-list-model.c:2075
 #, c-format
 msgid "%d item, Free space: %s"
 msgid_plural "%d items, Free space: %s"
@@ -882,7 +986,7 @@ msgstr[0] "%d объект, свободного места: %s"
 msgstr[1] "%d объекта, свободного места: %s"
 msgstr[2] "%d объектов, свободного места: %s"
 
-#: ../thunar/thunar-list-model.c:1994
+#: ../thunar/thunar-list-model.c:2080
 #, c-format
 msgid "%d item"
 msgid_plural "%d items"
@@ -890,22 +994,22 @@ msgstr[0] "%d объект"
 msgstr[1] "%d объекта"
 msgstr[2] "%d объектов"
 
-#: ../thunar/thunar-list-model.c:2010
+#: ../thunar/thunar-list-model.c:2096
 #, c-format
 msgid "\"%s\" broken link"
 msgstr "\"%s\" битая ссылка"
 
-#: ../thunar/thunar-list-model.c:2014
+#: ../thunar/thunar-list-model.c:2100
 #, c-format
 msgid "\"%s\" (%s) link to %s"
 msgstr "\"%s\" (%s) ссылается на %s"
 
-#: ../thunar/thunar-list-model.c:2019
+#: ../thunar/thunar-list-model.c:2105
 #, c-format
 msgid "\"%s\" (%s) %s"
 msgstr "\"%s\" (%s) %s"
 
-#: ../thunar/thunar-list-model.c:2036
+#: ../thunar/thunar-list-model.c:2122
 #, c-format
 msgid "%d item selected (%s)"
 msgid_plural "%d items selected (%s)"
@@ -913,7 +1017,7 @@ msgstr[0] "выбран %d объект (%s)"
 msgstr[1] "выбрано %d объекта (%s)"
 msgstr[2] "выбрано %d объектов (%s)"
 
-#: ../thunar/thunar-list-model.c:2041
+#: ../thunar/thunar-list-model.c:2127
 #, c-format
 msgid "%d item selected"
 msgid_plural "%d items selected"
@@ -996,10 +1100,6 @@ msgstr "Чтение/Запись"
 msgid "Owner:"
 msgstr "Владелец:"
 
-#: ../thunar/thunar-permissions-chooser.c:270
-msgid "Unknown"
-msgstr "Неизвестно"
-
 #: ../thunar/thunar-permissions-chooser.c:284
 #: ../thunar/thunar-permissions-chooser.c:337
 msgid "Access:"
diff --git a/po/sv.po b/po/sv.po
index 1a0ce5470..6c80a7ed9 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Thunar 0.2.1svn\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-03-11 18:15+0100\n"
+"POT-Creation-Date: 2006-03-12 18:55+0100\n"
 "PO-Revision-Date: 2006-02-22 16:28+0100\n"
 "Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -171,7 +171,7 @@ msgid "The icon of the mime handler"
 msgstr "Ikonen för mime-handtaget"
 
 #: ../thunar-vfs/thunar-vfs-mime-handler.c:176
-#: ../thunar/thunar-details-view.c:178
+#: ../thunar/thunar-enum-types.c:64
 msgid "Name"
 msgstr "Namn"
 
@@ -197,7 +197,7 @@ msgstr "Sökväg för lång för att passa i buffert"
 msgid "URI too long to fit into buffer"
 msgstr "URI för lång för att passa i buffert"
 
-#: ../thunar-vfs/thunar-vfs-thumb.c:176 ../thunar/thunar-details-view.c:197
+#: ../thunar-vfs/thunar-vfs-thumb.c:176 ../thunar/thunar-enum-types.c:67
 msgid "Size"
 msgstr "Storlek"
 
@@ -259,7 +259,7 @@ msgstr "Misslyckades att öppna /proc/mounts: %s"
 msgid "copy of %s"
 msgstr "kopia av %s"
 
-#: ../thunar-vfs/thunar-vfs-xfer.c:190 ../thunar/thunar-list-model.c:716
+#: ../thunar-vfs/thunar-vfs-xfer.c:190 ../thunar/thunar-list-model.c:752
 #: ../thunar/thunar-properties-dialog.c:658
 #, c-format
 msgid "link to %s"
@@ -578,6 +578,71 @@ msgstr "Andra program"
 msgid "There is nothing on the clipboard to paste"
 msgstr "Det finns inget i Urklipp att klistra in"
 
+#: ../thunar/thunar-column-editor.c:153
+msgid "Configure Columns in the Detailed List View"
+msgstr ""
+
+#: ../thunar/thunar-column-editor.c:164
+msgid "Visible Columns"
+msgstr ""
+
+#. create the top label for the column editor dialog
+#: ../thunar/thunar-column-editor.c:177
+msgid ""
+"Chooser the order of information to appear in the\n"
+"detailed list view."
+msgstr ""
+
+#. create the "Move Up" button
+#: ../thunar/thunar-column-editor.c:218
+msgid "Move _Up"
+msgstr ""
+
+#. create the "Move Down" button
+#: ../thunar/thunar-column-editor.c:228
+msgid "Move Dow_n"
+msgstr ""
+
+#. create the "Show" button
+#: ../thunar/thunar-column-editor.c:238
+msgid "_Show"
+msgstr ""
+
+#. create the "Hide" button
+#: ../thunar/thunar-column-editor.c:244
+#, fuzzy
+msgid "Hi_de"
+msgstr "_Dold"
+
+#. create the "Use Default" button
+#: ../thunar/thunar-column-editor.c:255
+msgid "Use De_fault"
+msgstr ""
+
+#: ../thunar/thunar-column-editor.c:264
+msgid "Column Sizing"
+msgstr ""
+
+#. create the label that explains the column sizing option
+#: ../thunar/thunar-column-editor.c:277
+msgid ""
+"By default columns will be automatically expanded if\n"
+"needed to ensure the text is fully visible. If you dis-\n"
+"able this behavior below the file manager will always\n"
+"use the user defined column widths."
+msgstr ""
+
+#. create the "Automatically expand columns as needed" button
+#: ../thunar/thunar-column-editor.c:286
+msgid "Automatically _expand columns as needed"
+msgstr ""
+
+#: ../thunar/thunar-column-model.c:894 ../thunar/thunar-list-model.c:702
+#: ../thunar/thunar-list-model.c:731
+#: ../thunar/thunar-permissions-chooser.c:270
+msgid "Unknown"
+msgstr "Okänd"
+
 #: ../thunar/thunar-create-dialog.c:180 ../thunar/thunar-standard-view.c:2242
 msgid "Enter the new name:"
 msgstr "Ange det nya namnet:"
@@ -588,27 +653,21 @@ msgstr "Ange det nya namnet:"
 msgid "Cannot convert filename \"%s\" to the local encoding"
 msgstr "Kan inte konvertera filnamnet \"%s\" till lokal teckenkodning"
 
-#.
-#. Permissions chooser
-#.
-#: ../thunar/thunar-details-view.c:212
-#: ../thunar/thunar-properties-dialog.c:414
-msgid "Permissions"
-msgstr "Rättigheter"
-
-#: ../thunar/thunar-details-view.c:227
-msgid "Type"
-msgstr "Typ"
+#: ../thunar/thunar-details-view.c:130
+#, fuzzy
+msgid "Configure _Columns..."
+msgstr "Konfigurera a_npassade åtgärder..."
 
-#: ../thunar/thunar-details-view.c:239
-msgid "Date modified"
-msgstr "Ändringsdatum"
+#: ../thunar/thunar-details-view.c:130
+#, fuzzy
+msgid "Configure the columns in the detailed list view"
+msgstr "Visa mappinnehåll i en detaljerad listvy"
 
-#: ../thunar/thunar-details-view.c:268
+#: ../thunar/thunar-details-view.c:411
 msgid "Detailed directory listing"
 msgstr "Detaljerad kataloglistning"
 
-#: ../thunar/thunar-details-view.c:269
+#: ../thunar/thunar-details-view.c:412
 msgid "Details view"
 msgstr "Detaljvy"
 
@@ -637,6 +696,52 @@ msgstr "_Länka hit"
 msgid "Failed to execute file \"%s\""
 msgstr "Misslyckades att starta filen \"%s\""
 
+#: ../thunar/thunar-enum-types.c:60
+#, fuzzy
+msgid "Date Accessed"
+msgstr "Ã…tkommen:"
+
+#: ../thunar/thunar-enum-types.c:61
+#, fuzzy
+msgid "Date Modified"
+msgstr "Ändringsdatum"
+
+#: ../thunar/thunar-enum-types.c:62
+#, fuzzy
+msgid "Group"
+msgstr "Grupp:"
+
+#: ../thunar/thunar-enum-types.c:63
+#, fuzzy
+msgid "MIME Type"
+msgstr "Typ"
+
+#: ../thunar/thunar-enum-types.c:65
+#, fuzzy
+msgid "Owner"
+msgstr "Ägare:"
+
+#.
+#. Permissions chooser
+#.
+#: ../thunar/thunar-enum-types.c:66 ../thunar/thunar-properties-dialog.c:414
+msgid "Permissions"
+msgstr "Rättigheter"
+
+#: ../thunar/thunar-enum-types.c:68
+msgid "Type"
+msgstr "Typ"
+
+#: ../thunar/thunar-enum-types.c:69
+#, fuzzy
+msgid "File"
+msgstr "_Arkiv"
+
+#: ../thunar/thunar-enum-types.c:70
+#, fuzzy
+msgid "File Name"
+msgstr "Filhanterare"
+
 #: ../thunar/thunar-file.c:727
 msgid "The root folder has no parent"
 msgstr "Rotmappen har ingen förälder"
@@ -858,47 +963,47 @@ msgstr[1] "Öppna de markerade filerna med standardprogrammen"
 msgid "Open With \"%s\""
 msgstr "Öppna med \"%s\""
 
-#: ../thunar/thunar-list-model.c:714 ../thunar/thunar-properties-dialog.c:656
+#: ../thunar/thunar-list-model.c:750 ../thunar/thunar-properties-dialog.c:656
 msgid "broken link"
 msgstr "trasig länk"
 
-#: ../thunar/thunar-list-model.c:1989
+#: ../thunar/thunar-list-model.c:2075
 #, c-format
 msgid "%d item, Free space: %s"
 msgid_plural "%d items, Free space: %s"
 msgstr[0] "%d objekt, Ledigt utrymme: %s"
 msgstr[1] "%d objekt, Ledigt utrymme: %s"
 
-#: ../thunar/thunar-list-model.c:1994
+#: ../thunar/thunar-list-model.c:2080
 #, c-format
 msgid "%d item"
 msgid_plural "%d items"
 msgstr[0] "%d objekt"
 msgstr[1] "%d objekt"
 
-#: ../thunar/thunar-list-model.c:2010
+#: ../thunar/thunar-list-model.c:2096
 #, c-format
 msgid "\"%s\" broken link"
 msgstr "\"%s\" trasig länk"
 
-#: ../thunar/thunar-list-model.c:2014
+#: ../thunar/thunar-list-model.c:2100
 #, c-format
 msgid "\"%s\" (%s) link to %s"
 msgstr "\"%s\" (%s) länk till %s"
 
-#: ../thunar/thunar-list-model.c:2019
+#: ../thunar/thunar-list-model.c:2105
 #, c-format
 msgid "\"%s\" (%s) %s"
 msgstr "\"%s\" (%s) %s"
 
-#: ../thunar/thunar-list-model.c:2036
+#: ../thunar/thunar-list-model.c:2122
 #, c-format
 msgid "%d item selected (%s)"
 msgid_plural "%d items selected (%s)"
 msgstr[0] "%d objekt markerat (%s)"
 msgstr[1] "%d objekt markerade (%s)"
 
-#: ../thunar/thunar-list-model.c:2041
+#: ../thunar/thunar-list-model.c:2127
 #, c-format
 msgid "%d item selected"
 msgid_plural "%d items selected"
@@ -980,10 +1085,6 @@ msgstr "Läsa/Skriva"
 msgid "Owner:"
 msgstr "Ägare:"
 
-#: ../thunar/thunar-permissions-chooser.c:270
-msgid "Unknown"
-msgstr "Okänd"
-
 #: ../thunar/thunar-permissions-chooser.c:284
 #: ../thunar/thunar-permissions-chooser.c:337
 msgid "Access:"
diff --git a/po/zh_TW.po b/po/zh_TW.po
index 2514169da..583cbdbde 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Thunar 0.2.1svn\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-03-11 18:15+0100\n"
+"POT-Creation-Date: 2006-03-12 18:55+0100\n"
 "PO-Revision-Date: 2006-03-05 21:50+0800\n"
 "Last-Translator: Hydonsingore Cia <hydonsingore@mail.educities.edu.tw>\n"
 "Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
@@ -171,7 +171,7 @@ msgid "The icon of the mime handler"
 msgstr "mime 處置程式的圖示"
 
 #: ../thunar-vfs/thunar-vfs-mime-handler.c:176
-#: ../thunar/thunar-details-view.c:178
+#: ../thunar/thunar-enum-types.c:64
 msgid "Name"
 msgstr "名稱"
 
@@ -197,7 +197,7 @@ msgstr "路徑太長,無法放入緩衝區"
 msgid "URI too long to fit into buffer"
 msgstr "URI 太長,無法放入緩衝區"
 
-#: ../thunar-vfs/thunar-vfs-thumb.c:176 ../thunar/thunar-details-view.c:197
+#: ../thunar-vfs/thunar-vfs-thumb.c:176 ../thunar/thunar-enum-types.c:67
 msgid "Size"
 msgstr "大小"
 
@@ -259,7 +259,7 @@ msgstr "無法開啟 /proc/mounts: %s"
 msgid "copy of %s"
 msgstr "%s 的拷貝"
 
-#: ../thunar-vfs/thunar-vfs-xfer.c:190 ../thunar/thunar-list-model.c:716
+#: ../thunar-vfs/thunar-vfs-xfer.c:190 ../thunar/thunar-list-model.c:752
 #: ../thunar/thunar-properties-dialog.c:658
 #, c-format
 msgid "link to %s"
@@ -572,6 +572,70 @@ msgstr "其他應用程式"
 msgid "There is nothing on the clipboard to paste"
 msgstr "剪貼簿中沒有東西可以貼上"
 
+#: ../thunar/thunar-column-editor.c:153
+msgid "Configure Columns in the Detailed List View"
+msgstr ""
+
+#: ../thunar/thunar-column-editor.c:164
+msgid "Visible Columns"
+msgstr ""
+
+#. create the top label for the column editor dialog
+#: ../thunar/thunar-column-editor.c:177
+msgid ""
+"Chooser the order of information to appear in the\n"
+"detailed list view."
+msgstr ""
+
+#. create the "Move Up" button
+#: ../thunar/thunar-column-editor.c:218
+msgid "Move _Up"
+msgstr ""
+
+#. create the "Move Down" button
+#: ../thunar/thunar-column-editor.c:228
+msgid "Move Dow_n"
+msgstr ""
+
+#. create the "Show" button
+#: ../thunar/thunar-column-editor.c:238
+msgid "_Show"
+msgstr ""
+
+#. create the "Hide" button
+#: ../thunar/thunar-column-editor.c:244
+msgid "Hi_de"
+msgstr ""
+
+#. create the "Use Default" button
+#: ../thunar/thunar-column-editor.c:255
+msgid "Use De_fault"
+msgstr ""
+
+#: ../thunar/thunar-column-editor.c:264
+msgid "Column Sizing"
+msgstr ""
+
+#. create the label that explains the column sizing option
+#: ../thunar/thunar-column-editor.c:277
+msgid ""
+"By default columns will be automatically expanded if\n"
+"needed to ensure the text is fully visible. If you dis-\n"
+"able this behavior below the file manager will always\n"
+"use the user defined column widths."
+msgstr ""
+
+#. create the "Automatically expand columns as needed" button
+#: ../thunar/thunar-column-editor.c:286
+msgid "Automatically _expand columns as needed"
+msgstr ""
+
+#: ../thunar/thunar-column-model.c:894 ../thunar/thunar-list-model.c:702
+#: ../thunar/thunar-list-model.c:731
+#: ../thunar/thunar-permissions-chooser.c:270
+msgid "Unknown"
+msgstr ""
+
 #: ../thunar/thunar-create-dialog.c:180 ../thunar/thunar-standard-view.c:2242
 msgid "Enter the new name:"
 msgstr "鍵入新名稱:"
@@ -582,27 +646,19 @@ msgstr "鍵入新名稱:"
 msgid "Cannot convert filename \"%s\" to the local encoding"
 msgstr "無法將檔名 \"%s\" 轉成本地編碼"
 
-#.
-#. Permissions chooser
-#.
-#: ../thunar/thunar-details-view.c:212
-#: ../thunar/thunar-properties-dialog.c:414
-msgid "Permissions"
-msgstr "權限"
-
-#: ../thunar/thunar-details-view.c:227
-msgid "Type"
-msgstr "é¡žåž‹"
+#: ../thunar/thunar-details-view.c:130
+msgid "Configure _Columns..."
+msgstr ""
 
-#: ../thunar/thunar-details-view.c:239
-msgid "Date modified"
-msgstr "資料修改"
+#: ../thunar/thunar-details-view.c:130
+msgid "Configure the columns in the detailed list view"
+msgstr ""
 
-#: ../thunar/thunar-details-view.c:268
+#: ../thunar/thunar-details-view.c:411
 msgid "Detailed directory listing"
 msgstr "詳細目錄列表"
 
-#: ../thunar/thunar-details-view.c:269
+#: ../thunar/thunar-details-view.c:412
 msgid "Details view"
 msgstr "詳細檢視"
 
@@ -630,6 +686,49 @@ msgstr "連結到這裡(_L)"
 msgid "Failed to execute file \"%s\""
 msgstr "無法執行檔案 \"%s\""
 
+#: ../thunar/thunar-enum-types.c:60
+msgid "Date Accessed"
+msgstr ""
+
+#: ../thunar/thunar-enum-types.c:61
+#, fuzzy
+msgid "Date Modified"
+msgstr "資料修改"
+
+#: ../thunar/thunar-enum-types.c:62
+msgid "Group"
+msgstr ""
+
+#: ../thunar/thunar-enum-types.c:63
+#, fuzzy
+msgid "MIME Type"
+msgstr "é¡žåž‹"
+
+#: ../thunar/thunar-enum-types.c:65
+msgid "Owner"
+msgstr ""
+
+#.
+#. Permissions chooser
+#.
+#: ../thunar/thunar-enum-types.c:66 ../thunar/thunar-properties-dialog.c:414
+msgid "Permissions"
+msgstr "權限"
+
+#: ../thunar/thunar-enum-types.c:68
+msgid "Type"
+msgstr "é¡žåž‹"
+
+#: ../thunar/thunar-enum-types.c:69
+#, fuzzy
+msgid "File"
+msgstr "所有檔案"
+
+#: ../thunar/thunar-enum-types.c:70
+#, fuzzy
+msgid "File Name"
+msgstr "名稱"
+
 #: ../thunar/thunar-file.c:727
 msgid "The root folder has no parent"
 msgstr "沒有比根目錄更上層的目錄"
@@ -848,47 +947,47 @@ msgstr[1] ""
 msgid "Open With \"%s\""
 msgstr ""
 
-#: ../thunar/thunar-list-model.c:714 ../thunar/thunar-properties-dialog.c:656
+#: ../thunar/thunar-list-model.c:750 ../thunar/thunar-properties-dialog.c:656
 msgid "broken link"
 msgstr ""
 
-#: ../thunar/thunar-list-model.c:1989
+#: ../thunar/thunar-list-model.c:2075
 #, c-format
 msgid "%d item, Free space: %s"
 msgid_plural "%d items, Free space: %s"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../thunar/thunar-list-model.c:1994
+#: ../thunar/thunar-list-model.c:2080
 #, c-format
 msgid "%d item"
 msgid_plural "%d items"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../thunar/thunar-list-model.c:2010
+#: ../thunar/thunar-list-model.c:2096
 #, c-format
 msgid "\"%s\" broken link"
 msgstr ""
 
-#: ../thunar/thunar-list-model.c:2014
+#: ../thunar/thunar-list-model.c:2100
 #, c-format
 msgid "\"%s\" (%s) link to %s"
 msgstr ""
 
-#: ../thunar/thunar-list-model.c:2019
+#: ../thunar/thunar-list-model.c:2105
 #, c-format
 msgid "\"%s\" (%s) %s"
 msgstr ""
 
-#: ../thunar/thunar-list-model.c:2036
+#: ../thunar/thunar-list-model.c:2122
 #, c-format
 msgid "%d item selected (%s)"
 msgid_plural "%d items selected (%s)"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../thunar/thunar-list-model.c:2041
+#: ../thunar/thunar-list-model.c:2127
 #, c-format
 msgid "%d item selected"
 msgid_plural "%d items selected"
@@ -970,10 +1069,6 @@ msgstr ""
 msgid "Owner:"
 msgstr ""
 
-#: ../thunar/thunar-permissions-chooser.c:270
-msgid "Unknown"
-msgstr ""
-
 #: ../thunar/thunar-permissions-chooser.c:284
 #: ../thunar/thunar-permissions-chooser.c:337
 msgid "Access:"
diff --git a/thunar/Makefile.am b/thunar/Makefile.am
index 66a93989b..0afbd2670 100644
--- a/thunar/Makefile.am
+++ b/thunar/Makefile.am
@@ -38,10 +38,15 @@ Thunar_SOURCES =							\
 	thunar-chooser-model.h						\
 	thunar-clipboard-manager.c					\
 	thunar-clipboard-manager.h					\
+	thunar-column-editor.c						\
+	thunar-column-editor.h						\
+	thunar-column-model.c						\
+	thunar-column-model.h						\
 	thunar-component.c						\
 	thunar-component.h						\
 	thunar-create-dialog.c						\
 	thunar-create-dialog.h						\
+	thunar-details-view-ui.h					\
 	thunar-details-view.c						\
 	thunar-details-view.h						\
 	thunar-dialogs.c						\
@@ -202,6 +207,7 @@ CLEANFILES =								\
 DISTCLEANFILES =							\
 	$(thunar_built_sources)						\
 	stamp-thunar-marshal.h						\
+	thunar-details-view-ui.h					\
 	thunar-icon-view-ui.h						\
 	thunar-launcher-ui.h						\
 	thunar-location-buttons-ui.h					\
@@ -213,6 +219,7 @@ DISTCLEANFILES =							\
 
 BUILT_SOURCES =								\
 	$(thunar_built_sources)						\
+	thunar-details-view-ui.h					\
 	thunar-icon-view-ui.h						\
 	thunar-launcher-ui.h						\
 	thunar-location-buttons-ui.h					\
@@ -233,6 +240,9 @@ thunar-throbber-fallback.c: $(srcdir)/thunar-throbber-fallback.png Makefile
 thunar-thumbnail-frame.c: $(srcdir)/thunar-thumbnail-frame.png Makefile
 	(echo "#include <thunar/thunar-thumbnail-frame.h>" && gdk-pixbuf-csource --extern --raw --stream --name=thunar_thumbnail_frame $(srcdir)/thunar-thumbnail-frame.png) > thunar-thumbnail-frame.c
 
+thunar-details-view-ui.h: Makefile $(srcdir)/thunar-details-view-ui.xml
+	exo-csource --static --name=thunar_details_view_ui $(srcdir)/thunar-details-view-ui.xml > thunar-details-view-ui.h
+
 thunar-icon-view-ui.h: Makefile $(srcdir)/thunar-icon-view-ui.xml
 	exo-csource --static --name=thunar_icon_view_ui $(srcdir)/thunar-icon-view-ui.xml > thunar-icon-view-ui.h
 
@@ -271,6 +281,7 @@ endif
 
 EXTRA_DIST =								\
 	thunar-dbus-service-infos.xml					\
+	thunar-details-view-ui.xml					\
 	thunar-icon-view-ui.xml						\
 	thunar-launcher-ui.xml						\
 	thunar-location-buttons-ui.xml					\
diff --git a/thunar/thunar-column-editor.c b/thunar/thunar-column-editor.c
new file mode 100644
index 000000000..53b4cbe0e
--- /dev/null
+++ b/thunar/thunar-column-editor.c
@@ -0,0 +1,603 @@
+/* $Id$ */
+/*-
+ * Copyright (c) 2006 Benedikt Meurer <benny@xfce.org>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+ * Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <thunar/thunar-abstract-dialog.h>
+#include <thunar/thunar-column-editor.h>
+#include <thunar/thunar-pango-extensions.h>
+#include <thunar/thunar-preferences.h>
+
+
+
+static void thunar_column_editor_class_init         (ThunarColumnEditorClass  *klass);
+static void thunar_column_editor_init               (ThunarColumnEditor       *column_editor);
+static void thunar_column_editor_finalize           (GObject                  *object);
+static void thunar_column_editor_move_down          (GtkWidget                *button,
+                                                     ThunarColumnEditor       *column_editor);
+static void thunar_column_editor_move_up            (GtkWidget                *button,
+                                                     ThunarColumnEditor       *column_editor);
+static void thunar_column_editor_toggled            (GtkCellRendererToggle    *cell_renderer,
+                                                     const gchar              *path_string,
+                                                     ThunarColumnEditor       *column_editor);
+static void thunar_column_editor_toggle_visibility  (GtkWidget                *button,
+                                                     ThunarColumnEditor       *column_editor);
+static void thunar_column_editor_update_buttons     (ThunarColumnEditor       *column_editor);
+static void thunar_column_editor_use_defaults       (GtkWidget                *button,
+                                                     ThunarColumnEditor       *column_editor);
+
+
+
+struct _ThunarColumnEditorClass
+{
+  ThunarAbstractDialogClass __parent__;
+};
+
+struct _ThunarColumnEditor
+{
+  ThunarAbstractDialog __parent__;
+
+  ThunarPreferences *preferences;
+
+  ThunarColumnModel *column_model;
+
+  GtkWidget         *tree_view;
+  GtkWidget         *up_button;
+  GtkWidget         *down_button;
+  GtkWidget         *show_button;
+  GtkWidget         *hide_button;
+};
+
+
+
+static GObjectClass *thunar_column_editor_parent_class;
+
+
+
+GType
+thunar_column_editor_get_type (void)
+{
+  static GType type = G_TYPE_INVALID;
+
+  if (G_UNLIKELY (type == G_TYPE_INVALID))
+    {
+      static const GTypeInfo info =
+      {
+        sizeof (ThunarColumnEditorClass),
+        NULL,
+        NULL,
+        (GClassInitFunc) thunar_column_editor_class_init,
+        NULL,
+        NULL,
+        sizeof (ThunarColumnEditor),
+        0,
+        (GInstanceInitFunc) thunar_column_editor_init,
+        NULL,
+      };
+
+      type = g_type_register_static (THUNAR_TYPE_ABSTRACT_DIALOG, I_("ThunarColumnEditor"), &info, 0);
+    }
+
+  return type;
+}
+
+
+
+static void
+thunar_column_editor_class_init (ThunarColumnEditorClass *klass)
+{
+  GObjectClass *gobject_class;
+
+  /* determine the parent type class */
+  thunar_column_editor_parent_class = g_type_class_peek_parent (klass);
+
+  gobject_class = G_OBJECT_CLASS (klass);
+  gobject_class->finalize = thunar_column_editor_finalize;
+}
+
+
+
+static void
+thunar_column_editor_init (ThunarColumnEditor *column_editor)
+{
+  GtkTreeViewColumn *column;
+  GtkTreeSelection  *selection;
+  GtkCellRenderer   *renderer;
+  AtkRelationSet    *relations;
+  AtkRelation       *relation;
+  GtkTreeIter        iter;
+  AtkObject         *object;
+  GtkWidget         *separator;
+  GtkWidget         *button;
+  GtkWidget         *frame;
+  GtkWidget         *image;
+  GtkWidget         *label;
+  GtkWidget         *table;
+  GtkWidget         *vbox;
+  GtkWidget         *swin;
+
+  /* grab a reference on the preferences */
+  column_editor->preferences = thunar_preferences_get ();
+
+  /* grab a reference on the shared column model */
+  column_editor->column_model = thunar_column_model_get_default ();
+  g_signal_connect_data (G_OBJECT (column_editor->column_model), "row-changed", G_CALLBACK (thunar_column_editor_update_buttons),
+                         column_editor, NULL, G_CONNECT_AFTER | G_CONNECT_SWAPPED);
+  g_signal_connect_data (G_OBJECT (column_editor->column_model), "rows-reordered", G_CALLBACK (thunar_column_editor_update_buttons),
+                         column_editor, NULL, G_CONNECT_AFTER | G_CONNECT_SWAPPED);
+
+  /* setup the dialog */
+  gtk_dialog_add_button (GTK_DIALOG (column_editor), GTK_STOCK_HELP, GTK_RESPONSE_HELP);
+  gtk_dialog_add_button (GTK_DIALOG (column_editor), GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE);
+  gtk_dialog_set_default_response (GTK_DIALOG (column_editor), GTK_RESPONSE_CLOSE);
+  gtk_dialog_set_has_separator (GTK_DIALOG (column_editor), FALSE);
+  gtk_window_set_resizable (GTK_WINDOW (column_editor), FALSE);
+  gtk_window_set_title (GTK_WINDOW (column_editor), _("Configure Columns in the Detailed List View"));
+
+  vbox = gtk_vbox_new (FALSE, 6);
+  gtk_container_set_border_width (GTK_CONTAINER (vbox), 6);
+  gtk_box_pack_start (GTK_BOX (GTK_DIALOG (column_editor)->vbox), vbox, TRUE, TRUE, 0);
+  gtk_widget_show (vbox);
+
+  frame = g_object_new (GTK_TYPE_FRAME, "border-width", 0, "shadow-type", GTK_SHADOW_NONE, NULL);
+  gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0);
+  gtk_widget_show (frame);
+
+  label = gtk_label_new (_("Visible Columns"));
+  gtk_label_set_attributes (GTK_LABEL (label), thunar_pango_attr_list_bold ());
+  gtk_frame_set_label_widget (GTK_FRAME (frame), label);
+  gtk_widget_show (label);
+
+  table = gtk_table_new (8, 2, FALSE);
+  gtk_table_set_row_spacings (GTK_TABLE (table), 6);
+  gtk_table_set_col_spacings (GTK_TABLE (table), 6);
+  gtk_container_set_border_width (GTK_CONTAINER (table), 12);
+  gtk_container_add (GTK_CONTAINER (frame), table);
+  gtk_widget_show (table);
+
+  /* create the top label for the column editor dialog */
+  label = gtk_label_new (_("Chooser the order of information to appear in the\ndetailed list view."));
+  gtk_misc_set_alignment (GTK_MISC (label), 0.0f, 0.5f);
+  gtk_table_attach (GTK_TABLE (table), label, 0, 2, 0, 1, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
+  gtk_widget_show (label);
+
+  /* create the scrolled window for the tree view */
+  swin = gtk_scrolled_window_new (NULL, NULL);
+  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (swin), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+  gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (swin), GTK_SHADOW_IN);
+  gtk_table_attach (GTK_TABLE (table), swin, 0, 1, 1, 7, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
+  gtk_widget_show (swin);
+
+  /* create the tree view */
+  column_editor->tree_view = gtk_tree_view_new ();
+  gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (column_editor->tree_view), FALSE);
+  gtk_tree_view_set_model (GTK_TREE_VIEW (column_editor->tree_view), GTK_TREE_MODEL (column_editor->column_model));
+  gtk_container_add (GTK_CONTAINER (swin), column_editor->tree_view);
+  gtk_widget_show (column_editor->tree_view);
+
+  /* append the toggle column */
+  column = gtk_tree_view_column_new ();
+  renderer = gtk_cell_renderer_toggle_new ();
+  g_signal_connect (G_OBJECT (renderer), "toggled", G_CALLBACK (thunar_column_editor_toggled), column_editor);
+  gtk_tree_view_column_pack_start (column, renderer, FALSE);
+  gtk_tree_view_column_set_attributes (column, renderer,
+                                       "active", THUNAR_COLUMN_MODEL_COLUMN_VISIBLE,
+                                       "activatable", THUNAR_COLUMN_MODEL_COLUMN_MUTABLE,
+                                       NULL);
+  gtk_tree_view_append_column (GTK_TREE_VIEW (column_editor->tree_view), column);
+
+  /* append the name column */
+  column = gtk_tree_view_column_new ();
+  gtk_tree_view_column_set_expand (column, TRUE);
+  renderer = gtk_cell_renderer_text_new ();
+  gtk_tree_view_column_pack_start (column, renderer, TRUE);
+  gtk_tree_view_column_set_attributes (column, renderer,
+                                       "text", THUNAR_COLUMN_MODEL_COLUMN_NAME,
+                                       NULL);
+  gtk_tree_view_append_column (GTK_TREE_VIEW (column_editor->tree_view), column);
+
+  /* create the "Move Up" button */
+  column_editor->up_button = gtk_button_new_with_mnemonic (_("Move _Up"));
+  g_signal_connect (G_OBJECT (column_editor->up_button), "clicked", G_CALLBACK (thunar_column_editor_move_up), column_editor);
+  gtk_table_attach (GTK_TABLE (table), column_editor->up_button, 1, 2, 1, 2, GTK_FILL, 0, 0, 0);
+  gtk_widget_show (column_editor->up_button);
+
+  image = gtk_image_new_from_stock (GTK_STOCK_GO_UP, GTK_ICON_SIZE_BUTTON);
+  gtk_button_set_image (GTK_BUTTON (column_editor->up_button), image);
+  gtk_widget_show (image);
+
+  /* create the "Move Down" button */
+  column_editor->down_button = gtk_button_new_with_mnemonic (_("Move Dow_n"));
+  g_signal_connect (G_OBJECT (column_editor->down_button), "clicked", G_CALLBACK (thunar_column_editor_move_down), column_editor);
+  gtk_table_attach (GTK_TABLE (table), column_editor->down_button, 1, 2, 2, 3, GTK_FILL, 0, 0, 0);
+  gtk_widget_show (column_editor->down_button);
+
+  image = gtk_image_new_from_stock (GTK_STOCK_GO_DOWN, GTK_ICON_SIZE_BUTTON);
+  gtk_button_set_image (GTK_BUTTON (column_editor->down_button), image);
+  gtk_widget_show (image);
+
+  /* create the "Show" button */
+  column_editor->show_button = gtk_button_new_with_mnemonic (_("_Show"));
+  g_signal_connect (G_OBJECT (column_editor->show_button), "clicked", G_CALLBACK (thunar_column_editor_toggle_visibility), column_editor);
+  gtk_table_attach (GTK_TABLE (table), column_editor->show_button, 1, 2, 3, 4, GTK_FILL, 0, 0, 0);
+  gtk_widget_show (column_editor->show_button);
+
+  /* create the "Hide" button */
+  column_editor->hide_button = gtk_button_new_with_mnemonic (_("Hi_de"));
+  g_signal_connect (G_OBJECT (column_editor->hide_button), "clicked", G_CALLBACK (thunar_column_editor_toggle_visibility), column_editor);
+  gtk_table_attach (GTK_TABLE (table), column_editor->hide_button, 1, 2, 4, 5, GTK_FILL, 0, 0, 0);
+  gtk_widget_show (column_editor->hide_button);
+
+  /* create the horiz separator */
+  separator = gtk_hseparator_new ();
+  gtk_table_attach (GTK_TABLE (table), separator, 1, 2, 5, 6, GTK_FILL, 0, 0, 0);
+  gtk_widget_show (separator);
+
+  /* create the "Use Default" button */
+  button = gtk_button_new_with_mnemonic (_("Use De_fault"));
+  g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (thunar_column_editor_use_defaults), column_editor);
+  gtk_table_attach (GTK_TABLE (table), button, 1, 2, 6, 7, GTK_FILL, 0, 0, 0);
+  gtk_widget_show (button);
+
+  frame = g_object_new (GTK_TYPE_FRAME, "border-width", 0, "shadow-type", GTK_SHADOW_NONE, NULL);
+  gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, TRUE, 0);
+  gtk_widget_show (frame);
+
+  label = gtk_label_new (_("Column Sizing"));
+  gtk_label_set_attributes (GTK_LABEL (label), thunar_pango_attr_list_bold ());
+  gtk_frame_set_label_widget (GTK_FRAME (frame), label);
+  gtk_widget_show (label);
+
+  table = gtk_table_new (2, 1, FALSE);
+  gtk_table_set_row_spacings (GTK_TABLE (table), 6);
+  gtk_table_set_col_spacings (GTK_TABLE (table), 6);
+  gtk_container_set_border_width (GTK_CONTAINER (table), 12);
+  gtk_container_add (GTK_CONTAINER (frame), table);
+  gtk_widget_show (table);
+
+  /* create the label that explains the column sizing option */
+  label = gtk_label_new (_("By default columns will be automatically expanded if\n"
+                           "needed to ensure the text is fully visible. If you dis-\n"
+                           "able this behavior below the file manager will always\n"
+                           "use the user defined column widths."));
+  gtk_misc_set_alignment (GTK_MISC (label), 0.0f, 0.5f);
+  gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1, GTK_FILL, GTK_FILL, 0, 0);
+  gtk_widget_show (label);
+
+  /* create the "Automatically expand columns as needed" button */
+  button = gtk_check_button_new_with_mnemonic (_("Automatically _expand columns as needed"));
+  exo_mutual_binding_new_with_negation (G_OBJECT (column_editor->preferences), "last-details-view-fixed-columns", G_OBJECT (button), "active");
+  gtk_table_attach (GTK_TABLE (table), button, 0, 1, 1, 2, GTK_FILL, GTK_FILL, 0, 0);
+  gtk_widget_show (button);
+
+  /* set Atk label relation for the button */
+  object = gtk_widget_get_accessible (button);
+  relations = atk_object_ref_relation_set (gtk_widget_get_accessible (label));
+  relation = atk_relation_new (&object, 1, ATK_RELATION_LABEL_FOR);
+  atk_relation_set_add (relations, relation);
+  g_object_unref (G_OBJECT (relation));
+
+  /* setup the tree selection */
+  selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (column_editor->tree_view));
+  g_signal_connect_swapped (G_OBJECT (selection), "changed", G_CALLBACK (thunar_column_editor_update_buttons), column_editor);
+
+  /* select the first item */
+  if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (column_editor->column_model), &iter))
+    gtk_tree_selection_select_iter (selection, &iter);
+
+  /* grab focus to the tree view */
+  gtk_widget_grab_focus (column_editor->tree_view);
+}
+
+
+
+static void
+thunar_column_editor_finalize (GObject *object)
+{
+  ThunarColumnEditor *column_editor = THUNAR_COLUMN_EDITOR (object);
+
+  /* release our reference on the shared column model */
+  g_signal_handlers_disconnect_matched (G_OBJECT (column_editor->column_model), G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, column_editor);
+  g_object_unref (G_OBJECT (column_editor->column_model));
+
+  /* release our reference on the preferences */
+  g_object_unref (G_OBJECT (column_editor->preferences));
+
+  (*G_OBJECT_CLASS (thunar_column_editor_parent_class)->finalize) (object);
+}
+
+
+
+static void
+thunar_column_editor_move_down (GtkWidget          *button,
+                                ThunarColumnEditor *column_editor)
+{
+  GtkTreeSelection *selection;
+  GtkTreeModel     *model;
+  GtkTreeIter       iter1;
+  GtkTreeIter       iter2;
+
+  g_return_if_fail (THUNAR_IS_COLUMN_EDITOR (column_editor));
+  g_return_if_fail (GTK_IS_BUTTON (button));
+
+  /* determine the selected tree iterator */
+  selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (column_editor->tree_view));
+  if (gtk_tree_selection_get_selected (selection, &model, &iter1))
+    {
+      /* copy the iterator */
+      iter2 = iter1;
+
+      /* determine the next iterator and exchange the rows */
+      if (gtk_tree_model_iter_next (model, &iter2))
+        thunar_column_model_exchange (THUNAR_COLUMN_MODEL (model), &iter1, &iter2);
+    }
+}
+
+
+
+static void
+thunar_column_editor_move_up (GtkWidget          *button,
+                              ThunarColumnEditor *column_editor)
+{
+  GtkTreeSelection *selection;
+  GtkTreeModel     *model;
+  GtkTreePath      *path;
+  GtkTreeIter       iter1;
+  GtkTreeIter       iter2;
+
+  g_return_if_fail (THUNAR_IS_COLUMN_EDITOR (column_editor));
+  g_return_if_fail (GTK_IS_BUTTON (button));
+
+  /* determine the selected tree iterator */
+  selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (column_editor->tree_view));
+  if (gtk_tree_selection_get_selected (selection, &model, &iter1))
+    {
+      /* determine the path for the iterator */
+      path = gtk_tree_model_get_path (model, &iter1);
+      if (G_LIKELY (path != NULL))
+        {
+          /* advance to the prev path */
+          if (gtk_tree_path_prev (path) && gtk_tree_model_get_iter (model, &iter2, path))
+            {
+              /* exchange the rows */
+              thunar_column_model_exchange (THUNAR_COLUMN_MODEL (model), &iter1, &iter2);
+            }
+
+          /* release the path */
+          gtk_tree_path_free (path);
+        }
+    }
+}
+
+
+
+static void
+thunar_column_editor_toggled (GtkCellRendererToggle *cell_renderer,
+                              const gchar           *path_string,
+                              ThunarColumnEditor    *column_editor)
+{
+  ThunarColumn column;
+  GtkTreePath *path;
+  GtkTreeIter  iter;
+  gboolean     visible;
+
+  g_return_if_fail (GTK_IS_CELL_RENDERER_TOGGLE (cell_renderer));
+  g_return_if_fail (THUNAR_IS_COLUMN_EDITOR (column_editor));
+  g_return_if_fail (path_string != NULL);
+
+  /* determine the tree path for the string */
+  path = gtk_tree_path_new_from_string (path_string);
+  if (gtk_tree_model_get_iter (GTK_TREE_MODEL (column_editor->column_model), &iter, path))
+    {
+      /* determine the column for the iterator... */
+      column = thunar_column_model_get_column_for_iter (column_editor->column_model, &iter);
+
+      /* ...determine the existing visbility setting... */
+      visible = thunar_column_model_get_column_visible (column_editor->column_model, column);
+
+      /* ...and change the visibility of the column */
+      thunar_column_model_set_column_visible (column_editor->column_model, column, !visible);
+    }
+  gtk_tree_path_free (path);
+}
+
+
+
+static void
+thunar_column_editor_toggle_visibility (GtkWidget          *button,
+                                        ThunarColumnEditor *column_editor)
+{
+  GtkTreeSelection *selection;
+  ThunarColumn      column;
+  GtkTreeIter       iter;
+  gboolean          visible;
+
+  g_return_if_fail (THUNAR_IS_COLUMN_EDITOR (column_editor));
+  g_return_if_fail (GTK_IS_BUTTON (button));
+
+  /* determine the selected tree iterator */
+  selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (column_editor->tree_view));
+  if (gtk_tree_selection_get_selected (selection, NULL, &iter))
+    {
+      /* determine the column for the iterator... */
+      column = thunar_column_model_get_column_for_iter (column_editor->column_model, &iter);
+
+      /* ...determine the existing visbility setting... */
+      visible = thunar_column_model_get_column_visible (column_editor->column_model, column);
+
+      /* ...and change the visibility of the column */
+      thunar_column_model_set_column_visible (column_editor->column_model, column, !visible);
+    }
+}
+
+
+
+static void
+thunar_column_editor_update_buttons (ThunarColumnEditor *column_editor)
+{
+  GtkTreeSelection *selection;
+  GtkTreeModel     *model;
+  GtkTreePath      *path;
+  GtkTreeIter       iter;
+  gboolean          mutable;
+  gboolean          visible;
+  gint              index;
+
+  /* determine the selected row */
+  selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (column_editor->tree_view));
+  if (gtk_tree_selection_get_selected (selection, &model, &iter))
+    {
+      /* determine the tree path for the iter */
+      path = gtk_tree_model_get_path (model, &iter);
+      if (G_UNLIKELY (path == NULL))
+        return;
+
+      /* update the "Move Up"/"Move Down" buttons */
+      index = gtk_tree_path_get_indices (path)[0];
+      gtk_widget_set_sensitive (column_editor->up_button, (index > 0));
+      gtk_widget_set_sensitive (column_editor->down_button, (index + 1 < gtk_tree_model_iter_n_children (model, NULL)));
+
+      /* update the "Show"/"Hide" buttons */
+      gtk_tree_model_get (model, &iter, THUNAR_COLUMN_MODEL_COLUMN_MUTABLE, &mutable, THUNAR_COLUMN_MODEL_COLUMN_VISIBLE, &visible, -1);
+      gtk_widget_set_sensitive (column_editor->show_button, mutable && !visible);
+      gtk_widget_set_sensitive (column_editor->hide_button, mutable && visible);
+
+      /* release the path */
+      gtk_tree_path_free (path);
+    }
+  else
+    {
+      /* just disable all buttons */
+      gtk_widget_set_sensitive (column_editor->hide_button, FALSE);
+      gtk_widget_set_sensitive (column_editor->show_button, FALSE);
+      gtk_widget_set_sensitive (column_editor->down_button, FALSE);
+      gtk_widget_set_sensitive (column_editor->up_button, FALSE);
+    }
+}
+
+
+
+static void
+thunar_column_editor_use_defaults (GtkWidget          *button,
+                                   ThunarColumnEditor *column_editor)
+{
+  static const gchar *PROPERTY_NAMES[] =
+  {
+    "last-details-view-column-order",
+    "last-details-view-visible-columns",
+  };
+
+  GtkTreeSelection *selection;
+  GParamSpec       *pspec;
+  GValue            value = { 0, };
+  gint              n;
+
+  /* reset the given properties to its default values */
+  for (n = 0; n < G_N_ELEMENTS (PROPERTY_NAMES); ++n)
+    {
+      pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (column_editor->preferences), PROPERTY_NAMES[n]);
+      g_value_init (&value, pspec->value_type);
+      g_param_value_set_default (pspec, &value);
+      g_object_set_property (G_OBJECT (column_editor->preferences), PROPERTY_NAMES[n], &value);
+      g_value_unset (&value);
+    }
+
+  /* reset the tree view selection */
+  selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (column_editor->tree_view));
+  gtk_tree_selection_unselect_all (selection);
+}
+
+
+
+/**
+ * thunar_column_editor_new:
+ *
+ * Allocates a new #ThunarColumnEditor instance.
+ *
+ * Return value: the newly allocated #ThunarColumnEditor.
+ **/
+GtkWidget*
+thunar_column_editor_new (void)
+{
+  return g_object_new (THUNAR_TYPE_COLUMN_EDITOR, NULL);
+}
+
+
+
+/**
+ * thunar_show_column_editor:
+ * @parent : the #GtkWidget the #GdkScreen on which to open the
+ *           column editor dialog. May also be %NULL in which case
+ *           the default #GdkScreen will be used.
+ *
+ * Convenience function to display a #ThunarColumnEditor.
+ *
+ * If @parent is a #GtkWidget the editor dialog will be opened as
+ * modal dialog above the @parent. Else if @parent is a screen (if
+ * @parent is %NULL the default screen is used), the dialog won't
+ * be modal and it will simply popup on the specified screen.
+ **/
+void
+thunar_show_column_editor (gpointer parent)
+{
+  GtkWidget *window = NULL;
+  GtkWidget *dialog;
+  GdkScreen *screen;
+
+  g_return_if_fail (parent == NULL || GDK_IS_SCREEN (parent) || GTK_IS_WIDGET (parent));
+
+  /* determine the screen for the dialog */
+  if (G_UNLIKELY (parent == NULL))
+    {
+      /* just use the default screen, no toplevel window */
+      screen = gdk_screen_get_default ();
+    }
+  else if (GTK_IS_WIDGET (parent))
+    {
+      /* use the screen for the widget and the toplevel window */
+      screen = gtk_widget_get_screen (parent);
+      window = gtk_widget_get_toplevel (parent);
+    }
+  else
+    {
+      /* parent is a screen, no toplevel window */
+      screen = GDK_SCREEN (parent);
+    }
+
+  /* display the column editor */
+  dialog = thunar_column_editor_new ();
+
+  /* check if we have a toplevel window */
+  if (G_LIKELY (window != NULL && GTK_WIDGET_TOPLEVEL (window)))
+    {
+      /* dialog is transient for toplevel window and modal */
+      gtk_window_set_destroy_with_parent (GTK_WINDOW (dialog), TRUE);
+      gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
+      gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (window));
+    }
+
+  /* run the dialog */
+  gtk_dialog_run (GTK_DIALOG (dialog));
+
+  /* destroy the dialog */
+  gtk_widget_destroy (dialog);
+}
+
diff --git a/thunar/thunar-column-editor.h b/thunar/thunar-column-editor.h
new file mode 100644
index 000000000..b630a13f4
--- /dev/null
+++ b/thunar/thunar-column-editor.h
@@ -0,0 +1,45 @@
+/* $Id$ */
+/*-
+ * Copyright (c) 2006 Benedikt Meurer <benny@xfce.org>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+ * Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+#ifndef __THUNAR_COLUMN_EDITOR_H__
+#define __THUNAR_COLUMN_EDITOR_H__
+
+#include <thunar/thunar-column-model.h>
+
+G_BEGIN_DECLS;
+
+typedef struct _ThunarColumnEditorClass ThunarColumnEditorClass;
+typedef struct _ThunarColumnEditor      ThunarColumnEditor;
+
+#define THUNAR_TYPE_COLUMN_EDITOR             (thunar_column_editor_get_type ())
+#define THUNAR_COLUMN_EDITOR(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), THUNAR_TYPE_COLUMN_EDITOR, ThunarColumnEditor))
+#define THUNAR_COLUMN_EDITOR_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST ((klass), THUNAR_TYPE_COLUMN_EDITOR, ThunarColumnEditorClass))
+#define THUNAR_IS_COLUMN_EDITOR(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), THUNAR_TYPE_COLUMN_EDITOR))
+#define THUNAR_IS_COLUMN_EDITOR_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE ((klass), THUNAR_TYPE_COLUMN_EDITOR))
+#define THUNAR_COLUMN_EDITOR_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS ((obj), THUNAR_TYPE_COLUMN_EDITOR, ThunarColumnEditorClass))
+
+GType      thunar_column_editor_get_type (void) G_GNUC_CONST;
+
+GtkWidget *thunar_column_editor_new      (void) G_GNUC_MALLOC;
+
+void       thunar_show_column_editor     (gpointer parent);
+
+G_END_DECLS;
+
+#endif /* !__THUNAR_COLUMN_EDITOR_H__ */
diff --git a/thunar/thunar-column-model.c b/thunar/thunar-column-model.c
new file mode 100644
index 000000000..4ea5bd566
--- /dev/null
+++ b/thunar/thunar-column-model.c
@@ -0,0 +1,1047 @@
+/* $Id$ */
+/*-
+ * Copyright (c) 2006 Benedikt Meurer <benny@xfce.org>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+ * Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#include <thunar/thunar-column-model.h>
+#include <thunar/thunar-preferences.h>
+
+
+
+/* Signal identifiers */
+enum
+{
+  COLUMNS_CHANGED,
+  LAST_SIGNAL,
+};
+
+
+
+static void               thunar_column_model_class_init              (ThunarColumnModelClass *klass);
+static void               thunar_column_model_tree_model_init         (GtkTreeModelIface      *iface);
+static void               thunar_column_model_init                    (ThunarColumnModel      *column_model);
+static void               thunar_column_model_finalize                (GObject                *object);
+static GtkTreeModelFlags  thunar_column_model_get_flags               (GtkTreeModel           *tree_model);
+static gint               thunar_column_model_get_n_columns           (GtkTreeModel           *tree_model);
+static GType              thunar_column_model_get_column_type         (GtkTreeModel           *tree_model,  
+                                                                       gint                    index);
+static gboolean           thunar_column_model_get_iter                (GtkTreeModel           *tree_model,
+                                                                       GtkTreeIter            *iter,
+                                                                       GtkTreePath            *path);
+static GtkTreePath       *thunar_column_model_get_path                (GtkTreeModel           *tree_model,
+                                                                       GtkTreeIter            *iter);
+static void               thunar_column_model_get_value               (GtkTreeModel           *tree_model,
+                                                                       GtkTreeIter            *iter,
+                                                                       gint                    index,
+                                                                       GValue                 *value);
+static gboolean           thunar_column_model_iter_next               (GtkTreeModel           *tree_model,
+                                                                       GtkTreeIter            *iter);
+static gboolean           thunar_column_model_iter_children           (GtkTreeModel           *tree_model,
+                                                                       GtkTreeIter            *iter,
+                                                                       GtkTreeIter            *parent);
+static gboolean           thunar_column_model_iter_has_child          (GtkTreeModel           *tree_model,
+                                                                       GtkTreeIter            *iter);
+static gint               thunar_column_model_iter_n_children         (GtkTreeModel           *tree_model,
+                                                                       GtkTreeIter            *iter);
+static gboolean           thunar_column_model_iter_nth_child          (GtkTreeModel           *tree_model,
+                                                                       GtkTreeIter            *iter,
+                                                                       GtkTreeIter            *parent,
+                                                                       gint                    n);
+static gboolean           thunar_column_model_iter_parent             (GtkTreeModel           *tree_model,
+                                                                       GtkTreeIter            *iter,
+                                                                       GtkTreeIter            *child);
+static void               thunar_column_model_load_column_order       (ThunarColumnModel      *column_model);
+static void               thunar_column_model_save_column_order       (ThunarColumnModel      *column_model);
+static void               thunar_column_model_notify_column_order     (ThunarPreferences      *preferences,
+                                                                       GParamSpec             *pspec,
+                                                                       ThunarColumnModel      *column_model);
+static void               thunar_column_model_load_column_widths      (ThunarColumnModel      *column_model);
+static void               thunar_column_model_save_column_widths      (ThunarColumnModel      *column_model);
+static void               thunar_column_model_notify_column_widths    (ThunarPreferences      *preferences,
+                                                                       GParamSpec             *pspec,
+                                                                       ThunarColumnModel      *column_model);
+static void               thunar_column_model_load_visible_columns    (ThunarColumnModel      *column_model);
+static void               thunar_column_model_save_visible_columns    (ThunarColumnModel      *column_model);
+static void               thunar_column_model_notify_visible_columns  (ThunarPreferences      *preferences,
+                                                                       GParamSpec             *pspec,
+                                                                       ThunarColumnModel      *column_model);
+
+
+
+struct _ThunarColumnModelClass
+{
+  GObjectClass __parent__;
+
+  /* signals */
+  void (*columns_changed) (ThunarColumnModel *column_model);
+};
+
+struct _ThunarColumnModel
+{
+  GObject __parent__;
+
+  ThunarPreferences *preferences;
+  ThunarColumn       order[THUNAR_N_VISIBLE_COLUMNS];
+  gboolean           visible[THUNAR_N_VISIBLE_COLUMNS];
+  gint               width[THUNAR_N_VISIBLE_COLUMNS];
+  guint              stamp;
+};
+
+
+
+static GObjectClass *thunar_column_model_parent_class;
+static guint         column_model_signals[LAST_SIGNAL];
+
+
+
+GType
+thunar_column_model_get_type (void)
+{
+  static GType type = G_TYPE_INVALID;
+
+  if (G_UNLIKELY (type == G_TYPE_INVALID))
+    {
+      static const GTypeInfo info =
+      {
+        sizeof (ThunarColumnModelClass),
+        NULL,
+        NULL,
+        (GClassInitFunc) thunar_column_model_class_init,
+        NULL,
+        NULL,
+        sizeof (ThunarColumnModel),
+        0,
+        (GInstanceInitFunc) thunar_column_model_init,
+        NULL,
+      };
+
+      static const GInterfaceInfo tree_model_info =
+      {
+        (GInterfaceInitFunc) thunar_column_model_tree_model_init,
+        NULL,
+        NULL,
+      };
+
+      type = g_type_register_static (G_TYPE_OBJECT, I_("ThunarColumnModel"), &info, 0);
+      g_type_add_interface_static (type, GTK_TYPE_TREE_MODEL, &tree_model_info);
+    }
+
+  return type;
+}
+
+
+
+static void
+thunar_column_model_class_init (ThunarColumnModelClass *klass)
+{
+  GObjectClass *gobject_class;
+
+  /* determine the parent type class */
+  thunar_column_model_parent_class = g_type_class_peek_parent (klass);
+
+  gobject_class = G_OBJECT_CLASS (klass);
+  gobject_class->finalize = thunar_column_model_finalize;
+
+  /**
+   * ThunarColumnModel::columns-changed:
+   * @column_model : a #ThunarColumnModel.
+   *
+   * Emitted by @column_model whenever the
+   * order of the columns or the visibility
+   * of a column in @column_model is changed.
+   **/
+  column_model_signals[COLUMNS_CHANGED] =
+    g_signal_new (I_("columns-changed"),
+                  G_TYPE_FROM_CLASS (klass),
+                  G_SIGNAL_RUN_LAST,
+                  G_STRUCT_OFFSET (ThunarColumnModelClass, columns_changed),
+                  NULL, NULL,
+                  g_cclosure_marshal_VOID__VOID,
+                  G_TYPE_NONE, 0);
+}
+
+
+
+static void
+thunar_column_model_tree_model_init (GtkTreeModelIface *iface)
+{
+  iface->get_flags = thunar_column_model_get_flags;
+  iface->get_n_columns = thunar_column_model_get_n_columns;
+  iface->get_column_type = thunar_column_model_get_column_type;
+  iface->get_iter = thunar_column_model_get_iter;
+  iface->get_path = thunar_column_model_get_path;
+  iface->get_value = thunar_column_model_get_value;
+  iface->iter_next = thunar_column_model_iter_next;
+  iface->iter_children = thunar_column_model_iter_children;
+  iface->iter_has_child = thunar_column_model_iter_has_child;
+  iface->iter_n_children = thunar_column_model_iter_n_children;
+  iface->iter_nth_child = thunar_column_model_iter_nth_child;
+  iface->iter_parent = thunar_column_model_iter_parent;
+}
+
+
+
+static void
+thunar_column_model_init (ThunarColumnModel *column_model)
+{
+  /* grab a reference on the preferences */
+  column_model->preferences = thunar_preferences_get ();
+  g_signal_connect (G_OBJECT (column_model->preferences), "notify::last-details-view-column-order",
+                    G_CALLBACK (thunar_column_model_notify_column_order), column_model);
+  g_signal_connect (G_OBJECT (column_model->preferences), "notify::last-details-view-column-widths",
+                    G_CALLBACK (thunar_column_model_notify_column_widths), column_model);
+  g_signal_connect (G_OBJECT (column_model->preferences), "notify::last-details-view-visible-columns",
+                    G_CALLBACK (thunar_column_model_notify_visible_columns), column_model);
+
+  /* generate a random stamp */
+  column_model->stamp = g_random_int ();
+
+  /* load the column order */
+  thunar_column_model_load_column_order (column_model);
+
+  /* load the column widths */
+  thunar_column_model_load_column_widths (column_model);
+
+  /* load the list of visible columns */
+  thunar_column_model_load_visible_columns (column_model);
+}
+
+
+
+static void
+thunar_column_model_finalize (GObject *object)
+{
+  ThunarColumnModel *column_model = THUNAR_COLUMN_MODEL (object);
+
+  /* disconnect from the global preferences */
+  g_signal_handlers_disconnect_matched (G_OBJECT (column_model->preferences), G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, column_model);
+  g_object_unref (G_OBJECT (column_model->preferences));
+
+  (*G_OBJECT_CLASS (thunar_column_model_parent_class)->finalize) (object);
+}
+
+
+
+static GtkTreeModelFlags
+thunar_column_model_get_flags (GtkTreeModel *tree_model)
+{
+  return GTK_TREE_MODEL_LIST_ONLY;
+}
+
+
+
+static gint
+thunar_column_model_get_n_columns (GtkTreeModel *tree_model)
+{
+  return THUNAR_COLUMN_MODEL_N_COLUMNS;
+}
+
+
+
+static GType
+thunar_column_model_get_column_type (GtkTreeModel *tree_model,  
+                                     gint          index)
+{
+  switch (index)
+    {
+    case THUNAR_COLUMN_MODEL_COLUMN_NAME:
+      return G_TYPE_STRING;
+
+    case THUNAR_COLUMN_MODEL_COLUMN_MUTABLE:
+      return G_TYPE_BOOLEAN;
+
+    case THUNAR_COLUMN_MODEL_COLUMN_VISIBLE:
+      return G_TYPE_BOOLEAN;
+    }
+
+  g_assert_not_reached ();
+  return G_TYPE_INVALID;
+}
+
+
+
+static gboolean
+thunar_column_model_get_iter (GtkTreeModel *tree_model,
+                              GtkTreeIter  *iter,
+                              GtkTreePath  *path)
+{
+  ThunarColumnModel *column_model = THUNAR_COLUMN_MODEL (tree_model);
+  ThunarColumn       column;
+
+  g_return_val_if_fail (THUNAR_IS_COLUMN_MODEL (column_model), FALSE);
+  g_return_val_if_fail (gtk_tree_path_get_depth (path) > 0, FALSE);
+
+  /* check if the path is valid */
+  column = gtk_tree_path_get_indices (path)[0];
+  if (G_UNLIKELY (column >= THUNAR_N_VISIBLE_COLUMNS))
+    return FALSE;
+
+  /* generate an iterator */
+  iter->stamp = column_model->stamp;
+  iter->user_data = GINT_TO_POINTER (column);
+
+  return TRUE;
+}
+
+
+
+static GtkTreePath*
+thunar_column_model_get_path (GtkTreeModel *tree_model,
+                              GtkTreeIter  *iter)
+{
+  ThunarColumnModel *column_model = THUNAR_COLUMN_MODEL (tree_model);
+
+  g_return_val_if_fail (THUNAR_IS_COLUMN_MODEL (column_model), NULL);
+  g_return_val_if_fail (iter->stamp == column_model->stamp, NULL);
+
+  /* generate the path for the iterator */
+  return gtk_tree_path_new_from_indices (GPOINTER_TO_INT (iter->user_data), -1);
+}
+
+
+
+static void
+thunar_column_model_get_value (GtkTreeModel *tree_model,
+                               GtkTreeIter  *iter,
+                               gint          index,
+                               GValue       *value)
+{
+  ThunarColumnModel *column_model = THUNAR_COLUMN_MODEL (tree_model);
+  ThunarColumn       column;
+
+  g_return_if_fail (THUNAR_IS_COLUMN_MODEL (column_model));
+  g_return_if_fail (index < THUNAR_COLUMN_MODEL_N_COLUMNS);
+  g_return_if_fail (iter->stamp == column_model->stamp);
+
+  /* determine the column from the iterator */
+  column = GPOINTER_TO_INT (iter->user_data);
+
+  /* resolve the column according to the order */
+  column = column_model->order[column];
+
+  switch (index)
+    {
+    case THUNAR_COLUMN_MODEL_COLUMN_NAME:
+      g_value_init (value, G_TYPE_STRING);
+      g_value_set_static_string (value, thunar_column_model_get_column_name (column_model, column));
+      break;
+
+    case THUNAR_COLUMN_MODEL_COLUMN_MUTABLE:
+      g_value_init (value, G_TYPE_BOOLEAN);
+      g_value_set_boolean (value, (column != THUNAR_COLUMN_NAME));
+      break;
+
+    case THUNAR_COLUMN_MODEL_COLUMN_VISIBLE:
+      g_value_init (value, G_TYPE_BOOLEAN);
+      g_value_set_boolean (value, thunar_column_model_get_column_visible (column_model, column));
+      break;
+
+    default:
+      g_assert_not_reached ();
+      break;
+    }
+}
+
+
+
+static gboolean
+thunar_column_model_iter_next (GtkTreeModel *tree_model,
+                               GtkTreeIter  *iter)
+{
+  ThunarColumnModel *column_model = THUNAR_COLUMN_MODEL (tree_model);
+  ThunarColumn       column;
+
+  g_return_val_if_fail (THUNAR_IS_COLUMN_MODEL (column_model), FALSE);
+  g_return_val_if_fail (iter->stamp == column_model->stamp, FALSE);
+
+  /* move the iterator to the next column */
+  column = GPOINTER_TO_INT (iter->user_data) + 1;
+  iter->user_data = GINT_TO_POINTER (column);
+
+  /* check if the iterator is still valid */
+  return (column < THUNAR_N_VISIBLE_COLUMNS);
+}
+
+
+
+static gboolean
+thunar_column_model_iter_children (GtkTreeModel *tree_model,
+                                   GtkTreeIter  *iter,
+                                   GtkTreeIter  *parent)
+{
+  ThunarColumnModel *column_model = THUNAR_COLUMN_MODEL (tree_model);
+
+  g_return_val_if_fail (THUNAR_IS_COLUMN_MODEL (column_model), FALSE);
+
+  if (G_LIKELY (parent == NULL))
+    {
+      iter->stamp = column_model->stamp;
+      iter->user_data = GINT_TO_POINTER (0);
+    }
+
+  return FALSE;
+}
+
+
+
+static gboolean
+thunar_column_model_iter_has_child (GtkTreeModel *tree_model,
+                                    GtkTreeIter  *iter)
+{
+  return FALSE;
+}
+
+
+
+static gint
+thunar_column_model_iter_n_children (GtkTreeModel *tree_model,
+                                     GtkTreeIter  *iter)
+{
+  ThunarColumnModel *column_model = THUNAR_COLUMN_MODEL (tree_model);
+
+  g_return_val_if_fail (THUNAR_IS_COLUMN_MODEL (column_model), 0);
+
+  return (iter == NULL) ? THUNAR_N_VISIBLE_COLUMNS : 0;
+}
+
+
+
+static gboolean
+thunar_column_model_iter_nth_child (GtkTreeModel *tree_model,
+                                    GtkTreeIter  *iter,
+                                    GtkTreeIter  *parent,
+                                    gint          n)
+{
+  ThunarColumnModel *column_model = THUNAR_COLUMN_MODEL (tree_model);
+
+  g_return_val_if_fail (THUNAR_IS_COLUMN_MODEL (column_model), FALSE);
+
+  if (G_LIKELY (parent == NULL && n < THUNAR_N_VISIBLE_COLUMNS))
+    {
+      iter->stamp = column_model->stamp;
+      iter->user_data = GINT_TO_POINTER (n);
+      return TRUE;
+    }
+
+  return FALSE;
+}
+
+
+
+static gboolean
+thunar_column_model_iter_parent (GtkTreeModel *tree_model,
+                                 GtkTreeIter  *iter,
+                                 GtkTreeIter  *child)
+{
+  return FALSE;
+}
+
+
+
+static void
+thunar_column_model_load_column_order (ThunarColumnModel *column_model)
+{
+  ThunarColumn column;
+  GEnumClass  *klass;
+  GEnumValue  *value;
+  gchar      **column_order;
+  gchar       *tmp;
+  gint         i, j;
+
+  /* determine the column order from the preferences */
+  g_object_get (G_OBJECT (column_model->preferences), "last-details-view-column-order", &tmp, NULL);
+  column_order = g_strsplit (tmp, ",", -1);
+  g_free (tmp);
+
+  /* reset the column order to its default */
+  for (j = 0; j < THUNAR_N_VISIBLE_COLUMNS; ++j)
+    column_model->order[j] = j;
+
+  /* now rearrange the columns according to the preferences */
+  klass = g_type_class_ref (THUNAR_TYPE_COLUMN);
+  for (i = 0; column_order[i] != NULL; ++i)
+    {
+      /* determine the enum value for the name */
+      value = g_enum_get_value_by_name (klass, column_order[i]);
+      if (G_UNLIKELY (value == NULL || value->value == i))
+        continue;
+
+      /* find the current position of the value */
+      for (j = 0; j < THUNAR_N_VISIBLE_COLUMNS; ++j)
+        if (column_model->order[j] == value->value)
+          break;
+
+      /* check if valid */
+      if (G_LIKELY (j < THUNAR_N_VISIBLE_COLUMNS))
+        {
+          /* exchange the positions of i and j */
+          column = column_model->order[i];
+          column_model->order[i] = column_model->order[j];
+          column_model->order[j] = column;
+        }
+    }
+  g_type_class_unref (klass);
+
+  /* release the column order */
+  g_strfreev (column_order);
+}
+
+
+
+static void
+thunar_column_model_save_column_order (ThunarColumnModel *column_model)
+{
+  GEnumClass *klass;
+  GEnumValue *value;
+  GString    *column_order;
+  gint        n;
+
+  /* allocate a string for the column order */
+  column_order = g_string_sized_new (256);
+
+  /* transform the internal visible column list */
+  klass = g_type_class_ref (THUNAR_TYPE_COLUMN);
+  for (n = 0; n < THUNAR_N_VISIBLE_COLUMNS; ++n)
+    {
+      /* append a comma if not empty */
+      if (*column_order->str != '\0')
+        g_string_append_c (column_order, ',');
+
+      /* append the enum value name */
+      value = g_enum_get_value (klass, column_model->order[n]);
+      g_string_append (column_order, value->value_name);
+    }
+  g_type_class_unref (klass);
+
+  /* save the list of visible columns */
+  g_signal_handlers_block_by_func (G_OBJECT (column_model->preferences), thunar_column_model_notify_column_order, column_model);
+  g_object_set (G_OBJECT (column_model->preferences), "last-details-view-column-order", column_order->str, NULL);
+  g_signal_handlers_unblock_by_func (G_OBJECT (column_model->preferences), thunar_column_model_notify_column_order, column_model);
+
+  /* release the string */
+  g_string_free (column_order, TRUE);
+}
+
+
+
+static void
+thunar_column_model_notify_column_order (ThunarPreferences *preferences,
+                                         GParamSpec        *pspec,
+                                         ThunarColumnModel *column_model)
+{
+  GtkTreePath *path;
+  GtkTreeIter  iter;
+  gint         n;
+
+  g_return_if_fail (THUNAR_IS_COLUMN_MODEL (column_model));
+  g_return_if_fail (THUNAR_IS_PREFERENCES (preferences));
+
+  /* load the new column order */
+  thunar_column_model_load_column_order (column_model);
+
+  /* emit "row-changed" for all rows */
+  for (n = 0; n < THUNAR_N_VISIBLE_COLUMNS; ++n)
+    {
+      path = gtk_tree_path_new_from_indices (n, -1);
+      if (gtk_tree_model_get_iter (GTK_TREE_MODEL (column_model), &iter, path))
+        gtk_tree_model_row_changed (GTK_TREE_MODEL (column_model), path, &iter);
+      gtk_tree_path_free (path);
+    }
+
+  /* emit "columns-changed" */
+  g_signal_emit (G_OBJECT (column_model), column_model_signals[COLUMNS_CHANGED], 0);
+}
+
+
+
+static void
+thunar_column_model_load_column_widths (ThunarColumnModel *column_model)
+{
+  gchar **column_widths;
+  gchar  *tmp;
+  gint    width;
+  gint    n;
+
+  /* determine the column widths from the preferences */
+  g_object_get (G_OBJECT (column_model->preferences), "last-details-view-column-widths", &tmp, NULL);
+  column_widths = g_strsplit (tmp, ",", -1);
+  g_free (tmp);
+
+  /* reset the column widths for the model */
+  for (n = 0; n < THUNAR_N_VISIBLE_COLUMNS; ++n)
+    column_model->width[n] = 50;
+  column_model->width[THUNAR_COLUMN_NAME] = 200;
+
+  /* parse the widths from the preferences */
+  for (n = 0; column_widths[n] != NULL; ++n)
+    {
+      width = strtol (column_widths[n], NULL, 10);
+      if (G_LIKELY (width >= 0))
+        column_model->width[n] = width;
+    }
+
+  /* release the column width array */
+  g_strfreev (column_widths);
+}
+
+
+
+static void
+thunar_column_model_save_column_widths (ThunarColumnModel *column_model)
+{
+  GString *column_widths;
+  gint     n;
+
+  /* allocate a string for the column widths */
+  column_widths = g_string_sized_new (96);
+
+  /* transform the column widths to a string */
+  for (n = 0; n < THUNAR_N_VISIBLE_COLUMNS; ++n)
+    {
+      /* append a comma if not empty */
+      if (*column_widths->str != '\0')
+        g_string_append_c (column_widths, ',');
+
+      /* append the width */
+      g_string_append_printf (column_widths, "%d", column_model->width[n]);
+    }
+
+  /* save the column widths */
+  g_signal_handlers_block_by_func (G_OBJECT (column_model->preferences), thunar_column_model_notify_column_widths, column_model);
+  g_object_set (G_OBJECT (column_model->preferences), "last-details-view-column-widths", column_widths->str, NULL);
+  g_signal_handlers_unblock_by_func (G_OBJECT (column_model->preferences), thunar_column_model_notify_column_widths, column_model);
+
+  /* release the string */
+  g_string_free (column_widths, TRUE);
+}
+
+
+
+static void
+thunar_column_model_notify_column_widths (ThunarPreferences *preferences,
+                                          GParamSpec        *pspec,
+                                          ThunarColumnModel *column_model)
+{
+  g_return_if_fail (THUNAR_IS_COLUMN_MODEL (column_model));
+  g_return_if_fail (THUNAR_IS_PREFERENCES (preferences));
+
+  /* load the new column widths */
+  thunar_column_model_load_column_widths (column_model);
+}
+
+
+
+static void
+thunar_column_model_load_visible_columns (ThunarColumnModel *column_model)
+{
+  GEnumClass *klass;
+  GEnumValue *value;
+  gchar     **visible_columns;
+  gchar      *tmp;
+  gint        n;
+
+  /* determine the list of visible columns from the preferences */
+  g_object_get (G_OBJECT (column_model->preferences), "last-details-view-visible-columns", &tmp, NULL);
+  visible_columns = g_strsplit (tmp, ",", -1);
+  g_free (tmp);
+
+  /* reset the visible columns for the model */
+  for (n = 0; n < THUNAR_N_VISIBLE_COLUMNS; ++n)
+    column_model->visible[n] = FALSE;
+
+  /* mark all columns included in the list as visible */
+  klass = g_type_class_ref (THUNAR_TYPE_COLUMN);
+  for (n = 0; visible_columns[n] != NULL; ++n)
+    {
+      /* determine the enum value from the string */
+      value = g_enum_get_value_by_name (klass, visible_columns[n]);
+      if (G_LIKELY (value != NULL && value->value < THUNAR_N_VISIBLE_COLUMNS))
+        column_model->visible[value->value] = TRUE;
+    }
+  g_type_class_unref (klass);
+
+  /* the name column is always visible */
+  column_model->visible[THUNAR_COLUMN_NAME] = TRUE;
+
+  /* release the list of visible columns */
+  g_strfreev (visible_columns);
+}
+
+
+
+static void
+thunar_column_model_save_visible_columns (ThunarColumnModel *column_model)
+{
+  GEnumClass *klass;
+  GString    *visible_columns;
+  gint        n;
+
+  /* allocate a string for the visible columns list */
+  visible_columns = g_string_sized_new (128);
+
+  /* transform the internal visible column list */
+  klass = g_type_class_ref (THUNAR_TYPE_COLUMN);
+  for (n = 0; n < THUNAR_N_VISIBLE_COLUMNS; ++n)
+    if (column_model->visible[klass->values[n].value])
+      {
+        /* append a comma if not empty */
+        if (*visible_columns->str != '\0')
+          g_string_append_c (visible_columns, ',');
+
+        /* append the enum value name */
+        g_string_append (visible_columns, klass->values[n].value_name);
+      }
+  g_type_class_unref (klass);
+
+  /* save the list of visible columns */
+  g_signal_handlers_block_by_func (G_OBJECT (column_model->preferences), thunar_column_model_notify_visible_columns, column_model);
+  g_object_set (G_OBJECT (column_model->preferences), "last-details-view-visible-columns", visible_columns->str, NULL);
+  g_signal_handlers_unblock_by_func (G_OBJECT (column_model->preferences), thunar_column_model_notify_visible_columns, column_model);
+
+  /* release the string */
+  g_string_free (visible_columns, TRUE);
+}
+
+
+
+static void
+thunar_column_model_notify_visible_columns (ThunarPreferences *preferences,
+                                            GParamSpec        *pspec,
+                                            ThunarColumnModel *column_model)
+{
+  GtkTreePath *path;
+  GtkTreeIter  iter;
+  gint         n;
+
+  g_return_if_fail (THUNAR_IS_COLUMN_MODEL (column_model));
+  g_return_if_fail (THUNAR_IS_PREFERENCES (preferences));
+
+  /* load the new list of visible columns */
+  thunar_column_model_load_visible_columns (column_model);
+
+  /* emit "row-changed" for all rows */
+  for (n = 0; n < THUNAR_N_VISIBLE_COLUMNS; ++n)
+    {
+      path = gtk_tree_path_new_from_indices (n, -1);
+      if (gtk_tree_model_get_iter (GTK_TREE_MODEL (column_model), &iter, path))
+        gtk_tree_model_row_changed (GTK_TREE_MODEL (column_model), path, &iter);
+      gtk_tree_path_free (path);
+    }
+
+  /* emit "columns-changed" */
+  g_signal_emit (G_OBJECT (column_model), column_model_signals[COLUMNS_CHANGED], 0);
+}
+
+
+
+/**
+ * thunar_column_model_get_default:
+ *
+ * Returns the default, shared #ThunarColumnModel
+ * instance.
+ *
+ * The caller is responsible to free the returned
+ * object using g_object_unref() when no longer
+ * needed.
+ *
+ * Return value: the default #ThunarColumnModel.
+ **/
+ThunarColumnModel*
+thunar_column_model_get_default (void)
+{
+  static ThunarColumnModel *column_model = NULL;
+
+  if (G_UNLIKELY (column_model == NULL))
+    {
+      column_model = g_object_new (THUNAR_TYPE_COLUMN_MODEL, NULL);
+      g_object_add_weak_pointer (G_OBJECT (column_model), (gpointer) &column_model);
+    }
+  else
+    {
+      g_object_ref (G_OBJECT (column_model));
+    }
+
+  return column_model;
+}
+
+
+
+/**
+ * thunar_column_model_exchange:
+ * @column_model : a #ThunarColumnModel.
+ * @iter1        : first #GtkTreeIter.
+ * @iter2        : second #GtkTreeIter.
+ *
+ * Exchanges the columns at @iter1 and @iter2
+ * in @column_model.
+ **/
+void
+thunar_column_model_exchange (ThunarColumnModel *column_model,
+                              GtkTreeIter       *iter1,
+                              GtkTreeIter       *iter2)
+{
+  ThunarColumn column;
+  GtkTreePath *path;
+  gint         new_order[THUNAR_N_VISIBLE_COLUMNS];
+  gint         n;
+
+  g_return_if_fail (THUNAR_IS_COLUMN_MODEL (column_model));
+  g_return_if_fail (iter1->stamp == column_model->stamp);
+  g_return_if_fail (iter2->stamp == column_model->stamp);
+
+  /* swap the columns */
+  column = column_model->order[GPOINTER_TO_INT (iter1->user_data)];
+  column_model->order[GPOINTER_TO_INT (iter1->user_data)] = column_model->order[GPOINTER_TO_INT (iter2->user_data)];
+  column_model->order[GPOINTER_TO_INT (iter2->user_data)] = column;
+
+  /* initialize the new order array */
+  for (n = 0; n < THUNAR_N_VISIBLE_COLUMNS; ++n)
+    new_order[n] = n;
+
+  /* perform the swapping on the new order array */
+  new_order[GPOINTER_TO_INT (iter1->user_data)] = GPOINTER_TO_INT (iter2->user_data);
+  new_order[GPOINTER_TO_INT (iter2->user_data)] = GPOINTER_TO_INT (iter1->user_data);
+
+  /* emit "rows-reordered" */
+  path = gtk_tree_path_new ();
+  gtk_tree_model_rows_reordered (GTK_TREE_MODEL (column_model), path, NULL, new_order);
+  gtk_tree_path_free (path);
+
+  /* emit "columns-changed" */
+  g_signal_emit (G_OBJECT (column_model), column_model_signals[COLUMNS_CHANGED], 0);
+
+  /* save the new column order */
+  thunar_column_model_save_column_order (column_model);
+}
+
+
+
+/**
+ * thunar_column_model_get_column_for_iter:
+ * @column_model : a #ThunarColumnModel.
+ * @iter         : a valid #GtkTreeIter for @column_model.
+ *
+ * Returns the #ThunarColumn for the given @iter in
+ * @column_model.
+ *
+ * Return value: the #ThunarColumn for @iter.
+ **/
+ThunarColumn
+thunar_column_model_get_column_for_iter (ThunarColumnModel *column_model,
+                                         GtkTreeIter       *iter)
+{
+  g_return_val_if_fail (THUNAR_IS_COLUMN_MODEL (column_model), -1);
+  g_return_val_if_fail (iter->stamp == column_model->stamp, -1);
+  return column_model->order[GPOINTER_TO_INT (iter->user_data)];
+}
+
+
+
+/**
+ * thunar_column_model_get_column_order:
+ * @column_model : a #ThunarColumnModel.
+ *
+ * Returns the current #ThunarColumn order for @column_model.
+ *
+ * Return value: the current #ThunarColumn order for the given
+ *               @column_model instance.
+ **/
+const ThunarColumn*
+thunar_column_model_get_column_order (ThunarColumnModel *column_model)
+{
+  g_return_val_if_fail (THUNAR_IS_COLUMN_MODEL (column_model), NULL);
+  return column_model->order;
+}
+
+
+
+/**
+ * thunar_column_model_get_column_name:
+ * @column_model : a #ThunarColumnModel.
+ * @column       : a #ThunarColumn.
+ *
+ * Returns the user visible name for the @column in
+ * the @column_model.
+ *
+ * Return value: the user visible name for @column.
+ **/
+const gchar*
+thunar_column_model_get_column_name (ThunarColumnModel *column_model,
+                                     ThunarColumn       column)
+{
+  const gchar *column_name = _("Unknown");
+  GEnumClass  *klass;
+  gint         n;
+
+  g_return_val_if_fail (THUNAR_IS_COLUMN_MODEL (column_model), NULL);
+  g_return_val_if_fail (column < THUNAR_N_VISIBLE_COLUMNS, NULL);
+  g_return_val_if_fail (column >= 0, NULL);
+
+  /* determine the column name from the ThunarColumn enum type */
+  klass = g_type_class_ref (THUNAR_TYPE_COLUMN);
+  for (n = 0; n < klass->n_values; ++n)
+    if (klass->values[n].value == column)
+      column_name = _(klass->values[n].value_nick);
+  g_type_class_unref (klass);
+
+  return column_name;
+}
+
+
+
+/**
+ * thunar_column_model_get_column_visible:
+ * @column_model : a #ThunarColumnModel.
+ * @column       : a #ThunarColumn.
+ *
+ * Returns %TRUE if the @column should be displayed
+ * in the details view.
+ *
+ * Return value: %TRUE if @column is visible.
+ **/
+gboolean
+thunar_column_model_get_column_visible (ThunarColumnModel *column_model,
+                                        ThunarColumn       column)
+{
+  g_return_val_if_fail (THUNAR_IS_COLUMN_MODEL (column_model), FALSE);
+  g_return_val_if_fail (column < THUNAR_N_VISIBLE_COLUMNS, FALSE);
+  g_return_val_if_fail (column >= 0, FALSE);
+  return column_model->visible[column];
+}
+
+
+
+/**
+ * thunar_column_model_set_column_visible:
+ * @column_model : a #ThunarColumnModel.
+ * @column       : a #ThunarColumn.
+ * @visible      : %TRUE to make @column visible.
+ *
+ * Changes the visibility of the @column to @visible in
+ * @column_model.
+ **/
+void
+thunar_column_model_set_column_visible (ThunarColumnModel *column_model,
+                                        ThunarColumn       column,
+                                        gboolean           visible)
+{
+  GtkTreePath *path;
+  GtkTreeIter  iter;
+  gint         n;
+
+  g_return_if_fail (THUNAR_IS_COLUMN_MODEL (column_model));
+  g_return_if_fail (column < THUNAR_N_VISIBLE_COLUMNS);
+  g_return_if_fail (column >= 0);
+
+  /* cannot change the visibility of the name column */
+  if (G_UNLIKELY (column == THUNAR_COLUMN_NAME))
+    return;
+
+  /* normalize the value */
+  visible = !!visible;
+
+  /* check if we have a new value */
+  if (G_LIKELY (column_model->visible[column] != visible))
+    {
+      /* apply the new value */
+      column_model->visible[column] = visible;
+
+      /* reverse lookup the real column */
+      for (n = 0; n < THUNAR_N_VISIBLE_COLUMNS; ++n)
+        if (column_model->order[n] == column)
+          {
+            column = n;
+            break;
+          }
+
+      /* emit "row-changed" */
+      path = gtk_tree_path_new_from_indices (column, -1);
+      if (gtk_tree_model_get_iter (GTK_TREE_MODEL (column_model), &iter, path))
+        gtk_tree_model_row_changed (GTK_TREE_MODEL (column_model), path, &iter);
+      gtk_tree_path_free (path);
+
+      /* emit "columns-changed" */
+      g_signal_emit (G_OBJECT (column_model), column_model_signals[COLUMNS_CHANGED], 0);
+
+      /* save the list of visible columns */
+      thunar_column_model_save_visible_columns (column_model);
+    }
+}
+
+
+
+/**
+ * thunar_column_model_get_column_width:
+ * @column_model : a #ThunarColumnModel.
+ * @column       : a #ThunarColumn.
+ *
+ * Returns the fixed column width for @column in
+ * @column_model.
+ *
+ * Return value: the fixed width for @column.
+ **/
+gint
+thunar_column_model_get_column_width (ThunarColumnModel *column_model,
+                                      ThunarColumn       column)
+{
+  g_return_val_if_fail (THUNAR_IS_COLUMN_MODEL (column_model), -1);
+  g_return_val_if_fail (column < THUNAR_N_VISIBLE_COLUMNS, -1);
+  g_return_val_if_fail (column >= 0, -1);
+  return column_model->width[column];
+}
+
+
+
+/**
+ * thunar_column_model_set_column_width:
+ * @column_model : a #ThunarColumnModel.
+ * @column       : a #ThunarColumn.
+ * @width        : the new fixed width for @column.
+ *
+ * Sets the fixed width for @column in @column_model
+ * to @width.
+ **/
+void
+thunar_column_model_set_column_width (ThunarColumnModel *column_model,
+                                      ThunarColumn       column,
+                                      gint               width)
+{
+  g_return_if_fail (THUNAR_IS_COLUMN_MODEL (column_model));
+  g_return_if_fail (column < THUNAR_N_VISIBLE_COLUMNS);
+  g_return_if_fail (column >= 0);
+  g_return_if_fail (width >= 0);
+
+  /* check if we have a new width */
+  if (G_LIKELY (column_model->width[column] != width))
+    {
+      /* apply the new value */
+      column_model->width[column] = width;
+
+      /* store the settings */
+      thunar_column_model_save_column_widths (column_model);
+    }
+}
+
+
diff --git a/thunar/thunar-column-model.h b/thunar/thunar-column-model.h
new file mode 100644
index 000000000..a0847245f
--- /dev/null
+++ b/thunar/thunar-column-model.h
@@ -0,0 +1,83 @@
+/* $Id$ */
+/*-
+ * Copyright (c) 2006 Benedikt Meurer <benny@xfce.org>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+ * Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+#ifndef __THUNAR_COLUMN_MODEL_H__
+#define __THUNAR_COLUMN_MODEL_H__
+
+#include <thunar/thunar-enum-types.h>
+
+G_BEGIN_DECLS;
+
+typedef struct _ThunarColumnModelClass ThunarColumnModelClass;
+typedef struct _ThunarColumnModel      ThunarColumnModel;
+
+#define THUNAR_TYPE_COLUMN_MODEL            (thunar_column_model_get_type ())
+#define THUNAR_COLUMN_MODEL(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), THUNAR_TYPE_COLUMN_MODEL, ThunarColumnModel))
+#define THUNAR_COLUMN_MODEL_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), THUNAR_TYPE_COLUMN_MODEL, ThunarColumnModelClass))
+#define THUNAR_IS_COLUMN_MODEL(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), THUNAR_TYPE_COLUMN_MODEL))
+#define THUNAR_IS_COLUMN_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), THUNAR_TYPE_COLUMN_MODEL))
+#define THUNAR_COLUMN_MODEL_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), THUNAR_TYPE_COLUMN_MODEL, ThunarColumnModelClass))
+
+/**
+ * ThunarColumnModelColumn:
+ * @THUNAR_COLUMN_MODEL_COLUMN_NAME    : the name of the column.
+ * @THUNAR_COLUMN_MODEL_COLUMN_MUTABLE : TRUE if the visibility can be changed.
+ * @THUNAR_COLUMN_MODEL_COLUMN_VISIBLE : whether the column is visible.
+ *
+ * The #ThunarColumnModel columns used by the #ThunarColumnEditor.
+ **/
+typedef enum
+{
+  THUNAR_COLUMN_MODEL_COLUMN_NAME,
+  THUNAR_COLUMN_MODEL_COLUMN_MUTABLE,
+  THUNAR_COLUMN_MODEL_COLUMN_VISIBLE,
+  THUNAR_COLUMN_MODEL_N_COLUMNS,
+} ThunarColumnModelColumn;
+
+GType               thunar_column_model_get_type            (void) G_GNUC_CONST;
+
+ThunarColumnModel  *thunar_column_model_get_default         (void);
+
+void                thunar_column_model_exchange            (ThunarColumnModel *column_model,
+                                                             GtkTreeIter       *iter1,
+                                                             GtkTreeIter       *iter2);
+
+ThunarColumn        thunar_column_model_get_column_for_iter (ThunarColumnModel *column_model,
+                                                             GtkTreeIter       *iter);
+
+const ThunarColumn *thunar_column_model_get_column_order    (ThunarColumnModel *column_model);
+
+const gchar        *thunar_column_model_get_column_name     (ThunarColumnModel *column_model,
+                                                             ThunarColumn       column);
+
+gboolean            thunar_column_model_get_column_visible  (ThunarColumnModel *column_model,
+                                                             ThunarColumn       column);
+void                thunar_column_model_set_column_visible  (ThunarColumnModel *column_model,
+                                                             ThunarColumn       column,
+                                                             gboolean           visible);
+
+gint                thunar_column_model_get_column_width    (ThunarColumnModel *column_model,
+                                                             ThunarColumn       column);
+void                thunar_column_model_set_column_width    (ThunarColumnModel *column_model,
+                                                             ThunarColumn       column,
+                                                             gint               width);
+
+G_END_DECLS;
+
+#endif /* !__THUNAR_COLUMN_MODEL_H__ */
diff --git a/thunar/thunar-details-view-ui.xml b/thunar/thunar-details-view-ui.xml
new file mode 100644
index 000000000..f2f8df351
--- /dev/null
+++ b/thunar/thunar-details-view-ui.xml
@@ -0,0 +1,23 @@
+<ui>
+
+  <!--
+    $Id$
+
+    Copyright (c) 2006 Benedikt Meurer <benny@xfce.org>
+
+    Thunar details view user interface description file. Do NOT
+    simply edit this file if you don't know how the whole system
+    works, because it's too easy to break something.
+  -->
+
+  <menubar name="main-menu">
+    <menu action="view-menu">
+      <placeholder name="placeholder-view-items-actions">
+        <menuitem action="setup-columns" />
+      </placeholder>
+    </menu>
+  </menubar>
+
+</ui>
+
+<!-- vi: set ts=2 sw=2 et ai nocindent syntax=xml: -->
diff --git a/thunar/thunar-details-view.c b/thunar/thunar-details-view.c
index b68f27f52..e98d1fdb5 100644
--- a/thunar/thunar-details-view.c
+++ b/thunar/thunar-details-view.c
@@ -23,49 +23,81 @@
 
 #include <gdk/gdkkeysyms.h>
 
+#include <thunar/thunar-column-editor.h>
 #include <thunar/thunar-details-view.h>
+#include <thunar/thunar-details-view-ui.h>
 #include <thunar/thunar-gtk-extensions.h>
 #include <thunar/thunar-text-renderer.h>
 
 
-static void         thunar_details_view_class_init            (ThunarDetailsViewClass *klass);
-static void         thunar_details_view_init                  (ThunarDetailsView      *details_view);
-static AtkObject   *thunar_details_view_get_accessible        (GtkWidget              *widget);
-static GList       *thunar_details_view_get_selected_items    (ThunarStandardView     *standard_view);
-static void         thunar_details_view_select_all            (ThunarStandardView     *standard_view);
-static void         thunar_details_view_unselect_all          (ThunarStandardView     *standard_view);
-static void         thunar_details_view_select_path           (ThunarStandardView     *standard_view,
-                                                               GtkTreePath            *path);
-static void         thunar_details_view_set_cursor            (ThunarStandardView     *standard_view,
-                                                               GtkTreePath            *path,
-                                                               gboolean                start_editing);
-static void         thunar_details_view_scroll_to_path        (ThunarStandardView     *standard_view,
-                                                               GtkTreePath            *path,
-                                                               gboolean                use_align,
-                                                               gfloat                  row_align,
-                                                               gfloat                  col_align);
-static GtkTreePath *thunar_details_view_get_path_at_pos       (ThunarStandardView     *standard_view,
-                                                               gint                    x,
-                                                               gint                    y);
-static gboolean     thunar_details_view_get_visible_range     (ThunarStandardView     *standard_view,
-                                                               GtkTreePath           **start_path,
-                                                               GtkTreePath           **end_path);
-static void         thunar_details_view_highlight_path        (ThunarStandardView     *standard_view,
-                                                               GtkTreePath            *path);
-static void         thunar_details_view_notify_model          (GtkTreeView            *tree_view,
-                                                               GParamSpec             *pspec,
-                                                               ThunarDetailsView      *details_view);
-static gboolean     thunar_details_view_button_press_event    (GtkTreeView            *tree_view,
-                                                               GdkEventButton         *event,
-                                                               ThunarDetailsView      *details_view);
-static gboolean     thunar_details_view_key_press_event       (GtkTreeView            *tree_view,
-                                                               GdkEventKey            *event,
-                                                               ThunarDetailsView      *details_view);
-static void         thunar_details_view_row_activated         (GtkTreeView            *tree_view,
-                                                               GtkTreePath            *path,
-                                                               GtkTreeViewColumn      *column,
-                                                               ThunarDetailsView      *details_view);
-static void         thunar_details_view_zoom_level_changed    (ThunarDetailsView      *details_view);
+
+/* Property identifiers */
+enum
+{
+  PROP_0,
+  PROP_FIXED_COLUMNS,
+};
+
+
+
+static void         thunar_details_view_class_init              (ThunarDetailsViewClass *klass);
+static void         thunar_details_view_init                    (ThunarDetailsView      *details_view);
+static void         thunar_details_view_finalize                (GObject                *object);
+static void         thunar_details_view_get_property            (GObject                *object,
+                                                                 guint                   prop_id,
+                                                                 GValue                 *value,
+                                                                 GParamSpec             *pspec);
+static void         thunar_details_view_set_property            (GObject                *object,
+                                                                 guint                   prop_id,
+                                                                 const GValue           *value,
+                                                                 GParamSpec             *pspec);
+static AtkObject   *thunar_details_view_get_accessible          (GtkWidget              *widget);
+static void         thunar_details_view_connect_ui_manager      (ThunarStandardView     *standard_view,
+                                                                 GtkUIManager           *ui_manager);
+static void         thunar_details_view_disconnect_ui_manager   (ThunarStandardView     *standard_view,
+                                                                 GtkUIManager           *ui_manager);
+static GList       *thunar_details_view_get_selected_items      (ThunarStandardView     *standard_view);
+static void         thunar_details_view_select_all              (ThunarStandardView     *standard_view);
+static void         thunar_details_view_unselect_all            (ThunarStandardView     *standard_view);
+static void         thunar_details_view_select_path             (ThunarStandardView     *standard_view,
+                                                                 GtkTreePath            *path);
+static void         thunar_details_view_set_cursor              (ThunarStandardView     *standard_view,
+                                                                 GtkTreePath            *path,
+                                                                 gboolean                start_editing);
+static void         thunar_details_view_scroll_to_path          (ThunarStandardView     *standard_view,
+                                                                 GtkTreePath            *path,
+                                                                 gboolean                use_align,
+                                                                 gfloat                  row_align,
+                                                                 gfloat                  col_align);
+static GtkTreePath *thunar_details_view_get_path_at_pos         (ThunarStandardView     *standard_view,
+                                                                 gint                    x,
+                                                                 gint                    y);
+static gboolean     thunar_details_view_get_visible_range       (ThunarStandardView     *standard_view,
+                                                                 GtkTreePath           **start_path,
+                                                                 GtkTreePath           **end_path);
+static void         thunar_details_view_highlight_path          (ThunarStandardView     *standard_view,
+                                                                 GtkTreePath            *path);
+static void         thunar_details_view_notify_model            (GtkTreeView            *tree_view,
+                                                                 GParamSpec             *pspec,
+                                                                 ThunarDetailsView      *details_view);
+static void         thunar_details_view_notify_width            (GtkTreeViewColumn      *tree_view_column,
+                                                                 GParamSpec             *pspec,
+                                                                 ThunarDetailsView      *details_view);
+static gboolean     thunar_details_view_button_press_event      (GtkTreeView            *tree_view,
+                                                                 GdkEventButton         *event,
+                                                                 ThunarDetailsView      *details_view);
+static gboolean     thunar_details_view_key_press_event         (GtkTreeView            *tree_view,
+                                                                 GdkEventKey            *event,
+                                                                 ThunarDetailsView      *details_view);
+static void         thunar_details_view_row_activated           (GtkTreeView            *tree_view,
+                                                                 GtkTreePath            *path,
+                                                                 GtkTreeViewColumn      *column,
+                                                                 ThunarDetailsView      *details_view);
+static void         thunar_details_view_columns_changed         (ThunarColumnModel      *column_model,
+                                                                 ThunarDetailsView      *details_view);
+static void         thunar_details_view_zoom_level_changed      (ThunarDetailsView      *details_view);
+static void         thunar_details_view_action_setup_columns    (GtkAction              *action,
+                                                                 ThunarDetailsView      *details_view);
 
 
 
@@ -77,10 +109,27 @@ struct _ThunarDetailsViewClass
 struct _ThunarDetailsView
 {
   ThunarStandardView __parent__;
+
+  /* the column model */
+  ThunarColumnModel *column_model;
+
+  /* the tree view columns */
+  GtkTreeViewColumn *columns[THUNAR_N_VISIBLE_COLUMNS];
+
+  /* whether to use fixed column widths */
+  gboolean           fixed_columns;
+
+  /* the UI manager merge id for the details view */
+  guint              ui_merge_id;
 };
 
 
 
+static const GtkActionEntry action_entries[] =
+{
+  { "setup-columns", NULL, N_ ("Configure _Columns..."), NULL, N_ ("Configure the columns in the detailed list view"), G_CALLBACK (thunar_details_view_action_setup_columns), },
+};
+
 static GObjectClass *thunar_details_view_parent_class;
 
 
@@ -119,14 +168,22 @@ thunar_details_view_class_init (ThunarDetailsViewClass *klass)
 {
   ThunarStandardViewClass *thunarstandard_view_class;
   GtkWidgetClass          *gtkwidget_class;
+  GObjectClass            *gobject_class;
 
   /* determine the parent type class */
   thunar_details_view_parent_class = g_type_class_peek_parent (klass);
 
+  gobject_class = G_OBJECT_CLASS (klass);
+  gobject_class->finalize = thunar_details_view_finalize;
+  gobject_class->get_property = thunar_details_view_get_property;
+  gobject_class->set_property = thunar_details_view_set_property;
+
   gtkwidget_class = GTK_WIDGET_CLASS (klass);
   gtkwidget_class->get_accessible = thunar_details_view_get_accessible;
 
   thunarstandard_view_class = THUNAR_STANDARD_VIEW_CLASS (klass);
+  thunarstandard_view_class->connect_ui_manager = thunar_details_view_connect_ui_manager;
+  thunarstandard_view_class->disconnect_ui_manager = thunar_details_view_disconnect_ui_manager;
   thunarstandard_view_class->get_selected_items = thunar_details_view_get_selected_items;
   thunarstandard_view_class->select_all = thunar_details_view_select_all;
   thunarstandard_view_class->unselect_all = thunar_details_view_unselect_all;
@@ -137,6 +194,19 @@ thunar_details_view_class_init (ThunarDetailsViewClass *klass)
   thunarstandard_view_class->get_visible_range = thunar_details_view_get_visible_range;
   thunarstandard_view_class->highlight_path = thunar_details_view_highlight_path;
   thunarstandard_view_class->zoom_level_property_name = "last-details-view-zoom-level";
+
+  /**
+   * ThunarDetailsView:fixed-columns:
+   *
+   * %TRUE to use fixed column widths.
+   **/
+  g_object_class_install_property (gobject_class,
+                                   PROP_FIXED_COLUMNS,
+                                   g_param_spec_boolean ("fixed-columns",
+                                                         "fixed-columns",
+                                                         "fixed-columns",
+                                                         FALSE,
+                                                         EXO_PARAM_READWRITE));
 }
 
 
@@ -144,16 +214,23 @@ thunar_details_view_class_init (ThunarDetailsViewClass *klass)
 static void
 thunar_details_view_init (ThunarDetailsView *details_view)
 {
-  GtkTreeViewColumn *column;
-  GtkTreeSelection  *selection;
-  GtkCellRenderer   *renderer;
-  GtkWidget         *tree_view;
+  GtkTreeSelection *selection;
+  GtkCellRenderer  *right_aligned_renderer;
+  GtkCellRenderer  *left_aligned_renderer;
+  GtkCellRenderer  *renderer;
+  ThunarColumn      column;
+  GtkWidget        *tree_view;
 
   /* we need to force the GtkTreeView to recalculate column sizes
    * whenever the zoom-level changes, so we connect a handler here.
    */
   g_signal_connect (G_OBJECT (details_view), "notify::zoom-level", G_CALLBACK (thunar_details_view_zoom_level_changed), NULL);
 
+  /* setup the details view actions */
+  gtk_action_group_add_actions (THUNAR_STANDARD_VIEW (details_view)->action_group,
+                                action_entries, G_N_ELEMENTS (action_entries),
+                                GTK_WIDGET (details_view));
+
   /* create the tree view to embed */
   tree_view = exo_tree_view_new ();
   g_signal_connect (G_OBJECT (tree_view), "notify::model",
@@ -171,85 +248,151 @@ thunar_details_view_init (ThunarDetailsView *details_view)
   gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (tree_view), TRUE);
   gtk_tree_view_set_enable_search (GTK_TREE_VIEW (tree_view), TRUE);
 
-  /* first column (icon, name) */
-  column = g_object_new (GTK_TYPE_TREE_VIEW_COLUMN,
-                         "expand", TRUE,
-                         "resizable", TRUE,
-                         "title", _("Name"),
-                         NULL);
-  gtk_tree_view_column_pack_start (column, THUNAR_STANDARD_VIEW (details_view)->icon_renderer, FALSE);
-  gtk_tree_view_column_set_attributes (column, THUNAR_STANDARD_VIEW (details_view)->icon_renderer,
-                                       "file", THUNAR_COLUMN_FILE,
-                                       NULL);
-  g_object_set (G_OBJECT (THUNAR_STANDARD_VIEW (details_view)->name_renderer),
-                "xalign", 0.0,
-                NULL);
-  gtk_tree_view_column_pack_start (column, THUNAR_STANDARD_VIEW (details_view)->name_renderer, TRUE);
-  gtk_tree_view_column_set_attributes (column, THUNAR_STANDARD_VIEW (details_view)->name_renderer,
-                                       "text", THUNAR_COLUMN_NAME,
-                                       NULL);
-  gtk_tree_view_column_set_sort_column_id (column, THUNAR_COLUMN_NAME);
-  gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), column);
-
-  /* second column (size) */
-  column = g_object_new (GTK_TYPE_TREE_VIEW_COLUMN,
-                         "resizable", TRUE,
-                         "title", _("Size"),
-                         NULL);
-  renderer = g_object_new (THUNAR_TYPE_TEXT_RENDERER,
-                           "xalign", 1.0,
-                           NULL);
-  gtk_tree_view_column_pack_start (column, renderer, TRUE);
-  gtk_tree_view_column_set_attributes (column, renderer,
-                                       "text", THUNAR_COLUMN_SIZE,
-                                       NULL);
-  gtk_tree_view_column_set_sort_column_id (column, THUNAR_COLUMN_SIZE);
-  gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), column);
-
-  /* third column (permissions) */
-  column = g_object_new (GTK_TYPE_TREE_VIEW_COLUMN,
-                         "resizable", TRUE,
-                         "title", _("Permissions"),
-                         NULL);
-  renderer = g_object_new (THUNAR_TYPE_TEXT_RENDERER,
-                           "xalign", 0.0,
-                           NULL);
-  gtk_tree_view_column_pack_start (column, renderer, TRUE);
-  gtk_tree_view_column_set_attributes (column, renderer,
-                                       "text", THUNAR_COLUMN_PERMISSIONS,
-                                       NULL);
-  gtk_tree_view_column_set_sort_column_id (column, THUNAR_COLUMN_PERMISSIONS);
-  gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), column);
-
-  /* fourth column (type) */
-  column = g_object_new (GTK_TYPE_TREE_VIEW_COLUMN,
-                         "resizable", TRUE,
-                         "title", _("Type"),
-                         NULL);
-  gtk_tree_view_column_pack_start (column, renderer, TRUE);
-  gtk_tree_view_column_set_attributes (column, renderer,
-                                       "text", THUNAR_COLUMN_TYPE,
-                                       NULL);
-  gtk_tree_view_column_set_sort_column_id (column, THUNAR_COLUMN_TYPE);
-  gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), column);
-
-  /* fifth column (modification date) */
-  column = g_object_new (GTK_TYPE_TREE_VIEW_COLUMN,
-                         "resizable", TRUE,
-                         "title", _("Date modified"),
-                         NULL);
-  gtk_tree_view_column_pack_start (column, renderer, TRUE);
-  gtk_tree_view_column_set_attributes (column, renderer,
-                                       "text", THUNAR_COLUMN_DATE_MODIFIED,
-                                       NULL);
-  gtk_tree_view_column_set_sort_column_id (column, THUNAR_COLUMN_DATE_MODIFIED);
-  gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), column);
+  /* connect to the default column model */
+  details_view->column_model = thunar_column_model_get_default ();
+  g_signal_connect (G_OBJECT (details_view->column_model), "columns-changed", G_CALLBACK (thunar_details_view_columns_changed), details_view);
+
+  /* allocate the shared right-aligned text renderer */
+  right_aligned_renderer = g_object_new (THUNAR_TYPE_TEXT_RENDERER, "xalign", 1.0f, NULL);
+  exo_gtk_object_ref_sink (GTK_OBJECT (right_aligned_renderer));
+
+  /* allocate the shared left-aligned text renderer */
+  left_aligned_renderer = g_object_new (THUNAR_TYPE_TEXT_RENDERER, "xalign", 0.0f, NULL);
+  exo_gtk_object_ref_sink (GTK_OBJECT (left_aligned_renderer));
+
+  /* allocate the tree view columns */
+  for (column = 0; column < THUNAR_N_VISIBLE_COLUMNS; ++column)
+    {
+      /* allocate the tree view column */
+      details_view->columns[column] = gtk_tree_view_column_new ();
+      exo_gtk_object_ref_sink (GTK_OBJECT (details_view->columns[column]));
+      gtk_tree_view_column_set_min_width (details_view->columns[column], 50);
+      gtk_tree_view_column_set_resizable (details_view->columns[column], TRUE);
+      gtk_tree_view_column_set_sort_column_id (details_view->columns[column], column);
+      gtk_tree_view_column_set_title (details_view->columns[column], thunar_column_model_get_column_name (details_view->column_model, column));
+
+      /* stay informed whenever the width of the column is changed */
+      g_signal_connect (G_OBJECT (details_view->columns[column]), "notify::width", G_CALLBACK (thunar_details_view_notify_width), details_view);
+
+      /* name column gets special renderers */
+      if (G_UNLIKELY (column == THUNAR_COLUMN_NAME))
+        {
+          /* add the icon renderer */
+          gtk_tree_view_column_pack_start (details_view->columns[column], THUNAR_STANDARD_VIEW (details_view)->icon_renderer, FALSE);
+          gtk_tree_view_column_set_attributes (details_view->columns[column], THUNAR_STANDARD_VIEW (details_view)->icon_renderer,
+                                               "file", THUNAR_COLUMN_FILE,
+                                               NULL);
+
+          /* add the name renderer */
+          g_object_set (G_OBJECT (THUNAR_STANDARD_VIEW (details_view)->name_renderer), "xalign", 0.0, NULL);
+          gtk_tree_view_column_pack_start (details_view->columns[column], THUNAR_STANDARD_VIEW (details_view)->name_renderer, TRUE);
+          gtk_tree_view_column_set_attributes (details_view->columns[column], THUNAR_STANDARD_VIEW (details_view)->name_renderer,
+                                               "text", THUNAR_COLUMN_NAME,
+                                               NULL);
+        }
+      else
+        {
+          /* size is right aligned, everything else is left aligned */
+          renderer = (column == THUNAR_COLUMN_SIZE) ? right_aligned_renderer : left_aligned_renderer;
+
+          /* add the renderer */
+          gtk_tree_view_column_pack_start (details_view->columns[column], renderer, TRUE);
+          gtk_tree_view_column_set_attributes (details_view->columns[column], renderer, "text", column, NULL);
+        }
+
+      /* append the tree view column to the tree view */
+      gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), details_view->columns[column]);
+    }
 
   /* configure the tree selection */
   selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view));
   gtk_tree_selection_set_mode (selection, GTK_SELECTION_MULTIPLE);
   g_signal_connect_swapped (G_OBJECT (selection), "changed",
                             G_CALLBACK (thunar_standard_view_selection_changed), details_view);
+
+  /* apply the initial column order and visibility from the column model */
+  thunar_details_view_columns_changed (details_view->column_model, details_view);
+
+  /* synchronize the "fixed-columns" property */
+  exo_binding_new (G_OBJECT (THUNAR_STANDARD_VIEW (details_view)->preferences),
+                   "last-details-view-fixed-columns",
+                   G_OBJECT (details_view),
+                   "fixed-columns");
+
+  /* apply fixed column widths if we start in fixed column mode */
+  if (G_UNLIKELY (details_view->fixed_columns))
+    {
+      /* apply to all columns */
+      for (column = 0; column < THUNAR_N_VISIBLE_COLUMNS; ++column)
+        gtk_tree_view_column_set_fixed_width (details_view->columns[column], thunar_column_model_get_column_width (details_view->column_model, column));
+    }
+
+  /* release the shared text renderers */
+  g_object_unref (G_OBJECT (right_aligned_renderer));
+  g_object_unref (G_OBJECT (left_aligned_renderer));
+}
+
+
+
+static void
+thunar_details_view_get_property (GObject    *object,
+                                  guint       prop_id,
+                                  GValue     *value,
+                                  GParamSpec *pspec)
+{
+  ThunarDetailsView *details_view = THUNAR_DETAILS_VIEW (object);
+
+  switch (prop_id)
+    {
+    case PROP_FIXED_COLUMNS:
+      g_value_set_boolean (value, thunar_details_view_get_fixed_columns (details_view));
+      break;
+
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+    }
+}
+
+
+
+static void
+thunar_details_view_set_property (GObject      *object,
+                                  guint         prop_id,
+                                  const GValue *value,
+                                  GParamSpec   *pspec)
+{
+  ThunarDetailsView *details_view = THUNAR_DETAILS_VIEW (object);
+
+  switch (prop_id)
+    {
+    case PROP_FIXED_COLUMNS:
+      thunar_details_view_set_fixed_columns (details_view, g_value_get_boolean (value));
+      break;
+
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+    }
+}
+
+
+
+static void
+thunar_details_view_finalize (GObject *object)
+{
+  ThunarDetailsView *details_view = THUNAR_DETAILS_VIEW (object);
+  ThunarColumn       column;
+
+  /* release the tree view columns array */
+  for (column = 0; column < THUNAR_N_VISIBLE_COLUMNS; ++column)
+    g_object_unref (G_OBJECT (details_view->columns[column]));
+
+  /* disconnect from the default column model */
+  g_signal_handlers_disconnect_by_func (G_OBJECT (details_view->column_model), thunar_details_view_columns_changed, details_view);
+  g_object_unref (G_OBJECT (details_view->column_model));
+
+  (*G_OBJECT_CLASS (thunar_details_view_parent_class)->finalize) (object);
 }
 
 
@@ -275,6 +418,33 @@ thunar_details_view_get_accessible (GtkWidget *widget)
 
 
 
+static void
+thunar_details_view_connect_ui_manager (ThunarStandardView *standard_view,
+                                        GtkUIManager       *ui_manager)
+{
+  ThunarDetailsView *details_view = THUNAR_DETAILS_VIEW (standard_view);
+  GError            *error = NULL;
+
+  details_view->ui_merge_id = gtk_ui_manager_add_ui_from_string (ui_manager, thunar_details_view_ui,
+                                                                 thunar_details_view_ui_length, &error);
+  if (G_UNLIKELY (details_view->ui_merge_id == 0))
+    {
+      g_error ("Failed to merge ThunarDetailsView menus: %s", error->message);
+      g_error_free (error);
+    }
+}
+
+
+
+static void
+thunar_details_view_disconnect_ui_manager (ThunarStandardView *standard_view,
+                                           GtkUIManager       *ui_manager)
+{
+  gtk_ui_manager_remove_ui (ui_manager, THUNAR_DETAILS_VIEW (standard_view)->ui_merge_id);
+}
+
+
+
 static GList*
 thunar_details_view_get_selected_items (ThunarStandardView *standard_view)
 {
@@ -428,6 +598,28 @@ thunar_details_view_notify_model (GtkTreeView       *tree_view,
 
 
 
+static void
+thunar_details_view_notify_width (GtkTreeViewColumn *tree_view_column,
+                                  GParamSpec        *pspec,
+                                  ThunarDetailsView *details_view)
+{
+  ThunarColumn column;
+
+  g_return_if_fail (GTK_IS_TREE_VIEW_COLUMN (tree_view_column));
+  g_return_if_fail (THUNAR_IS_DETAILS_VIEW (details_view));
+
+  /* lookup the column no for the given tree view column */
+  for (column = 0; column < THUNAR_N_VISIBLE_COLUMNS; ++column)
+    if (details_view->columns[column] == tree_view_column)
+      {
+        /* save the new width as default fixed width */
+        thunar_column_model_set_column_width (details_view->column_model, column, gtk_tree_view_column_get_width (tree_view_column));
+        break;
+      }
+}
+
+
+
 static gboolean
 thunar_details_view_button_press_event (GtkTreeView       *tree_view,
                                         GdkEventButton    *event,
@@ -439,6 +631,10 @@ thunar_details_view_button_press_event (GtkTreeView       *tree_view,
   ThunarFile       *file;
   GtkAction        *action;
 
+  /* check if the event is for the bin window */
+  if (G_UNLIKELY (event->window != gtk_tree_view_get_bin_window (tree_view)))
+    return FALSE;
+
   /* we unselect all selected items if the user clicks on an empty
    * area of the treeview and no modifier key is active.
    */
@@ -562,24 +758,54 @@ thunar_details_view_row_activated (GtkTreeView       *tree_view,
 
 
 
+static void
+thunar_details_view_columns_changed (ThunarColumnModel *column_model,
+                                     ThunarDetailsView *details_view)
+{
+  const ThunarColumn *column_order;
+  ThunarColumn        column;
+
+  g_return_if_fail (THUNAR_IS_DETAILS_VIEW (details_view));
+  g_return_if_fail (THUNAR_IS_COLUMN_MODEL (column_model));
+  g_return_if_fail (details_view->column_model == column_model);
+
+  /* determine the new column order */
+  column_order = thunar_column_model_get_column_order (column_model);
+
+  /* apply new order and visibility */
+  for (column = 0; column < THUNAR_N_VISIBLE_COLUMNS; ++column)
+    {
+      /* apply the new visibility for the tree view column */
+      gtk_tree_view_column_set_visible (details_view->columns[column], thunar_column_model_get_column_visible (column_model, column));
+
+      /* change the order of the column relative to its predecessor */
+      if (G_LIKELY (column > 0))
+        {
+          gtk_tree_view_move_column_after (GTK_TREE_VIEW (GTK_BIN (details_view)->child),
+                                           details_view->columns[column_order[column]],
+                                           details_view->columns[column_order[column - 1]]);
+        }
+    }
+}
+
+
+
 static void
 thunar_details_view_zoom_level_changed (ThunarDetailsView *details_view)
 {
-  GList *columns;
-  GList *lp;
+  ThunarColumn column;
 
   g_return_if_fail (THUNAR_IS_DETAILS_VIEW (details_view));
 
   /* determine the list of tree view columns */
-  columns = gtk_tree_view_get_columns (GTK_TREE_VIEW (GTK_BIN (details_view)->child));
-  for (lp = columns; lp != NULL; lp = lp->next)
+  for (column = 0; column < THUNAR_N_VISIBLE_COLUMNS; ++column)
     {
 #if GTK_CHECK_VERSION(2,8,0)
       /* just queue a resize on this column */
-      gtk_tree_view_column_queue_resize (lp->data);
+      gtk_tree_view_column_queue_resize (details_view->columns[column]);
 #else
       /* determine the renderers for this column */
-      GList *renderers = gtk_tree_view_column_get_cell_renderers (lp->data);
+      GList *renderers = gtk_tree_view_column_get_cell_renderers (details_view->columns[column]);
       if (G_LIKELY (renderers != NULL))
         {
           /* this is really an awfull hack, but it works! It forces GtkTreeView to recalculate
@@ -591,7 +817,19 @@ thunar_details_view_zoom_level_changed (ThunarDetailsView *details_view)
         }
 #endif
     }
-  g_list_free (columns);
+}
+
+
+
+static void
+thunar_details_view_action_setup_columns (GtkAction         *action,
+                                          ThunarDetailsView *details_view)
+{
+  g_return_if_fail (THUNAR_IS_DETAILS_VIEW (details_view));
+  g_return_if_fail (GTK_IS_ACTION (action));
+
+  /* popup the column editor dialog */
+  thunar_show_column_editor (details_view);
 }
 
 
@@ -612,3 +850,78 @@ thunar_details_view_new (void)
 
 
 
+/**
+ * thunar_details_view_get_fixed_columns:
+ * @details_view : a #ThunarDetailsView.
+ *
+ * Returns %TRUE if @details_view uses fixed column widths.
+ *
+ * Return value: %TRUE if @details_view uses fixed column widths.
+ **/
+gboolean
+thunar_details_view_get_fixed_columns (ThunarDetailsView *details_view)
+{
+  g_return_val_if_fail (THUNAR_IS_DETAILS_VIEW (details_view), FALSE);
+  return details_view->fixed_columns;
+}
+
+
+
+/**
+ * thunar_details_view_set_fixed_columns:
+ * @details_view  : a #ThunarDetailsView.
+ * @fixed_columns : %TRUE to use fixed column widths.
+ *
+ * Applies @fixed_columns to @details_view.
+ **/
+void
+thunar_details_view_set_fixed_columns (ThunarDetailsView *details_view,
+                                       gboolean           fixed_columns)
+{
+  ThunarColumn column;
+  gint         width;
+
+  g_return_if_fail (THUNAR_IS_DETAILS_VIEW (details_view));
+
+  /* normalize the value */
+  fixed_columns = !!fixed_columns;
+
+  /* check if we have a new value */
+  if (G_LIKELY (details_view->fixed_columns != fixed_columns))
+    {
+      /* apply the new value */
+      details_view->fixed_columns = fixed_columns;
+
+      /* apply the new setting to all columns */
+      for (column = 0; column < THUNAR_N_VISIBLE_COLUMNS; ++column)
+        {
+          /* apply the new column mode */
+          if (G_LIKELY (fixed_columns))
+            {
+              /* apply "width" as "fixed-width" for fixed columns mode */
+              width = gtk_tree_view_column_get_width (details_view->columns[column]);
+              if (G_UNLIKELY (width <= 0))
+                width = thunar_column_model_get_column_width (details_view->column_model, column);
+              gtk_tree_view_column_set_fixed_width (details_view->columns[column], MAX (width, 1));
+
+              /* set column to fixed width */
+              gtk_tree_view_column_set_sizing (details_view->columns[column], GTK_TREE_VIEW_COLUMN_FIXED);
+            }
+          else
+            {
+              /* reset column to grow-only mode */
+              gtk_tree_view_column_set_sizing (details_view->columns[column], GTK_TREE_VIEW_COLUMN_GROW_ONLY);
+            }
+        }
+
+      /* for fixed columns mode, we can enable the fixed height
+       * mode to improve the performance of the GtkTreeVeiw.
+       */
+      gtk_tree_view_set_fixed_height_mode (GTK_TREE_VIEW (GTK_BIN (details_view)->child), fixed_columns);
+
+      /* notify listeners */
+      g_object_notify (G_OBJECT (details_view), "fixed-columns");
+    }
+}
+
+
diff --git a/thunar/thunar-details-view.h b/thunar/thunar-details-view.h
index 956f163b0..7c346a59f 100644
--- a/thunar/thunar-details-view.h
+++ b/thunar/thunar-details-view.h
@@ -34,9 +34,13 @@ typedef struct _ThunarDetailsView      ThunarDetailsView;
 #define THUNAR_IS_DETAILS_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), THUNAR_TYPE_DETAILS_VIEW))
 #define THUNAR_DETAILS_VIEW_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), THUNAR_TYPE_DETAILS_VIEW, ThunarDetailsViewClass))
 
-GType      thunar_details_view_get_type (void) G_GNUC_CONST;
+GType      thunar_details_view_get_type          (void) G_GNUC_CONST;
 
-GtkWidget *thunar_details_view_new      (void);
+GtkWidget *thunar_details_view_new               (void);
+
+gboolean   thunar_details_view_get_fixed_columns (ThunarDetailsView *details_view);
+void       thunar_details_view_set_fixed_columns (ThunarDetailsView *details_view,
+                                                  gboolean           fixed_columns);
 
 G_END_DECLS;
 
diff --git a/thunar/thunar-enum-types.c b/thunar/thunar-enum-types.c
index 13ec6adff..d6f61bad9 100644
--- a/thunar/thunar-enum-types.c
+++ b/thunar/thunar-enum-types.c
@@ -57,16 +57,18 @@ thunar_column_get_type (void)
 {
   static const GEnumValue values[] =
   {
-    { THUNAR_COLUMN_DATE_ACCESSED, "THUNAR_COLUMN_DATE_ACCESSED", "date-accessed", },
-    { THUNAR_COLUMN_DATE_MODIFIED, "THUNAR_COLUMN_DATE_MODIFIED", "date-modified", },
-    { THUNAR_COLUMN_FILE,          "THUNAR_COLUMN_FILE",          "file",          },
-    { THUNAR_COLUMN_MIME_TYPE,     "THUNAR_COLUMN_MIME_TYPE",     "mime-type",     },
-    { THUNAR_COLUMN_NAME,          "THUNAR_COLUMN_NAME",          "name",          },
-    { THUNAR_COLUMN_PERMISSIONS,   "THUNAR_COLUMN_PERMISSIONS",   "permissions",   },
-    { THUNAR_COLUMN_REAL_NAME,     "THUNAR_COLUMN_REAL_NAME",     "real-name",     },
-    { THUNAR_COLUMN_SIZE,          "THUNAR_COLUMN_SIZE",          "size",          },
-    { THUNAR_COLUMN_TYPE,          "THUNAR_COLUMN_TYPE",          "type",          },
-    { 0,                           NULL,                          NULL,            },
+    { THUNAR_COLUMN_DATE_ACCESSED, "THUNAR_COLUMN_DATE_ACCESSED", N_ ("Date Accessed"), },
+    { THUNAR_COLUMN_DATE_MODIFIED, "THUNAR_COLUMN_DATE_MODIFIED", N_ ("Date Modified"), },
+    { THUNAR_COLUMN_GROUP,         "THUNAR_COLUMN_GROUP",         N_ ("Group"),         },
+    { THUNAR_COLUMN_MIME_TYPE,     "THUNAR_COLUMN_MIME_TYPE",     N_ ("MIME Type"),     },
+    { THUNAR_COLUMN_NAME,          "THUNAR_COLUMN_NAME",          N_ ("Name"),          },
+    { THUNAR_COLUMN_OWNER,         "THUNAR_COLUMN_OWNER",         N_ ("Owner"),         },
+    { THUNAR_COLUMN_PERMISSIONS,   "THUNAR_COLUMN_PERMISSIONS",   N_ ("Permissions"),   },
+    { THUNAR_COLUMN_SIZE,          "THUNAR_COLUMN_SIZE",          N_ ("Size"),          },
+    { THUNAR_COLUMN_TYPE,          "THUNAR_COLUMN_TYPE",          N_ ("Type"),          },
+    { THUNAR_COLUMN_FILE,          "THUNAR_COLUMN_FILE",          N_ ("File"),          },
+    { THUNAR_COLUMN_FILE_NAME,     "THUNAR_COLUMN_FILE_NAME",     N_ ("File Name"),     },
+    { 0,                           NULL,                          NULL,                 },
   };
 
   return thunar_enum_register_type ("ThunarColumn", values);
diff --git a/thunar/thunar-enum-types.h b/thunar/thunar-enum-types.h
index 9689df2dc..080ef12bf 100644
--- a/thunar/thunar-enum-types.h
+++ b/thunar/thunar-enum-types.h
@@ -20,7 +20,7 @@
 #ifndef __THUNAR_ENUM_TYPES_H__
 #define __THUNAR_ENUM_TYPES_H__
 
-#include <glib-object.h>
+#include <exo/exo.h>
 
 G_BEGIN_DECLS;
 
@@ -50,29 +50,41 @@ GType thunar_color_style_get_type (void) G_GNUC_CONST G_GNUC_INTERNAL;
  * ThunarColumn:
  * @THUNAR_COLUMN_DATE_ACCESSED : last access time.
  * @THUNAR_COLUMN_DATE_MODIFIED : last modification time.
- * @THUNAR_COLUMN_FILE          : #ThunarFile object.
+ * @THUNAR_COLUMN_GROUP         : group's name.
  * @THUNAR_COLUMN_MIME_TYPE     : mime type (i.e. "text/plain").
  * @THUNAR_COLUMN_NAME          : display name.
+ * @THUNAR_COLUMN_OWNER         : owner's name.
  * @THUNAR_COLUMN_PERMISSIONS   : permissions bits.
- * @THUNAR_COLUMN_REAL_NAME     : real file name.
  * @THUNAR_COLUMN_SIZE          : file size.
  * @THUNAR_COLUMN_TYPE          : file type (i.e. 'plain text document').
+ * @THUNAR_COLUMN_FILE          : #ThunarFile object.
+ * @THUNAR_COLUMN_FILE_NAME     : real file name.
  *
  * Columns exported by #ThunarListModel using the #GtkTreeModel
  * interface.
  **/
 typedef enum
 {
+  /* visible columns */
   THUNAR_COLUMN_DATE_ACCESSED,
   THUNAR_COLUMN_DATE_MODIFIED,
-  THUNAR_COLUMN_FILE,
+  THUNAR_COLUMN_GROUP,
   THUNAR_COLUMN_MIME_TYPE,
   THUNAR_COLUMN_NAME,
+  THUNAR_COLUMN_OWNER,
   THUNAR_COLUMN_PERMISSIONS,
-  THUNAR_COLUMN_REAL_NAME,
   THUNAR_COLUMN_SIZE,
   THUNAR_COLUMN_TYPE,
+
+  /* special internal columns */
+  THUNAR_COLUMN_FILE,
+  THUNAR_COLUMN_FILE_NAME,
+
+  /* number of columns */
   THUNAR_N_COLUMNS,
+
+  /* number of visible columns */
+  THUNAR_N_VISIBLE_COLUMNS = THUNAR_COLUMN_FILE,
 } ThunarColumn;
 
 GType thunar_column_get_type (void) G_GNUC_CONST G_GNUC_INTERNAL;
diff --git a/thunar/thunar-list-model.c b/thunar/thunar-list-model.c
index c58f43d9f..9710464b5 100644
--- a/thunar/thunar-list-model.c
+++ b/thunar/thunar-list-model.c
@@ -155,11 +155,15 @@ static gint               sort_by_date_accessed                   (const ThunarF
                                                                    const ThunarFile       *b);
 static gint               sort_by_date_modified                   (const ThunarFile       *a,
                                                                    const ThunarFile       *b);
+static gint               sort_by_file_name                       (const ThunarFile       *a,
+                                                                   const ThunarFile       *b);
+static gint               sort_by_group                           (const ThunarFile       *a,
+                                                                   const ThunarFile       *b);
 static gint               sort_by_mime_type                       (const ThunarFile       *a,
                                                                    const ThunarFile       *b);
 static gint               sort_by_name                            (const ThunarFile       *a,
                                                                    const ThunarFile       *b);
-static gint               sort_by_real_name                       (const ThunarFile       *a,
+static gint               sort_by_owner                           (const ThunarFile       *a,
                                                                    const ThunarFile       *b);
 static gint               sort_by_permissions                     (const ThunarFile       *a,
                                                                    const ThunarFile       *b);
@@ -359,7 +363,7 @@ thunar_list_model_class_init (ThunarListModelClass *klass)
    **/
   list_model_signals[ERROR] =
     g_signal_new (I_("error"),
-                  G_TYPE_FROM_CLASS (gobject_class),
+                  G_TYPE_FROM_CLASS (klass),
                   G_SIGNAL_RUN_LAST,
                   G_STRUCT_OFFSET (ThunarListModelClass, error),
                   NULL, NULL,
@@ -558,8 +562,8 @@ thunar_list_model_get_column_type (GtkTreeModel *model,
     case THUNAR_COLUMN_DATE_MODIFIED:
       return G_TYPE_STRING;
 
-    case THUNAR_COLUMN_FILE:
-      return THUNAR_TYPE_FILE;
+    case THUNAR_COLUMN_GROUP:
+      return G_TYPE_STRING;
 
     case THUNAR_COLUMN_MIME_TYPE:
       return G_TYPE_STRING;
@@ -567,7 +571,7 @@ thunar_list_model_get_column_type (GtkTreeModel *model,
     case THUNAR_COLUMN_NAME:
       return G_TYPE_STRING;
 
-    case THUNAR_COLUMN_REAL_NAME:
+    case THUNAR_COLUMN_OWNER:
       return G_TYPE_STRING;
 
     case THUNAR_COLUMN_PERMISSIONS:
@@ -578,10 +582,16 @@ thunar_list_model_get_column_type (GtkTreeModel *model,
 
     case THUNAR_COLUMN_TYPE:
       return G_TYPE_STRING;
+
+    case THUNAR_COLUMN_FILE:
+      return THUNAR_TYPE_FILE;
+
+    case THUNAR_COLUMN_FILE_NAME:
+      return G_TYPE_STRING;
     }
 
   g_assert_not_reached ();
-  return (GType) -1;
+  return G_TYPE_INVALID;
 }
 
 
@@ -652,6 +662,10 @@ thunar_list_model_get_value (GtkTreeModel *model,
                              GValue       *value)
 {
   ThunarVfsMimeInfo *mime_info;
+  ThunarVfsGroup    *group;
+  ThunarVfsUser     *user;
+  const gchar       *name;
+  const gchar       *real_name;
   gchar             *str;
   Row               *row;
 
@@ -675,9 +689,18 @@ thunar_list_model_get_value (GtkTreeModel *model,
       g_value_take_string (value, str);
       break;
 
-    case THUNAR_COLUMN_FILE:
-      g_value_init (value, THUNAR_TYPE_FILE);
-      g_value_set_object (value, row->file);
+    case THUNAR_COLUMN_GROUP:
+      g_value_init (value, G_TYPE_STRING);
+      group = thunar_file_get_group (row->file);
+      if (G_LIKELY (group != NULL))
+        {
+          g_value_set_string (value, thunar_vfs_group_get_name (group));
+          g_object_unref (G_OBJECT (group));
+        }
+      else
+        {
+          g_value_set_static_string (value, _("Unknown"));
+        }
       break;
 
     case THUNAR_COLUMN_MIME_TYPE:
@@ -691,9 +714,22 @@ thunar_list_model_get_value (GtkTreeModel *model,
       g_value_set_static_string (value, thunar_file_get_display_name (row->file));
       break;
 
-    case THUNAR_COLUMN_REAL_NAME:
+    case THUNAR_COLUMN_OWNER:
       g_value_init (value, G_TYPE_STRING);
-      g_value_take_string (value, g_filename_display_name (thunar_vfs_path_get_name (thunar_file_get_path (row->file))));
+      user = thunar_file_get_user (row->file);
+      if (G_LIKELY (user != NULL))
+        {
+          /* determine sane display name for the owner */
+          name = thunar_vfs_user_get_name (user);
+          real_name = thunar_vfs_user_get_real_name (user);
+          str = G_LIKELY (real_name != NULL) ? g_strdup_printf ("%s (%s)", real_name, name) : g_strdup (name);
+          g_value_take_string (value, str);
+          g_object_unref (G_OBJECT (user));
+        }
+      else
+        {
+          g_value_set_static_string (value, _("Unknown"));
+        }
       break;
 
     case THUNAR_COLUMN_PERMISSIONS:
@@ -718,6 +754,16 @@ thunar_list_model_get_value (GtkTreeModel *model,
         g_value_set_static_string (value, thunar_vfs_mime_info_get_comment (mime_info));
       break;
 
+    case THUNAR_COLUMN_FILE:
+      g_value_init (value, THUNAR_TYPE_FILE);
+      g_value_set_object (value, row->file);
+      break;
+
+    case THUNAR_COLUMN_FILE_NAME:
+      g_value_init (value, G_TYPE_STRING);
+      g_value_take_string (value, g_filename_display_name (thunar_vfs_path_get_name (thunar_file_get_path (row->file))));
+      break;
+
     default:
       g_assert_not_reached ();
     }
@@ -855,8 +901,8 @@ thunar_list_model_get_sort_column_id (GtkTreeSortable *sortable,
     *sort_column_id = THUNAR_COLUMN_MIME_TYPE;
   else if (store->sort_func == sort_by_name)
     *sort_column_id = THUNAR_COLUMN_NAME;
-  else if (store->sort_func == sort_by_real_name)
-    *sort_column_id = THUNAR_COLUMN_REAL_NAME;
+  else if (store->sort_func == sort_by_file_name)
+    *sort_column_id = THUNAR_COLUMN_FILE_NAME;
   else if (store->sort_func == sort_by_permissions)
     *sort_column_id = THUNAR_COLUMN_PERMISSIONS;
   else if (store->sort_func == sort_by_size)
@@ -867,6 +913,10 @@ thunar_list_model_get_sort_column_id (GtkTreeSortable *sortable,
     *sort_column_id = THUNAR_COLUMN_DATE_MODIFIED;
   else if (store->sort_func == sort_by_type)
     *sort_column_id = THUNAR_COLUMN_TYPE;
+  else if (store->sort_func == sort_by_owner)
+    *sort_column_id = THUNAR_COLUMN_OWNER;
+  else if (store->sort_func == sort_by_group)
+    *sort_column_id = THUNAR_COLUMN_GROUP;
   else
     g_assert_not_reached ();
 
@@ -899,6 +949,10 @@ thunar_list_model_set_sort_column_id (GtkTreeSortable *sortable,
       store->sort_func = sort_by_date_modified;
       break;
 
+    case THUNAR_COLUMN_GROUP:
+      store->sort_func = sort_by_group;
+      break;
+
     case THUNAR_COLUMN_MIME_TYPE:
       store->sort_func = sort_by_mime_type;
       break;
@@ -907,8 +961,8 @@ thunar_list_model_set_sort_column_id (GtkTreeSortable *sortable,
       store->sort_func = sort_by_name;
       break;
 
-    case THUNAR_COLUMN_REAL_NAME:
-      store->sort_func = sort_by_real_name;
+    case THUNAR_COLUMN_OWNER:
+      store->sort_func = sort_by_owner;
       break;
 
     case THUNAR_COLUMN_PERMISSIONS:
@@ -923,6 +977,10 @@ thunar_list_model_set_sort_column_id (GtkTreeSortable *sortable,
       store->sort_func = sort_by_type;
       break;
 
+    case THUNAR_COLUMN_FILE_NAME:
+      store->sort_func = sort_by_file_name;
+      break;
+
     default:
       g_assert_not_reached ();
     }
@@ -1351,6 +1409,30 @@ sort_by_date_modified (const ThunarFile *a,
 
 
 
+static gint
+sort_by_file_name (const ThunarFile *a,
+                   const ThunarFile *b)
+{
+  return strcmp (thunar_vfs_path_get_name (thunar_file_get_path (a)),
+                 thunar_vfs_path_get_name (thunar_file_get_path (b)));
+}
+
+
+
+static gint
+sort_by_group (const ThunarFile *a,
+               const ThunarFile *b)
+{
+  if (a->info->gid < b->info->gid)
+    return -1;
+  else if (a->info->gid > b->info->gid)
+    return 1;
+  else
+    return sort_by_name (a, b);
+}
+
+
+
 static gint
 sort_by_mime_type (const ThunarFile *a,
                    const ThunarFile *b)
@@ -1384,11 +1466,15 @@ sort_by_name (const ThunarFile *a,
 
 
 static gint
-sort_by_real_name (const ThunarFile *a,
-                   const ThunarFile *b)
+sort_by_owner (const ThunarFile *a,
+               const ThunarFile *b)
 {
-  return strcmp (thunar_vfs_path_get_name (thunar_file_get_path (a)),
-                 thunar_vfs_path_get_name (thunar_file_get_path (b)));
+  if (a->info->uid < b->info->uid)
+    return -1;
+  else if (a->info->uid > b->info->uid)
+    return 1;
+  else
+    return sort_by_name (a, b);
 }
 
 
diff --git a/thunar/thunar-path-entry.c b/thunar/thunar-path-entry.c
index 4d5d8c795..934884870 100644
--- a/thunar/thunar-path-entry.c
+++ b/thunar/thunar-path-entry.c
@@ -304,7 +304,7 @@ thunar_path_entry_init (ThunarPathEntry *path_entry)
   preferences = thunar_preferences_get ();
   exo_binding_new (G_OBJECT (preferences), "last-show-hidden", G_OBJECT (store), "show-hidden");
   exo_binding_new (G_OBJECT (preferences), "misc-folders-first", G_OBJECT (store), "folders-first");
-  gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (store), THUNAR_COLUMN_REAL_NAME, GTK_SORT_ASCENDING);
+  gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (store), THUNAR_COLUMN_FILE_NAME, GTK_SORT_ASCENDING);
   gtk_entry_completion_set_model (completion, GTK_TREE_MODEL (store));
   g_object_unref (G_OBJECT (preferences));
   g_object_unref (G_OBJECT (store));
@@ -1055,7 +1055,7 @@ thunar_path_entry_common_prefix_lookup (ThunarPathEntry *path_entry,
       do 
         {
           /* determine the real file name for the iter */
-          gtk_tree_model_get (model, &iter, THUNAR_COLUMN_REAL_NAME, &name, -1);
+          gtk_tree_model_get (model, &iter, THUNAR_COLUMN_FILE_NAME, &name, -1);
 
           /* check if we have a valid prefix here */
           if (g_str_has_prefix (name, text))
@@ -1121,7 +1121,7 @@ thunar_path_entry_match_func (GtkEntryCompletion *completion,
 
   /* determine the real file name for the iter */
   model = gtk_entry_completion_get_model (completion);
-  gtk_tree_model_get (model, iter, THUNAR_COLUMN_REAL_NAME, &name, -1);
+  gtk_tree_model_get (model, iter, THUNAR_COLUMN_FILE_NAME, &name, -1);
   name_normalized = g_utf8_normalize (name, -1, G_NORMALIZE_ALL);
   g_free (name);
 
@@ -1158,7 +1158,7 @@ thunar_path_entry_match_selected (GtkEntryCompletion *completion,
   gtk_tree_model_get (model, iter, THUNAR_COLUMN_FILE, &file, -1);
   
   /* determine the real name for the file */
-  gtk_tree_model_get (model, iter, THUNAR_COLUMN_REAL_NAME, &real_name, -1);
+  gtk_tree_model_get (model, iter, THUNAR_COLUMN_FILE_NAME, &real_name, -1);
 
   /* append a slash if we have a folder here */
   if (G_LIKELY (thunar_file_is_directory (file)))
diff --git a/thunar/thunar-preferences.c b/thunar/thunar-preferences.c
index 55348eb0c..e9c1c07b5 100644
--- a/thunar/thunar-preferences.c
+++ b/thunar/thunar-preferences.c
@@ -50,6 +50,10 @@ enum
 {
   PROP_0,
   PROP_DEFAULT_VIEW,
+  PROP_LAST_DETAILS_VIEW_COLUMN_ORDER,
+  PROP_LAST_DETAILS_VIEW_COLUMN_WIDTHS,
+  PROP_LAST_DETAILS_VIEW_FIXED_COLUMNS,
+  PROP_LAST_DETAILS_VIEW_VISIBLE_COLUMNS,
   PROP_LAST_DETAILS_VIEW_ZOOM_LEVEL,
   PROP_LAST_ICON_VIEW_ZOOM_LEVEL,
   PROP_LAST_LOCATION_BAR,
@@ -189,6 +193,61 @@ thunar_preferences_class_init (ThunarPreferencesClass *klass)
                                                         "void",
                                                         EXO_PARAM_READWRITE));
 
+  /**
+   * ThunarPreferences:last-details-view-column-order:
+   *
+   * The comma separated list of columns that specifies the order of the
+   * columns in the #ThunarDetailsView.
+   **/
+  g_object_class_install_property (gobject_class,
+                                   PROP_LAST_DETAILS_VIEW_COLUMN_ORDER,
+                                   g_param_spec_string ("last-details-view-column-order",
+                                                        "last-details-view-column-order",
+                                                        "last-details-view-column-order",
+                                                        "THUNAR_COLUMN_NAME,THUNAR_COLUMN_SIZE,THUNAR_COLUMN_TYPE,THUNAR_COLUMN_DATE_MODIFIED",
+                                                        EXO_PARAM_READWRITE));
+
+  /**
+   * ThunarPreferences:last-details-view-column-widths:
+   *
+   * The comma separated list of column widths used for fixed width
+   * #ThunarDetailsView<!---->s.
+   **/
+  g_object_class_install_property (gobject_class,
+                                   PROP_LAST_DETAILS_VIEW_COLUMN_WIDTHS,
+                                   g_param_spec_string ("last-details-view-column-widths",
+                                                        "last-details-view-column-widths",
+                                                        "last-details-view-column-widths",
+                                                        "",
+                                                        EXO_PARAM_READWRITE));
+
+  /**
+   * ThunarPreferences:last-details-view-fixed-columns:
+   *
+   * %TRUE to use fixed column widths in the #ThunarDetailsView. Else the
+   * column widths will be automatically determined from the model contents.
+   **/
+  g_object_class_install_property (gobject_class,
+                                   PROP_LAST_DETAILS_VIEW_FIXED_COLUMNS,
+                                   g_param_spec_boolean ("last-details-view-fixed-columns",
+                                                         "last-details-view-fixed-columns",
+                                                         "last-details-view-fixed-columns",
+                                                         FALSE,
+                                                         EXO_PARAM_READWRITE));
+
+  /**
+   * ThunarPreferences:last-details-view-visible-columns:
+   *
+   * The comma separated list of visible columns in the #ThunarDetailsView.
+   **/
+  g_object_class_install_property (gobject_class,
+                                   PROP_LAST_DETAILS_VIEW_VISIBLE_COLUMNS,
+                                   g_param_spec_string ("last-details-view-visible-columns",
+                                                        "last-details-view-visible-columns",
+                                                        "last-details-view-visible-columns",
+                                                        "THUNAR_COLUMN_DATE_MODIFIED,THUNAR_COLUMN_NAME,THUNAR_COLUMN_SIZE,THUNAR_COLUMN_TYPE",
+                                                        EXO_PARAM_READWRITE));
+
   /**
    * ThunarPreferences:last-details-view-zoom-level:
    *
diff --git a/thunar/thunar-text-renderer.c b/thunar/thunar-text-renderer.c
index c253aa997..d4a01f538 100644
--- a/thunar/thunar-text-renderer.c
+++ b/thunar/thunar-text-renderer.c
@@ -423,6 +423,9 @@ thunar_text_renderer_get_size (GtkCellRenderer *renderer,
       /* determine the text_length in characters */
       text_length = g_utf8_strlen (text_renderer->text, -1);
 
+      /* the approximation is usually 1-2 chars wrong, so wth */
+      text_length += 2;
+
       /* calculate the appromixate text width/height */
       text_width = text_renderer->char_width * text_length;
       text_height = text_renderer->char_height;
@@ -720,6 +723,9 @@ thunar_text_renderer_set_widget (ThunarTextRenderer *text_renderer,
       text_renderer->char_height = PANGO_PIXELS (pango_font_metrics_get_ascent (metrics) + pango_font_metrics_get_descent (metrics));
       pango_font_metrics_unref (metrics);
 
+      /* tell the cell renderer about the fixed height */
+      gtk_cell_renderer_set_fixed_size (GTK_CELL_RENDERER (text_renderer), -1, text_renderer->char_height);
+
       /* determine the focus-padding and focus-line-width style properties from the widget */
       gtk_widget_style_get (widget, "focus-padding", &focus_padding, "focus-line-width", &focus_line_width, NULL);
       text_renderer->focus_width = focus_padding + focus_line_width;
-- 
GitLab