Skip to content

Commit 66b396b

Browse files
authored
Merge pull request #311 from decaf-dev/dev
1.41.0
2 parents 4e0d8f0 + 2bf5c13 commit 66b396b

File tree

18 files changed

+545
-13
lines changed

18 files changed

+545
-13
lines changed

manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"id": "vault-explorer",
33
"name": "Vault Explorer",
4-
"version": "1.40.2",
4+
"version": "1.41.0",
55
"minAppVersion": "1.4.13",
66
"description": "Explore your vault in visual format",
77
"author": "DecafDev",

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "obsidian-vault-explorer",
3-
"version": "1.40.2",
3+
"version": "1.41.0",
44
"description": "Explore your vault in visual format",
55
"main": "main.js",
66
"scripts": {

src/constants.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ export const DEFAULT_SETTINGS: VaultExplorerPluginSettings = {
1010
favorite: "",
1111
url: "",
1212
image: "",
13+
coverImageFit: "",
1314
createdDate: "",
1415
modifiedDate: "",
1516
custom1: "",
@@ -45,6 +46,7 @@ export const DEFAULT_SETTINGS: VaultExplorerPluginSettings = {
4546
},
4647
grid: {
4748
isEnabled: true,
49+
coverImageFit: "cover",
4850
coverImageSources: [
4951
{
5052
type: "image-property",

src/event/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ export enum PluginEvent {
1010
FOLDER_DELETE = "folder-delete",
1111
FOLDER_CREATE = "folder-create",
1212
PAGE_SIZE_SETTING_CHANGE = "page-size-setting-change",
13+
COVER_IMAGE_FIT_SETTING_CHANGE = "cover-image-fit-setting-change",
1314
FEED_CONTENT_SETTING_CHANGE = "feed-content-setting-change",
1415
COVER_IMAGE_SOURCE_SETTING_CHANGE = "cover-image-source-setting-change",
1516
PROPERTY_SETTING_CHANGE = "property-setting-change",

src/migrations/index.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import Migrate_1_37_0 from "./migrate_1_37_0";
3030
import Migrate_1_38_0 from "./migrate_1_38_0";
3131
import Migrate_1_39_0 from "./migrate_1_39_0";
3232
import Migrate_1_40_0 from "./migrate_1_40_0";
33+
import Migrate_1_41_0 from "./migrate_1_41_0";
3334

3435
const migrations: TMigration[] = [
3536
{
@@ -177,6 +178,11 @@ const migrations: TMigration[] = [
177178
to: "1.40.0",
178179
migrate: Migrate_1_40_0,
179180
},
181+
{
182+
from: "1.40.2",
183+
to: "1.41.0",
184+
migrate: Migrate_1_41_0,
185+
},
180186
];
181187

182188
export const preformMigrations = (

src/migrations/migrate_1_40_0.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import MigrationInterface from "./migration_interface";
22
import { VaultExplorerPluginSettings_1_39_0 } from "src/types/types-1.39.0";
3-
import { VaultExplorerPluginSettings } from "src/types";
3+
import { VaultExplorerPluginSettings_1_40_2 } from "src/types/types-1.40.2";
44

55
export default class Migrate_1_40_0 implements MigrationInterface {
66
migrate(data: Record<string, unknown>) {
77
const typedData = data as unknown as VaultExplorerPluginSettings_1_39_0;
8-
const newData: VaultExplorerPluginSettings = {
8+
const newData: VaultExplorerPluginSettings_1_40_2 = {
99
...typedData,
1010
shouldCollapseFilters: false,
1111
};

src/migrations/migrate_1_41_0.ts

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import { VaultExplorerPluginSettings } from "src/types";
2+
import MigrationInterface from "./migration_interface";
3+
import { VaultExplorerPluginSettings_1_40_2 } from "src/types/types-1.40.2";
4+
5+
export default class Migrate_1_41_0 implements MigrationInterface {
6+
migrate(data: Record<string, unknown>) {
7+
const typedData = data as unknown as VaultExplorerPluginSettings_1_40_2;
8+
const newData: VaultExplorerPluginSettings = {
9+
...typedData,
10+
properties: {
11+
...typedData.properties,
12+
coverImageFit: "",
13+
},
14+
views: {
15+
...typedData.views,
16+
grid: {
17+
...typedData.views.grid,
18+
coverImageFit: "cover",
19+
},
20+
},
21+
};
22+
23+
return newData as unknown as Record<string, unknown>;
24+
}
25+
}

src/obsidian/vault-explorer-settings-tab.ts

Lines changed: 41 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import {
1414
} from "src/logger/constants";
1515
import Logger from "js-logger";
1616
import { stringToLogLevel } from "src/logger";
17-
import { CollapseStyle, TExplorerView } from "src/types";
17+
import { CollapseStyle, CoverImageFit, TExplorerView } from "src/types";
1818
import EventManager from "src/event/event-manager";
1919
import LicenseKeyApp from "../svelte/license-key-app/index.svelte";
2020
import ImageSourceApp from "../svelte/image-source-app/index.svelte";
@@ -312,6 +312,26 @@ export default class VaultExplorerSettingsTab extends PluginSettingTab {
312312
})
313313
);
314314

315+
new Setting(containerEl)
316+
.setName("Cover image fit")
317+
.setDesc("Set the default cover image fit")
318+
.addDropdown((cb) =>
319+
cb
320+
.addOptions({
321+
cover: "Cover",
322+
contain: "Contain",
323+
})
324+
.setValue(this.plugin.settings.views.grid.coverImageFit)
325+
.onChange(async (value) => {
326+
this.plugin.settings.views.grid.coverImageFit =
327+
value as CoverImageFit;
328+
await this.plugin.saveSettings();
329+
EventManager.getInstance().emit(
330+
PluginEvent.COVER_IMAGE_FIT_SETTING_CHANGE
331+
);
332+
})
333+
);
334+
315335
new Setting(containerEl).setName("List view").setHeading();
316336

317337
new Setting(containerEl)
@@ -443,9 +463,9 @@ export default class VaultExplorerSettingsTab extends PluginSettingTab {
443463
);
444464

445465
new Setting(containerEl)
446-
.setName("Image property")
466+
.setName("Cover image property")
447467
.setDesc(
448-
"Property used to store an image. This must be a text property."
468+
"Property used to store a cover image. This must be a text property."
449469
)
450470
.addDropdown((dropdown) =>
451471
dropdown
@@ -460,6 +480,24 @@ export default class VaultExplorerSettingsTab extends PluginSettingTab {
460480
})
461481
);
462482

483+
new Setting(containerEl)
484+
.setName("Cover image fit property")
485+
.setDesc(
486+
"Property used to store the cover image fit. This must be a text property."
487+
)
488+
.addDropdown((dropdown) =>
489+
dropdown
490+
.addOptions(getDropdownOptionsForProperties(textProperties))
491+
.setValue(this.plugin.settings.properties.coverImageFit)
492+
.onChange(async (value) => {
493+
this.plugin.settings.properties.coverImageFit = value;
494+
await this.plugin.saveSettings();
495+
EventManager.getInstance().emit(
496+
PluginEvent.PROPERTY_SETTING_CHANGE
497+
);
498+
})
499+
);
500+
463501
new Setting(containerEl)
464502
.setName("URL property")
465503
.setDesc(

src/svelte/app/components/grid-card.svelte

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
isSocialMediaImageEntryExpired,
2424
putSocialMediaImageUrl,
2525
} from "../services/social-media-image-cache";
26+
import { CoverImageFit } from "src/types";
2627
2728
export let displayName: string;
2829
export let path: string;
@@ -35,6 +36,7 @@
3536
export let custom2: string | null;
3637
export let custom3: string | null;
3738
export let isFavorite: boolean | null;
39+
export let coverImageFit: CoverImageFit;
3840
3941
let plugin: VaultExplorerPlugin;
4042
let enableFileIcons: boolean = false;
@@ -136,11 +138,21 @@
136138
dispatch("favoritePropertyChange", { filePath, value });
137139
}
138140
141+
function handleCoverImageFitChange(filePath: string, value: CoverImageFit) {
142+
dispatch("coverImageFitChange", { filePath, value });
143+
}
144+
139145
function handleCardContextMenu(e: Event) {
140146
const nativeEvent = e as MouseEvent;
147+
148+
const showCoverImageOptions = path.endsWith(".md");
141149
openContextMenu(plugin, path, nativeEvent, {
142150
isFavorite,
151+
coverImageFit: showCoverImageOptions ? coverImageFit : undefined,
143152
onFavoriteChange: handleFavoriteChange,
153+
onCoverImageFitChange: showCoverImageOptions
154+
? handleCoverImageFitChange
155+
: undefined,
144156
});
145157
}
146158
@@ -208,7 +220,9 @@
208220
<img
209221
class="vault-explorer-grid-card__image"
210222
src={imgSrc}
211-
style="display: {isCoverImageLoaded ? 'block' : 'none'};"
223+
style="display: {isCoverImageLoaded
224+
? 'block'
225+
: 'none'}; object-fit: {coverImageFit};"
212226
on:load={handleImageLoad}
213227
on:error={handleImageError}
214228
/>
@@ -335,7 +349,6 @@
335349
.vault-explorer-grid-card__image {
336350
width: 100%;
337351
height: 150px;
338-
object-fit: cover;
339352
border-top-left-radius: var(--radius-m);
340353
border-top-right-radius: var(--radius-m);
341354
}

src/svelte/app/components/grid-view.svelte

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
<GridCard
2727
displayName={fileRenderData.displayName}
2828
path={fileRenderData.path}
29+
coverImageFit={fileRenderData.coverImageFit}
2930
baseName={fileRenderData.baseName}
3031
extension={fileRenderData.extension}
3132
imageUrl={fileRenderData.imageUrl}
@@ -36,6 +37,7 @@
3637
custom3={fileRenderData.custom3}
3738
isFavorite={fileRenderData.isFavorite}
3839
on:favoritePropertyChange
40+
on:coverImageFitChange
3941
/>
4042
{/each}
4143
</div>

0 commit comments

Comments
 (0)