✌️
This commit is contained in:
		
							parent
							
								
									a1e5420b8f
								
							
						
					
					
						commit
						2e7feadcd9
					
				
					 3 changed files with 45 additions and 15 deletions
				
			
		| 
						 | 
					@ -26,7 +26,7 @@ export default Vue.extend({
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	methods: {
 | 
						methods: {
 | 
				
			||||||
		popout() {
 | 
							popout() {
 | 
				
			||||||
			const folder = (this.$refs.browser as any).folder;
 | 
								const folder = (this.$refs.browser as any) ? (this.$refs.browser as any).folder : null;
 | 
				
			||||||
			if (folder) {
 | 
								if (folder) {
 | 
				
			||||||
				return `${url}/i/drive/folder/${folder.id}`;
 | 
									return `${url}/i/drive/folder/${folder.id}`;
 | 
				
			||||||
			} else {
 | 
								} else {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -23,6 +23,9 @@
 | 
				
			||||||
			<mk-switch v-model="os.i.client_settings.fetchOnScroll" @change="onChangeFetchOnScroll" text="スクロールで自動読み込み">
 | 
								<mk-switch v-model="os.i.client_settings.fetchOnScroll" @change="onChangeFetchOnScroll" text="スクロールで自動読み込み">
 | 
				
			||||||
				<span>ページを下までスクロールしたときに自動で追加のコンテンツを読み込みます。</span>
 | 
									<span>ページを下までスクロールしたときに自動で追加のコンテンツを読み込みます。</span>
 | 
				
			||||||
			</mk-switch>
 | 
								</mk-switch>
 | 
				
			||||||
 | 
								<mk-switch v-model="autoPopout" text="ウィンドウの自動ポップアウト">
 | 
				
			||||||
 | 
									<span>ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。</span>
 | 
				
			||||||
 | 
								</mk-switch>
 | 
				
			||||||
		</section>
 | 
							</section>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		<section class="web" v-show="page == 'web'">
 | 
							<section class="web" v-show="page == 'web'">
 | 
				
			||||||
| 
						 | 
					@ -206,6 +209,7 @@ export default Vue.extend({
 | 
				
			||||||
			latestVersion: undefined,
 | 
								latestVersion: undefined,
 | 
				
			||||||
			checkingForUpdate: false,
 | 
								checkingForUpdate: false,
 | 
				
			||||||
			enableSounds: localStorage.getItem('enableSounds') == 'true',
 | 
								enableSounds: localStorage.getItem('enableSounds') == 'true',
 | 
				
			||||||
 | 
								autoPopout: localStorage.getItem('autoPopout') == 'true',
 | 
				
			||||||
			soundVolume: localStorage.getItem('soundVolume') ? parseInt(localStorage.getItem('soundVolume'), 10) : 100,
 | 
								soundVolume: localStorage.getItem('soundVolume') ? parseInt(localStorage.getItem('soundVolume'), 10) : 100,
 | 
				
			||||||
			lang: localStorage.getItem('lang') || '',
 | 
								lang: localStorage.getItem('lang') || '',
 | 
				
			||||||
			preventUpdate: localStorage.getItem('preventUpdate') == 'true',
 | 
								preventUpdate: localStorage.getItem('preventUpdate') == 'true',
 | 
				
			||||||
| 
						 | 
					@ -214,6 +218,9 @@ export default Vue.extend({
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	watch: {
 | 
						watch: {
 | 
				
			||||||
 | 
							autoPopout() {
 | 
				
			||||||
 | 
								localStorage.setItem('autoPopout', this.autoPopout ? 'true' : 'false');
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
		enableSounds() {
 | 
							enableSounds() {
 | 
				
			||||||
			localStorage.setItem('enableSounds', this.enableSounds ? 'true' : 'false');
 | 
								localStorage.setItem('enableSounds', this.enableSounds ? 'true' : 'false');
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -72,6 +72,12 @@ export default Vue.extend({
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						data() {
 | 
				
			||||||
 | 
							return {
 | 
				
			||||||
 | 
								preventMount: false
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	computed: {
 | 
						computed: {
 | 
				
			||||||
		isFlexible(): boolean {
 | 
							isFlexible(): boolean {
 | 
				
			||||||
			return this.height == null;
 | 
								return this.height == null;
 | 
				
			||||||
| 
						 | 
					@ -89,11 +95,21 @@ export default Vue.extend({
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	created() {
 | 
						created() {
 | 
				
			||||||
 | 
							if (localStorage.getItem('autoPopout') == 'true' && this.popoutUrl) {
 | 
				
			||||||
 | 
								this.popout();
 | 
				
			||||||
 | 
								this.preventMount = true;
 | 
				
			||||||
 | 
							} else {
 | 
				
			||||||
			// ウィンドウをウィンドウシステムに登録
 | 
								// ウィンドウをウィンドウシステムに登録
 | 
				
			||||||
			(this as any).os.windows.add(this);
 | 
								(this as any).os.windows.add(this);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	mounted() {
 | 
						mounted() {
 | 
				
			||||||
 | 
							if (this.preventMount) {
 | 
				
			||||||
 | 
								this.$destroy();
 | 
				
			||||||
 | 
								return;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.$nextTick(() => {
 | 
							this.$nextTick(() => {
 | 
				
			||||||
			const main = this.$refs.main as any;
 | 
								const main = this.$refs.main as any;
 | 
				
			||||||
			main.style.top = '15%';
 | 
								main.style.top = '15%';
 | 
				
			||||||
| 
						 | 
					@ -180,8 +196,11 @@ export default Vue.extend({
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		popout() {
 | 
							popout() {
 | 
				
			||||||
 | 
								const url = typeof this.popoutUrl == 'function' ? this.popoutUrl() : this.popoutUrl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			const main = this.$refs.main as any;
 | 
								const main = this.$refs.main as any;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								if (main) {
 | 
				
			||||||
				const position = main.getBoundingClientRect();
 | 
									const position = main.getBoundingClientRect();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				const width = parseInt(getComputedStyle(main, '').width, 10);
 | 
									const width = parseInt(getComputedStyle(main, '').width, 10);
 | 
				
			||||||
| 
						 | 
					@ -189,12 +208,16 @@ export default Vue.extend({
 | 
				
			||||||
				const x = window.screenX + position.left;
 | 
									const x = window.screenX + position.left;
 | 
				
			||||||
				const y = window.screenY + position.top;
 | 
									const y = window.screenY + position.top;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			const url = typeof this.popoutUrl == 'function' ? this.popoutUrl() : this.popoutUrl;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
				window.open(url, url,
 | 
									window.open(url, url,
 | 
				
			||||||
				`height=${height}, width=${width}, left=${x}, top=${y}`);
 | 
										`width=${width}, height=${height}, top=${y}, left=${x}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				this.close();
 | 
									this.close();
 | 
				
			||||||
 | 
								} else {
 | 
				
			||||||
 | 
									const x = window.top.outerHeight / 2 + window.top.screenY - (parseInt(this.height, 10) / 2);
 | 
				
			||||||
 | 
									const y = window.top.outerWidth / 2 + window.top.screenX - (parseInt(this.width, 10) / 2);
 | 
				
			||||||
 | 
									window.open(url, url,
 | 
				
			||||||
 | 
										`width=${this.width}, height=${this.height}, top=${x}, left=${y}`);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// 最前面へ移動
 | 
							// 最前面へ移動
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue