Example #1
0
        public void DropNewFiles(string[] pathes)
        {
            // 拡大中なら解除
            if (TileExpantionPanel.IsShowing)
            {
                TileExpantionPanel.Hide();
            }

            // 画像1枚だけ読み込みの時は、親フォルダを読み込む
            if (Setting.ReadSingleImageAsParentFolder && pathes.Length == 1 && File.Exists(pathes[0]) &&
                ArchiverBase.AllowedFileExt.Any(ext => pathes[0].ToLower().EndsWith(ext)))
            {
                DropNewSingleFileAsFolder(pathes[0]);
                return;
            }

            // 読み込み
            if (Setting.EnabledItemsInHistory.ArchiverPath && pathes.Length == 1 &&
                Setting.History.Any(hi => hi.ArchiverPath == pathes[0]) && Setting.ApplyHistoryInfoInNewArchiverReading)
            {
                // 履歴に存在する場合
                LoadHistory(pathes[0]);
            }
            else
            {
                ReadFiles(pathes, false);
                var t = ImgContainerManager.InitAllContainer(0);
            }
        }
Example #2
0
        public void Reload(bool keepCurrentIdx)
        {
            // 現在のページを保持
            int currentIndex = ImgContainerManager.CurrentImageIndex;

            // 拡大パネル表示中なら閉じる
            if (TileExpantionPanel.IsShowing)
            {
                TileExpantionPanel.Hide();
            }

            // 画像情報の読み込みとソート
            String[] files = Setting.TempProfile.Path.Value.ToArray();
            ReadFiles(files, false);

            // コンテンツ初期化
            ImgContainerManager.ImagePool.ReleaseAllBitmapImage();
            if (keepCurrentIdx)
            {
                var t = ImgContainerManager.InitAllContainer(currentIndex);
            }
            else
            {
                var t = ImgContainerManager.InitAllContainer(0);
            }
        }
Example #3
0
        public void LoadUserProfile(Profile userProfile)
        {
            // 統合前のTempProfileの設定値
            bool before_IsFullScreenMode = Setting.TempProfile.IsFullScreenMode.Value;

            // 読み込む前のファイルの履歴情報を保存
            SaveHistoryItem();

            // TempProfileに統合
            UpdateTempProfile();
            Setting.TempProfile.Marge(userProfile);

            Profile tp = Setting.TempProfile;

            // ファイルを読み込む場合は、ページ番号は初期化(有効時は除く)
            if (userProfile.Path.IsEnabled && !userProfile.LastPageIndex.IsEnabled)
            {
                tp.LastPageIndex.Value = 0;
            }

            // 透過有効
            if (tp.AllowTransparency.Value != this.AllowsTransparency)
            {
                MainWindow mw = new MainWindow(this.Setting);
                mw.Show(); // InitMainWindow()でプロファイル適用
                this.Close();
                return;
            }

            // ウインドウ位置
            if (!before_IsFullScreenMode)
            {
                this.Left   = tp.WindowPos.X;
                this.Top    = tp.WindowPos.Y;
                this.Width  = tp.WindowSize.Width;
                this.Height = tp.WindowSize.Height;
            }
            else
            {
                // 既にフルスクリーン中だった場合
                windowRectBeforeFullScreen = new Rect(tp.WindowPos.X, tp.WindowPos.Y, tp.WindowSize.Width, tp.WindowSize.Height);
            }

            // 画像情報の読み込み、ソート、コンテンツ初期化
            if (userProfile.Path.IsEnabled)
            {
                String[] files = tp.Path.Value.ToArray();
                ReadFiles(files, false);
                var t = ImgContainerManager.InitAllContainer(tp.LastPageIndex.Value);
            }
            else
            {
                if (userProfile.FileSortMethod.IsEnabled)
                {
                    SortOnFileLoaded();                                        // ファイルは読み込まずにソート
                }
                var t = ImgContainerManager.InitAllContainer(tp.LastPageIndex.Value);
            }

            // 外観更新
            ApplyColorAndOpacitySetting();                    // 背景色と不透明度
            UpdateUI();                                       // UI設定
            UpdateToolbarViewing();                           // ツールバーの見た目
            this.Topmost = Setting.TempProfile.TopMost.Value; // 最前面

            // フルスクリーン設定
            if (userProfile.IsFullScreenMode.IsEnabled)
            {
                // UserProfile読み込み前と状態が変わらないなら、ToggleFullScreen()を呼ばない
                if (tp.IsFullScreenMode.Value && !before_IsFullScreenMode)
                {
                    tp.IsFullScreenMode.Value = false;
                    ToggleFullScreen();
                }
                else if (!tp.IsFullScreenMode.Value && before_IsFullScreenMode)
                {
                    tp.IsFullScreenMode.Value = true;
                    ToggleFullScreen();
                }
            }

            // 拡大中だったら、閉じる
            if (TileExpantionPanel.IsShowing)
            {
                TileExpantionPanel.Hide();
            }

            // 自動再生
            if (tp.SlideShowAutoStart.Value)
            {
                ImgContainerManager.StartSlideShow(false);
            }

            // 読み込み完了メッセージ
            NotificationBlock.Show("プロファイルのロード完了: " + userProfile.Name, NotificationPriority.High, NotificationTime.Short, NotificationType.None);
        }