|
1 | | -import { App, PluginSettingTab, Setting } from "obsidian"; |
| 1 | +import { App, PluginSettingTab, Setting, SliderComponent } from "obsidian"; |
2 | 2 | import VaultExplorerPlugin from "src/main"; |
3 | 3 | import { |
4 | 4 | getDropdownOptionsForProperties, |
@@ -386,59 +386,107 @@ export default class VaultExplorerSettingsTab extends PluginSettingTab { |
386 | 386 | }) |
387 | 387 | ); |
388 | 388 |
|
| 389 | + let largeScreenLineClampSlider: SliderComponent | null = null; |
389 | 390 | new Setting(containerEl) |
390 | 391 | .setName("Large screen line clamp") |
391 | 392 | .setDesc( |
392 | | - "Number of lines to clamp on large screens (>= 1024px). (2-8, default 5)" |
| 393 | + "Number of lines to clamp on large screens (>= 1024px) (2-8, default 5)" |
393 | 394 | ) |
394 | | - .addSlider((component) => |
395 | | - component |
| 395 | + .addExtraButton((button) => |
| 396 | + button |
| 397 | + .setIcon("reset") |
| 398 | + .setTooltip("Restore default") |
| 399 | + .onClick(async () => { |
| 400 | + this.plugin.settings.views.feed.lineClampLarge = 5; |
| 401 | + largeScreenLineClampSlider?.setValue(5); |
| 402 | + await this.plugin.saveSettings(); |
| 403 | + EventManager.getInstance().emit( |
| 404 | + PluginEvent.FEED_CONTENT_SETTING_CHANGE |
| 405 | + ); |
| 406 | + }) |
| 407 | + ) |
| 408 | + .addSlider((component) => { |
| 409 | + largeScreenLineClampSlider = component; |
| 410 | + return component |
396 | 411 | .setValue(this.plugin.settings.views.feed.lineClampLarge) |
397 | 412 | .setLimits(2, 8, 1) |
| 413 | + .setDynamicTooltip() |
398 | 414 | .onChange(async (value) => { |
399 | 415 | this.plugin.settings.views.feed.lineClampLarge = value; |
400 | 416 | await this.plugin.saveSettings(); |
401 | 417 | EventManager.getInstance().emit( |
402 | 418 | PluginEvent.FEED_CONTENT_SETTING_CHANGE |
403 | 419 | ); |
404 | | - }) |
405 | | - ); |
| 420 | + }); |
| 421 | + }); |
406 | 422 |
|
| 423 | + let mediumScreenLineClampSlider: SliderComponent | null = null; |
407 | 424 | new Setting(containerEl) |
408 | 425 | .setName("Medium screen line clamp") |
409 | 426 | .setDesc( |
410 | | - "Number of lines to clamp on medium screens (>= 600px and < 1024px). (2-8, default 3)" |
| 427 | + "Number of lines to clamp on medium screens (>= 600px and < 1024px) (2-8, default 3)" |
411 | 428 | ) |
412 | | - .addSlider((component) => |
413 | | - component |
| 429 | + .addExtraButton((button) => |
| 430 | + button |
| 431 | + .setIcon("reset") |
| 432 | + .setTooltip("Restore default") |
| 433 | + .onClick(async () => { |
| 434 | + this.plugin.settings.views.feed.lineClampLarge = 3; |
| 435 | + mediumScreenLineClampSlider?.setValue(3); |
| 436 | + await this.plugin.saveSettings(); |
| 437 | + EventManager.getInstance().emit( |
| 438 | + PluginEvent.FEED_CONTENT_SETTING_CHANGE |
| 439 | + ); |
| 440 | + }) |
| 441 | + ) |
| 442 | + .addSlider((component) => { |
| 443 | + mediumScreenLineClampSlider = component; |
| 444 | + return component |
414 | 445 | .setValue(this.plugin.settings.views.feed.lineClampMedium) |
415 | 446 | .setLimits(2, 8, 1) |
| 447 | + .setDynamicTooltip() |
416 | 448 | .onChange(async (value) => { |
417 | 449 | this.plugin.settings.views.feed.lineClampMedium = value; |
418 | 450 | await this.plugin.saveSettings(); |
419 | 451 | EventManager.getInstance().emit( |
420 | 452 | PluginEvent.FEED_CONTENT_SETTING_CHANGE |
421 | 453 | ); |
422 | | - }) |
423 | | - ); |
| 454 | + }); |
| 455 | + }); |
424 | 456 |
|
| 457 | + let smallScreenLineClampSlider: SliderComponent | null = null; |
425 | 458 | new Setting(containerEl) |
426 | 459 | .setName("Small screen line clamp") |
427 | 460 | .setDesc( |
428 | | - "Number of lines to clamp on small screens (< 600px). (2-8, default 2)" |
| 461 | + "Number of lines to clamp on small screens (< 600px) (2-8, default 2)" |
429 | 462 | ) |
430 | | - .addSlider((component) => |
431 | | - component |
| 463 | + .addExtraButton((button) => |
| 464 | + button |
| 465 | + .setIcon("reset") |
| 466 | + .setTooltip("Restore default") |
| 467 | + .onClick(async () => { |
| 468 | + this.plugin.settings.views.feed.lineClampLarge = 2; |
| 469 | + smallScreenLineClampSlider?.setValue(2); |
| 470 | + await this.plugin.saveSettings(); |
| 471 | + EventManager.getInstance().emit( |
| 472 | + PluginEvent.FEED_CONTENT_SETTING_CHANGE |
| 473 | + ); |
| 474 | + }) |
| 475 | + ) |
| 476 | + .addSlider((component) => { |
| 477 | + smallScreenLineClampSlider = component; |
| 478 | + return component |
432 | 479 | .setValue(this.plugin.settings.views.feed.lineClampSmall) |
433 | 480 | .setLimits(2, 8, 1) |
| 481 | + .setDynamicTooltip() |
434 | 482 | .onChange(async (value) => { |
435 | 483 | this.plugin.settings.views.feed.lineClampSmall = value; |
436 | 484 | await this.plugin.saveSettings(); |
437 | 485 | EventManager.getInstance().emit( |
438 | 486 | PluginEvent.FEED_CONTENT_SETTING_CHANGE |
439 | 487 | ); |
440 | | - }) |
441 | | - ); |
| 488 | + }); |
| 489 | + }); |
442 | 490 |
|
443 | 491 | new Setting(containerEl).setName("Built-in properties").setHeading(); |
444 | 492 |
|
|
0 commit comments