rtfm-filemanager 7.3.4 → 7.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/bin/rtfm +26 -7
  3. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b7fda1f5461bae4662b7ede88c67251c73e959dc480a3568d53e1f11cc061ee7
4
- data.tar.gz: 51d4cf06be62c4c8dcc301acf1374b9f9c258df78291818213d3f9539f8b036d
3
+ metadata.gz: ac276f65f7d1863eaf02a6eba9292b49eefe7c236e71d5f1afb6438226d40938
4
+ data.tar.gz: 79b6f40face79a0b05e837fcb812c7249492e26812a818f46e34b437ad868d8b
5
5
  SHA512:
6
- metadata.gz: 9b5fdf8dd7cc1bdba3b43eae0f9c1dc1beeaa14541c8647f90370a3440b8e3b73fa56a08b8030c9af22e694df7dde4dea9cee5a382736ef92004b475d52a02bf
7
- data.tar.gz: 6bb8bdb7c7fa5157e080ac3e718255570a7ac42bb8525576484d654d3b52dfd47016a24c5bf57f1dab90f897c48de043ed56c4cf59156d9c6f433e785c186ae7
6
+ metadata.gz: '09de6ce095ccb8d56e5b1677f165201b63813924f31974392333dfc9239620b9ceee000d4e5de7e53250a47b3cb6e125ef9b7466345a09b35e47f39498f02d36'
7
+ data.tar.gz: 53d15fb24dd6af374f1dd8474f4c7d5e1697879026b8adec49cfabeda7dd216f9dc276ef75e0ebad4ea7a5a15689ad3a18e767b3d47830c1fc3db2b34115647b
data/bin/rtfm CHANGED
@@ -18,7 +18,7 @@
18
18
  # get a great understanding of the code itself by simply sending
19
19
  # or pasting this whole file into you favorite AI for coding with
20
20
  # a prompt like this: "Help me understand every part of this code".
21
- @version = '7.3.4' # Critical bugfix for permanent delete
21
+ @version = '7.3.6' # Preview toggle clears images and performance
22
22
 
23
23
  # SAVE & STORE TERMINAL {{{1
24
24
  ORIG_STTY = `stty -g`.chomp
@@ -1198,12 +1198,22 @@ def toggle_border # {{{3
1198
1198
  end
1199
1199
 
1200
1200
  def toggle_preview # {{{3
1201
+ # Clear image BEFORE toggling if we're about to turn preview off
1202
+ if @preview && @image
1203
+ showimage('clear')
1204
+ @image = false
1205
+ end
1201
1206
  @preview = !@preview
1202
1207
  @pB.say("Preview = #{@preview ? 'On' : 'Off'}")
1203
1208
  @pR.clear unless @preview
1204
1209
  end
1205
1210
 
1206
1211
  def toggle_image # {{{3
1212
+ # Clear image BEFORE toggling if we're about to turn it off
1213
+ if @showimage && @image
1214
+ showimage('clear')
1215
+ @image = false
1216
+ end
1207
1217
  @showimage = !@showimage
1208
1218
  @pB.say("Image preview = #{@showimage ? 'On' : 'Off'}")
1209
1219
  getch
@@ -1241,10 +1251,11 @@ def move_up # {{{3
1241
1251
  end
1242
1252
 
1243
1253
  def move_left # {{{3
1254
+ clear_image
1244
1255
  if @remote_mode
1245
1256
  # Remote mode - go to parent directory
1246
1257
  return if @remote_path == '/' || @remote_path == '~'
1247
-
1258
+
1248
1259
  old_path = @remote_path
1249
1260
  @remote_path = File.dirname(@remote_path)
1250
1261
  @remote_files_cache = [] # Clear cache when changing directories
@@ -1275,11 +1286,12 @@ def move_right # {{{3
1275
1286
  if @remote_mode
1276
1287
  # Remote mode - enter directory or perform action on file
1277
1288
  return unless @files && @files[@index] && @remote_files_cache[@index]
1278
-
1289
+
1279
1290
  selected_file = @remote_files_cache[@index]
1280
-
1291
+
1281
1292
  if selected_file[:type] == 'directory'
1282
1293
  # Enter directory
1294
+ clear_image
1283
1295
  @remote_path = File.join(@remote_path, selected_file[:name])
1284
1296
  @remote_files_cache = [] # Clear cache when changing directories
1285
1297
  @index = 0 # Reset selection
@@ -1290,7 +1302,7 @@ def move_right # {{{3
1290
1302
  show_remote_file_info(selected_file)
1291
1303
  end
1292
1304
  else
1293
- # Local mode
1305
+ # Local mode - open_selected will handle directory changes
1294
1306
  @directory[Dir.pwd] = @index
1295
1307
  mark_latest
1296
1308
  open_selected
@@ -1377,6 +1389,7 @@ def show_marks # {{{3
1377
1389
  end
1378
1390
 
1379
1391
  def jump_to_mark # {{{3
1392
+ clear_image
1380
1393
  marks_info
1381
1394
  m = getchr
1382
1395
  if m =~ /[\w']/ && @marks[m]
@@ -1390,6 +1403,7 @@ def jump_to_mark # {{{3
1390
1403
  end
1391
1404
 
1392
1405
  def go_home # {{{3
1406
+ clear_image
1393
1407
  if @dual_pane
1394
1408
  # In dual-pane mode, navigate the active pane to home directory
1395
1409
  home_dir = Dir.home
@@ -1434,6 +1448,7 @@ def go_home # {{{3
1434
1448
  end
1435
1449
 
1436
1450
  def follow_symlink # {{{3
1451
+ clear_image
1437
1452
  @directory[Dir.pwd] = @index; mark_latest
1438
1453
  if File.symlink?(@selected)
1439
1454
  begin
@@ -4882,14 +4897,15 @@ def render # RENDER ALL PANES {{{2
4882
4897
  cached_meta = get_cached_file_metadata(@selected)
4883
4898
  if cached_meta
4884
4899
  text += cached_meta
4885
- elsif @selected&.match(@imagefile) && cmd?('identify')
4900
+ elsif @preview && @selected&.match(@imagefile) && cmd?('identify')
4901
+ # Only get image metadata if preview is ON (avoid lag with preview OFF)
4886
4902
  # Skip SVG files as identify can be very slow on them
4887
4903
  unless @selected =~ /\.svg$/i
4888
4904
  # Fallback for non-cached image metadata
4889
4905
  meta = `identify -format " [%wx%h %m %[colorspace] %[bit-depth]-bit]" #{Shellwords.escape(@selected)} 2>/dev/null`
4890
4906
  text += meta
4891
4907
  end
4892
- elsif @selected&.match(@pdffile)
4908
+ elsif @preview && @selected&.match(@pdffile)
4893
4909
  # Fallback for non-cached PDF metadata
4894
4910
  info = `pdfinfo #{Shellwords.escape(@selected)} 2>/dev/null`
4895
4911
  pages = info[/^Pages:\s+(\d+)/, 1]
@@ -5272,6 +5288,7 @@ end
5272
5288
  def open_selected(html = nil) # OPEN SELECTED FILE {{{2
5273
5289
  require 'tmpdir' unless Dir.respond_to?(:tmpdir)
5274
5290
  if File.directory?(@selected) # Dir? just cd into it
5291
+ clear_image
5275
5292
  mark_latest
5276
5293
  Dir.chdir(@selected) rescue nil
5277
5294
  track_directory_access(@selected)
@@ -5688,6 +5705,7 @@ end
5688
5705
 
5689
5706
  def clear_image(skip_actual_clear: false) # HELPER TO CLEAR CURRENT IMAGE {{{2
5690
5707
  return unless @image
5708
+ return unless @preview # Don't clear if preview is off - nothing to clear
5691
5709
  # For operations that immediately render text over image, skip the slow clear
5692
5710
  # The text pane will cover the image overlay anyway
5693
5711
  unless skip_actual_clear
@@ -5699,6 +5717,7 @@ end
5699
5717
  def showimage(image) # SHOW THE SELECTED IMAGE IN THE RIGHT WINDOW {{{2
5700
5718
  # Pass 'clear' to clear the window for previous image
5701
5719
  return unless @showimage
5720
+ return unless @preview # Don't show images if preview is off
5702
5721
 
5703
5722
  begin
5704
5723
  if image == 'clear'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rtfm-filemanager
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.3.4
4
+ version: 7.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Geir Isene
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-10-28 00:00:00.000000000 Z
11
+ date: 2025-11-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rcurses
@@ -67,7 +67,7 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '7.4'
69
69
  description: |-
70
- RTFM v7.3.4: Critical bugfix for permanent delete operation.
70
+ RTFM v7.3.6: Preview toggle clears images and performance optimization with termpix 0.2.1.
71
71
  A full featured terminal browser with syntax highlighted files, images shown in the terminal, videos thumbnailed, etc. Features include remote SSH/SFTP browsing, interactive SSH shell, comprehensive undo system, bookmarks, and much more. You can bookmark and jump around easily, delete, rename, copy, symlink and move files. RTFM is one of the most feature-packed terminal file managers.
72
72
  email: g@isene.com
73
73
  executables: