Idea: temporary "compactize" mode for columns

Quite often i find some columns being outside the file display sight, with a side scroll bar at the bottom, which sometimes can be a bit cumbersome if i want to move the column around, especially when dealing with very wide columns, like "description" inbetween, and the desired column is behind that.

We have various folder options to handle it, but normally it's only a temporary case, so mostly i don't want to rearrange columns permanently. It would be handy, if we could Ctrl-click the columns bar, holding control, to make all columns visible at once, even they would be truncated. While still holding Ctrl, we could drag the columns into the desired place. When releasing Ctrl, things would jump back to normal sizes, except the rearranged column. As i have checked, Ctrl-click does nothing, currently.

Edit: the same applies, if i don't even want to change column positions, but only change the sorting.

That would be handy at times, for sure.

At the moment, you could do something similar with a script, which I've put in the Lister Column Header context menu:

This resizes all the columns to 50 pixels wide the first time you click it, and auto-sizes all of them the second time you click it:

Toggle Narrow_Auto.dcf (2.4 KB)

Script code for reference:

function OnClick(clickData) {

   var maxSize = 50;

   maxSize = DOpus.DPI.Scale(maxSize);
   clickData.func.command.deselect = false;

   var colParamsAuto = "";
   var colParamsSmall = "";
   for(var e = new Enumerator(clickData.func.sourcetab.format.columns); !e.atEnd(); e.moveNext()){
      var col = e.item();
      if (!col.Autosize || col.Max != maxSize){
         if (colParamsSmall) colParamsSmall += ",";
         colParamsSmall += col.Name;
         colParamsSmall += "(!,a," + maxSize + ")"; // Keep position. Auto-size. Max maxSize pixels.
      }
      if (colParamsAuto) colParamsAuto += ",";
      colParamsAuto += col.Name;
      colParamsAuto += "(!,a,0)"; // Keep position. Auto-size. No max size.
   }

   var cmd = "";
   if (colParamsSmall) {
     cmd = 'Set COLUMNSADD="'+colParamsSmall+'"';
   }
   else if (colParamsAuto) {
     cmd = 'Set COLUMNSADD="'+colParamsAuto+'"';
   }

   if (cmd != "")
   {
	   clickData.func.command.RunCommand(cmd);
   }
}

The script is similar to / based on the one which toggles between auto-size and resetting the folder format, from here:

1 Like

Thanks, Leo. Works well. Although it compresses the columns in a way, that leaves lots of empty space on the right side. But since the goal is to just rearrange the columns, toggling back then, it doesn't matter. Cool. I've also added tbone's button to the tool bar.

:beers: