Skip to content

Conversation

@SamhandsomeLee
Copy link

Add a new preview pane feature that uses Windows Shell IPreviewHandler interface to display file previews in the right panel.

Features:

  • New PreviewPane class implementing IPreviewHandlerFrame interface
  • Support for text, Office documents (docx, doc, xlsx, etc.) preview
  • Toggle preview pane via View menu (IDM_VIEW_PREVIEWPANE)
  • Configurable preview pane width (default 350px)
  • Dark/light theme support for preview background
  • Auto-update preview on file selection change

Implementation details:

  • Uses IInitializeWithFile, IInitializeWithStream, IInitializeWithItem for preview handler initialization
  • Implements IPreviewHandlerFrame for compatibility with handlers
  • PDF preview disabled due to Adobe preview handler incompatibility
  • Preview pane integrated into main window layout

Files added:

  • PreviewPane.cpp
  • PreviewPane.h

Files modified:

  • Config.h: Add showPreviewPane config option
  • DisplayWindow.cpp: Add UpdatePreviewPane function
  • Explorer++.cpp/h: Initialize and manage preview pane
  • HandleWindowState.cpp: Update preview on window state change
  • LayoutDefaults.h: Add default preview pane width
  • MainWndSwitch.cpp: Handle preview pane menu command
  • MsgHandler.cpp: Integrate preview pane into layout
  • resource.h: Add IDM_VIEW_PREVIEWPANE menu ID

Add a new preview pane feature that uses Windows Shell IPreviewHandler
interface to display file previews in the right panel.

Features:
- New PreviewPane class implementing IPreviewHandlerFrame interface
- Support for text, Office documents (docx, doc, xlsx, etc.) preview
- Toggle preview pane via View menu (IDM_VIEW_PREVIEWPANE)
- Configurable preview pane width (default 350px)
- Dark/light theme support for preview background
- Auto-update preview on file selection change

Implementation details:
- Uses IInitializeWithFile, IInitializeWithStream, IInitializeWithItem
  for preview handler initialization
- Implements IPreviewHandlerFrame for compatibility with handlers
- PDF preview disabled due to Adobe preview handler incompatibility
- Preview pane integrated into main window layout

Files added:
- PreviewPane.cpp
- PreviewPane.h

Files modified:
- Config.h: Add showPreviewPane config option
- DisplayWindow.cpp: Add UpdatePreviewPane function
- Explorer++.cpp/h: Initialize and manage preview pane
- HandleWindowState.cpp: Update preview on window state change
- LayoutDefaults.h: Add default preview pane width
- MainWndSwitch.cpp: Handle preview pane menu command
- MsgHandler.cpp: Integrate preview pane into layout
- resource.h: Add IDM_VIEW_PREVIEWPANE menu ID
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant