✌️
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…
Reference in a new issue