"Select Similar Dimensions" menu button

Overview:

This simple button allows you to select files with the same dimensions as the currently selected file (images, videos and any other files that contain width and height).

How to use?

  1. Select a file
  2. Сlick "Select Similar Dimensions" button

All files with the same dimensions and extension will be selected. If you want to select files with the same dimensions but different extensions - hold "Shift" while click on "Select Similar Dimensions" button.

The button:

Script code:

The script inside the .dcf file above is reproduced here for reference:

Modifiers:

@disablenosel

Script:

function OnClick(ClickData) {
   SelectedFiles = new Enumerator(ClickData.Func.Sourcetab.selected_files);
   if (SelectedFiles.item() != null && SelectedFiles.item().Metadata.image.picwidth != null && SelectedFiles.item().Metadata.image.picheight != null) {
      PicWidth = SelectedFiles.item().Metadata.image.picwidth;
      PicHeight = SelectedFiles.item().Metadata.image.picheight;
      FileExt = SelectedFiles.item().ext.toLowerCase();
      EnumFiles = new Enumerator(ClickData.Func.Sourcetab.files);
      EnumFiles.moveFirst();
      SimilarDimensions = null;
      var FileCount = 1;
      Cmd = ClickData.Func.Command;
      Cmd.Progress.abort = true;
      Cmd.Progress.pause = true;
      Cmd.Progress.owned = true;
      Cmd.Progress.delay = true;
      Cmd.Progress.Init();
      Cmd.Progress.SetTitle("Select Similar Dimensions");
      Cmd.Progress.SetStatus("Total files selected: " + FileCount);
      Cmd.Progress.Show();
      while (EnumFiles.atEnd() == false && (Cmd.Progress.GetAbortState != "a" || Cmd.Progress.GetAbortState == "p")) {
         Cmd.Progress.SetName(EnumFiles.item().name);
         if (EnumFiles.item().Metadata.image != null) {
            if (ClickData.Func.qualifiers == "shift") {
               FileExt = EnumFiles.item().ext.toLowerCase();
            }
            if (EnumFiles.item().Metadata.image.picwidth == PicWidth && EnumFiles.item().Metadata.image.picheight == PicHeight && EnumFiles.item().ext.toLowerCase() == FileExt) {
               SimilarDimensions = EnumFiles.item();
               if (SimilarDimensions != null) {
                  Cmd.ClearFiles();
                  Cmd.AddFile(SimilarDimensions);
                  Cmd.RunCommand("Select FROMSCRIPT MAKEVISIBLE");
                  Cmd.Progress.SetStatus("Total files selected: " + FileCount);
                  Cmd.Progress.StepFiles();
                  FileCount++;
               }
            }
         }
         EnumFiles.moveNext();
      }
      Cmd.Progress.Hide();
   }
}
1 Like

For some unknown reason, the progress dialog does not appear on the jobs bar.