diff --git a/PowerEditor/src/Notepad_plus.cpp b/PowerEditor/src/Notepad_plus.cpp
index 749938a2..79868eea 100644
--- a/PowerEditor/src/Notepad_plus.cpp
+++ b/PowerEditor/src/Notepad_plus.cpp
@@ -160,7 +160,6 @@ Notepad_plus::~Notepad_plus()
if (_pProjectPanel)
{
- _pProjectPanel->destroy();
delete _pProjectPanel;
}
}
diff --git a/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.cpp b/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.cpp
index bbbc7284..9df6b08a 100644
--- a/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.cpp
+++ b/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.cpp
@@ -33,36 +33,38 @@ BOOL CALLBACK ProjectPanel::run_dlgProc(UINT message, WPARAM wParam, LPARAM lPar
{
case WM_INITDIALOG :
{
- // Create toolbar menu
- int style = WS_CHILD | WS_VISIBLE | CCS_ADJUSTABLE | TBSTYLE_AUTOSIZE | TBSTYLE_FLAT;
- _hToolbarMenu = CreateWindowEx(0,TOOLBARCLASSNAME,NULL, style,
- 0,0,0,0,_hSelf,(HMENU)0, _hInst, NULL);
- TBBUTTON tbButtons[2];
+ ProjectPanel::initMenus();
- static TCHAR *projectMenuStr = TEXT("Project");
- tbButtons[0].idCommand = IDB_PROJECT_BTN;
- tbButtons[0].iBitmap = I_IMAGENONE;
- tbButtons[0].fsState = TBSTATE_ENABLED;
- tbButtons[0].fsStyle = BTNS_BUTTON | BTNS_AUTOSIZE;
- tbButtons[0].iString = (INT_PTR)projectMenuStr;
+ // Create toolbar menu
+ int style = WS_CHILD | WS_VISIBLE | CCS_ADJUSTABLE | TBSTYLE_AUTOSIZE | TBSTYLE_FLAT;
+ _hToolbarMenu = CreateWindowEx(0,TOOLBARCLASSNAME,NULL, style,
+ 0,0,0,0,_hSelf,(HMENU)0, _hInst, NULL);
+ TBBUTTON tbButtons[2];
- static TCHAR *editMenuStr = TEXT("Edit");
- tbButtons[1].idCommand = IDB_EDIT_BTN;
- tbButtons[1].iBitmap = I_IMAGENONE;
- tbButtons[1].fsState = TBSTATE_ENABLED;
- tbButtons[1].fsStyle = BTNS_BUTTON | BTNS_AUTOSIZE;
- tbButtons[1].iString = (INT_PTR)editMenuStr;
+ static TCHAR *projectMenuStr = TEXT("WorkSpace");
+ tbButtons[0].idCommand = IDB_PROJECT_BTN;
+ tbButtons[0].iBitmap = I_IMAGENONE;
+ tbButtons[0].fsState = TBSTATE_ENABLED;
+ tbButtons[0].fsStyle = BTNS_BUTTON | BTNS_AUTOSIZE;
+ tbButtons[0].iString = (INT_PTR)projectMenuStr;
- SendMessage(_hToolbarMenu, TB_BUTTONSTRUCTSIZE, (WPARAM)sizeof(TBBUTTON), 0);
- SendMessage(_hToolbarMenu, TB_ADDBUTTONS, (WPARAM)sizeof(tbButtons) / sizeof(TBBUTTON), (LPARAM)&tbButtons);
- SendMessage(_hToolbarMenu, TB_AUTOSIZE, 0, 0);
- ShowWindow(_hToolbarMenu, SW_SHOW);
+ static TCHAR *editMenuStr = TEXT("Edit");
+ tbButtons[1].idCommand = IDB_EDIT_BTN;
+ tbButtons[1].iBitmap = I_IMAGENONE;
+ tbButtons[1].fsState = TBSTATE_ENABLED;
+ tbButtons[1].fsStyle = BTNS_BUTTON | BTNS_AUTOSIZE;
+ tbButtons[1].iString = (INT_PTR)editMenuStr;
+
+ SendMessage(_hToolbarMenu, TB_BUTTONSTRUCTSIZE, (WPARAM)sizeof(TBBUTTON), 0);
+ SendMessage(_hToolbarMenu, TB_ADDBUTTONS, (WPARAM)sizeof(tbButtons) / sizeof(TBBUTTON), (LPARAM)&tbButtons);
+ SendMessage(_hToolbarMenu, TB_AUTOSIZE, 0, 0);
+ ShowWindow(_hToolbarMenu, SW_SHOW);
_treeView.init(_hInst, _hSelf, ID_PROJECTTREEVIEW);
_treeView.initImageList(IDI_PROJECT_ROOT, IDI_PROJECT_FOLDEROPEN, IDI_PROJECT_FOLDERCLOSE, IDI_PROJECT_FILE, IDI_PROJECT_FILEINVALID);
_treeView.display();
- openProject(TEXT("D:\\source\\notepad++\\trunk\\PowerEditor\\src\\WinControls\\ProjectPanel\\demo.xml"));
+ openWorkSpace(TEXT("D:\\source\\notepad++\\trunk\\PowerEditor\\src\\WinControls\\ProjectPanel\\demo.xml"));
return TRUE;
}
@@ -83,7 +85,7 @@ BOOL CALLBACK ProjectPanel::run_dlgProc(UINT message, WPARAM wParam, LPARAM lPar
HWND hwnd = _treeView.getHSelf();
if (hwnd)
- ::MoveWindow(hwnd, 0, toolbarMenuRect.bottom + 2, width, height - toolbarMenuRect.bottom - 2, TRUE);
+ ::MoveWindow(hwnd, 0, toolbarMenuRect.bottom + 2, width, height - toolbarMenuRect.bottom - 2, TRUE);
break;
}
@@ -100,6 +102,8 @@ BOOL CALLBACK ProjectPanel::run_dlgProc(UINT message, WPARAM wParam, LPARAM lPar
case WM_DESTROY:
{
_treeView.destroy();
+ destroyMenus();
+ ::DestroyWindow(_hToolbarMenu);
break;
}
@@ -109,15 +113,15 @@ BOOL CALLBACK ProjectPanel::run_dlgProc(UINT message, WPARAM wParam, LPARAM lPar
return DockingDlgInterface::run_dlgProc(message, wParam, lParam);
}
-void ProjectPanel::init(HINSTANCE hInst, HWND hPere)
+void ProjectPanel::initMenus()
{
- DockingDlgInterface::init(hInst, hPere);
-
_hProjectMenu = ::CreatePopupMenu();
- ::InsertMenu(_hProjectMenu, 0, MF_BYCOMMAND, IDM_PROJECT_NEWPROJ, TEXT("New Project"));
- ::InsertMenu(_hProjectMenu, 0, MF_BYCOMMAND, IDM_PROJECT_OPENPROJ, TEXT("Open Project File"));
- ::InsertMenu(_hProjectMenu, 0, MF_BYCOMMAND, IDM_PROJECT_SAVEPROJ, TEXT("Save"));
- ::InsertMenu(_hProjectMenu, 0, MF_BYCOMMAND, IDM_PROJECT_SAVEASPROJ, TEXT("Save As..."));
+ ::InsertMenu(_hProjectMenu, 0, MF_BYCOMMAND, IDM_PROJECT_NEWPROJECT, TEXT("Add New Project"));
+ ::InsertMenu(_hProjectMenu, 0, MF_BYCOMMAND, IDM_PROJECT_OPENWS, TEXT("Open WorkSpace"));
+ ::InsertMenu(_hProjectMenu, 0, MF_BYCOMMAND, IDM_PROJECT_RELOADWS, TEXT("Reload WorkSpace"));
+ ::InsertMenu(_hProjectMenu, 0, MF_BYCOMMAND, IDM_PROJECT_SAVEWS, TEXT("Save"));
+ ::InsertMenu(_hProjectMenu, 0, MF_BYCOMMAND, IDM_PROJECT_SAVEASWS, TEXT("Save As..."));
+ ::InsertMenu(_hProjectMenu, 0, MF_BYCOMMAND, IDM_PROJECT_SAVEACOPYASWS, TEXT("Save a Copy As..."));
_hRootMenu = ::CreatePopupMenu();
::InsertMenu(_hRootMenu, 0, MF_BYCOMMAND, IDM_PROJECT_RENAME, TEXT("Rename"));
@@ -136,7 +140,15 @@ void ProjectPanel::init(HINSTANCE hInst, HWND hPere)
::InsertMenu(_hFileMenu, 0, MF_BYCOMMAND, IDM_PROJECT_DELETEFILE, TEXT("Remove"));
}
-bool ProjectPanel::openProject(TCHAR *projectFileName)
+void ProjectPanel::destroyMenus()
+{
+ ::DestroyMenu(_hProjectMenu);
+ ::DestroyMenu(_hRootMenu);
+ ::DestroyMenu(_hFolderMenu);
+ ::DestroyMenu(_hFileMenu);
+}
+
+bool ProjectPanel::openWorkSpace(const TCHAR *projectFileName)
{
TiXmlDocument *pXmlDocProject = new TiXmlDocument(projectFileName);
bool loadOkay = pXmlDocProject->LoadFile();
@@ -147,17 +159,78 @@ bool ProjectPanel::openProject(TCHAR *projectFileName)
if (!root)
return false;
- root = root->FirstChild(TEXT("Project"));
- if (!root)
+
+ TiXmlNode *childNode = root->FirstChildElement(TEXT("Project"));
+ if (!childNode)
return false;
- HTREEITEM rootItem = _treeView.addItem((root->ToElement())->Attribute(TEXT("name")), TVI_ROOT, INDEX_PROJECT_ROOT);
- buildTreeFrom(root, rootItem);
+ for ( ; childNode ; childNode = childNode->NextSibling(TEXT("Project")))
+ {
+ HTREEITEM rootItem = _treeView.addItem((childNode->ToElement())->Attribute(TEXT("name")), TVI_ROOT, INDEX_PROJECT_ROOT);
+ buildTreeFrom(childNode, rootItem);
+ }
delete pXmlDocProject;
-
return loadOkay;
}
+bool ProjectPanel::writeWorkSpace(TCHAR *projectFileName)
+{
+ //write : use the default file name if new file name is not given
+ TiXmlDocument projDoc(projectFileName?projectFileName:_workSpaceFilePath.c_str());
+ TiXmlNode *root = projDoc.InsertEndChild(TiXmlElement(TEXT("NotepadPlus")));
+
+ TCHAR textBuffer[MAX_PATH];
+ TVITEM tvItem;
+ tvItem.mask = TVIF_TEXT;
+ tvItem.pszText = textBuffer;
+ tvItem.cchTextMax = MAX_PATH;
+
+ //for each project, write
+ for (HTREEITEM tvProj = _treeView.getRoot();
+ tvProj != NULL;
+ tvProj = _treeView.getNextSibling(tvProj))
+ {
+ tvItem.hItem = tvProj;
+ SendMessage(_treeView.getHSelf(), TVM_GETITEM, 0,(LPARAM)&tvItem);
+ //printStr(tvItem.pszText);
+
+ TiXmlNode *projRoot = root->InsertEndChild(TiXmlElement(TEXT("Project")));
+ projRoot->ToElement()->SetAttribute(TEXT("name"), tvItem.pszText);
+ buildProjectXml(projRoot, tvProj);
+ }
+ projDoc.SaveFile();
+ return true;
+}
+
+void ProjectPanel::buildProjectXml(TiXmlNode *node, HTREEITEM hItem)
+{
+ TCHAR textBuffer[MAX_PATH];
+ TVITEM tvItem;
+ tvItem.mask = TVIF_TEXT | TVIF_PARAM;
+ tvItem.pszText = textBuffer;
+ tvItem.cchTextMax = MAX_PATH;
+
+ for (HTREEITEM hItemNode = _treeView.getChildFrom(hItem);
+ hItemNode != NULL;
+ hItemNode = _treeView.getNextSibling(hItemNode))
+ {
+ tvItem.hItem = hItemNode;
+ SendMessage(_treeView.getHSelf(), TVM_GETITEM, 0,(LPARAM)&tvItem);
+ if (tvItem.lParam != NULL)
+ {
+ generic_string *fn = (generic_string *)tvItem.lParam;
+ TiXmlNode *fileLeaf = node->InsertEndChild(TiXmlElement(TEXT("File")));
+ fileLeaf->ToElement()->SetAttribute(TEXT("name"), fn->c_str());
+ }
+ else
+ {
+ TiXmlNode *folderNode = node->InsertEndChild(TiXmlElement(TEXT("Folder")));
+ folderNode->ToElement()->SetAttribute(TEXT("name"), tvItem.pszText);
+ buildProjectXml(folderNode, hItemNode);
+ }
+ }
+}
+
bool ProjectPanel::buildTreeFrom(TiXmlNode *projectRoot, HTREEITEM hParentItem)
{
for (TiXmlNode *childNode = projectRoot->FirstChildElement();
@@ -180,8 +253,8 @@ bool ProjectPanel::buildTreeFrom(TiXmlNode *projectRoot, HTREEITEM hParentItem)
{
const TCHAR *strValue = (childNode->ToElement())->Attribute(TEXT("name"));
TCHAR *strValueLabel = ::PathFindFileName(strValue);
- int iImage = ::PathFileExists(strValue)?INDEX_LEAF:INDEX_LEAF_INVALID;
- _treeView.addItem(strValueLabel, hParentItem, iImage, strValue);
+ int iImage = ::PathFileExists(strValue)?INDEX_LEAF:INDEX_LEAF_INVALID;
+ _treeView.addItem(strValueLabel, hParentItem, iImage, strValue);
}
}
return true;
@@ -310,7 +383,6 @@ NodeType ProjectPanel::getNodeType(HTREEITEM hItem)
tvItem.mask = TVIF_IMAGE | TVIF_PARAM;
SendMessage(_treeView.getHSelf(), TVM_GETITEM, 0,(LPARAM)&tvItem);
-
// Root
if (tvItem.iImage == INDEX_PROJECT_ROOT)
{
@@ -379,6 +451,9 @@ void ProjectPanel::popupMenuCmd(int cmdID)
switch (cmdID)
{
+ //
+ // Toolbar menu buttons
+ //
case IDB_PROJECT_BTN:
{
POINT p = getMenuDisplyPoint(0);
@@ -388,7 +463,7 @@ void ProjectPanel::popupMenuCmd(int cmdID)
case IDB_EDIT_BTN:
{
- POINT p = getMenuDisplyPoint(0);
+ POINT p = getMenuDisplyPoint(1);
HMENU hMenu = NULL;
NodeType nodeType = getNodeType(hTreeItem);
if (nodeType == nodeType_root)
@@ -401,6 +476,16 @@ void ProjectPanel::popupMenuCmd(int cmdID)
}
break;
+ //
+ // Toolbar menu commands
+ //
+ case IDM_PROJECT_NEWPROJECT :
+ {
+ HTREEITEM addedItem = _treeView.addItem(TEXT("Project Name"), TVI_ROOT, INDEX_PROJECT_ROOT);
+ TreeView_EditLabel(_treeView.getHSelf(), addedItem);
+ }
+ break;
+
case IDM_PROJECT_RENAME :
TreeView_EditLabel(_treeView.getHSelf(), hTreeItem);
break;
@@ -420,6 +505,56 @@ void ProjectPanel::popupMenuCmd(int cmdID)
_treeView.expandItemGUI(hTreeItem);
}
break;
+
+ case IDM_PROJECT_OPENWS:
+ {
+ FileDialog fDlg(_hSelf, ::GetModuleHandle(NULL));
+ fDlg.setExtFilter(TEXT("All types"), TEXT(".*"), NULL);
+ if (TCHAR *fn = fDlg.doOpenSingleFileDlg())
+ {
+ _treeView.removeAllItems();
+ openWorkSpace(fn);
+ _workSpaceFilePath = fn;
+ _isDirty = false;
+ }
+ }
+ break;
+
+ case IDM_PROJECT_RELOADWS:
+ {
+ if (::PathFileExists(_workSpaceFilePath.c_str()))
+ {
+ _treeView.removeAllItems();
+ openWorkSpace(_workSpaceFilePath.c_str());
+ _isDirty = false;
+ }
+ }
+ break;
+
+ case IDM_PROJECT_SAVEWS:
+ writeWorkSpace();
+ _isDirty = false;
+ break;
+
+ case IDM_PROJECT_SAVEACOPYASWS:
+ case IDM_PROJECT_SAVEASWS:
+ {
+ FileDialog fDlg(_hSelf, ::GetModuleHandle(NULL));
+ fDlg.setExtFilter(TEXT("All types"), TEXT(".*"), NULL);
+
+ if (TCHAR *fn = fDlg.doSaveDlg())
+ {
+ writeWorkSpace(fn);
+ if (cmdID == IDM_PROJECT_SAVEASWS)
+ {
+ _workSpaceFilePath = fn;
+ _isDirty = false;
+ }
+ }
+
+ }
+ break;
+
case IDM_PROJECT_DELETEFOLDER :
{
HTREEITEM parent = TreeView_GetParent(_treeView.getHSelf(), hTreeItem);
diff --git a/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.h b/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.h
index a54a7b4e..a4ef5c2e 100644
--- a/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.h
+++ b/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel.h
@@ -39,14 +39,10 @@ public:
ProjectPanel(): DockingDlgInterface(IDD_PROJECTPANEL),\
_hToolbarMenu(NULL), _hProjectMenu(NULL), _hRootMenu(NULL), _hFolderMenu(NULL), _hFileMenu(NULL){};
- void init(HINSTANCE hInst, HWND hPere);
- void destroy() {
- ::DestroyMenu(_hProjectMenu);
- ::DestroyMenu(_hRootMenu);
- ::DestroyMenu(_hFolderMenu);
- ::DestroyMenu(_hFileMenu);
- };
+ void init(HINSTANCE hInst, HWND hPere) {
+ DockingDlgInterface::init(hInst, hPere);
+ }
virtual void display(bool toShow = true) const {
DockingDlgInterface::display(toShow);
@@ -56,20 +52,28 @@ public:
_hParent = parent2set;
};
- bool openProject(TCHAR *projectFileName);
+ void destroyMenus();
+ void initMenus();
+
+ bool openWorkSpace(const TCHAR *projectFileName);
void addFiles(HTREEITEM hTreeItem);
-
+
+ bool writeWorkSpace(TCHAR *projectFileName = NULL);
+ void buildProjectXml(TiXmlNode *root, HTREEITEM hItem);
+ NodeType getNodeType(HTREEITEM hItem);
+
protected:
TreeView _treeView;
HWND _hToolbarMenu;
HMENU _hProjectMenu, _hRootMenu, _hFolderMenu, _hFileMenu;
+ generic_string _workSpaceFilePath;
+ bool _isDirty;
+
void popupMenuCmd(int cmdID);
POINT getMenuDisplyPoint(int iButton);
virtual BOOL CALLBACK ProjectPanel::run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam);
bool buildTreeFrom(TiXmlNode *projectRoot, HTREEITEM hParentItem);
void notified(LPNMHDR notification);
void showContextMenu(int x, int y);
- NodeType getNodeType(HTREEITEM hItem);
-
};
#endif // PROJECTPANEL_H
diff --git a/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel_rc.h b/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel_rc.h
index f766336e..cbc53cbc 100644
--- a/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel_rc.h
+++ b/PowerEditor/src/WinControls/ProjectPanel/ProjectPanel_rc.h
@@ -27,12 +27,13 @@
#define IDM_PROJECT_DELETEFOLDER (IDD_PROJECTPANEL_MENU + 4)
#define IDM_PROJECT_DELETEFILE (IDD_PROJECTPANEL_MENU + 5)
-#define IDD_PROJECTPANEL_MENUPROJ (IDD_PROJECTPANEL + 20)
- #define IDM_PROJECT_NEWPROJ (IDD_PROJECTPANEL_MENUPROJ + 1)
- #define IDM_PROJECT_OPENPROJ (IDD_PROJECTPANEL_MENUPROJ + 2)
- #define IDM_PROJECT_SAVEPROJ (IDD_PROJECTPANEL_MENUPROJ + 3)
- #define IDM_PROJECT_SAVEASPROJ (IDD_PROJECTPANEL_MENUPROJ + 4)
-
+#define IDD_PROJECTPANEL_MENUWS (IDD_PROJECTPANEL + 20)
+ #define IDM_PROJECT_NEWPROJECT (IDD_PROJECTPANEL_MENUWS + 1)
+ #define IDM_PROJECT_OPENWS (IDD_PROJECTPANEL_MENUWS + 2)
+ #define IDM_PROJECT_RELOADWS (IDD_PROJECTPANEL_MENUWS + 3)
+ #define IDM_PROJECT_SAVEWS (IDD_PROJECTPANEL_MENUWS + 4)
+ #define IDM_PROJECT_SAVEASWS (IDD_PROJECTPANEL_MENUWS + 5)
+ #define IDM_PROJECT_SAVEACOPYASWS (IDD_PROJECTPANEL_MENUWS + 6)
#define IDD_PROJECTPANEL_CTRL (IDD_PROJECTPANEL + 30)
#define ID_PROJECTTREEVIEW (IDD_PROJECTPANEL_CTRL + 1)
diff --git a/PowerEditor/src/WinControls/ProjectPanel/TreeView.cpp b/PowerEditor/src/WinControls/ProjectPanel/TreeView.cpp
index 2581b113..42265915 100644
--- a/PowerEditor/src/WinControls/ProjectPanel/TreeView.cpp
+++ b/PowerEditor/src/WinControls/ProjectPanel/TreeView.cpp
@@ -136,6 +136,17 @@ void TreeView::removeItem(HTREEITEM hTreeItem)
TreeView_DeleteItem(_hSelf, hTreeItem);
}
+void TreeView::removeAllItems()
+{
+ for (HTREEITEM tvProj = getRoot();
+ tvProj != NULL;
+ tvProj = getNextSibling(tvProj))
+ {
+ cleanSubEntries(tvProj);
+ }
+ TreeView_DeleteAllItems(_hSelf);
+}
+
void TreeView::cleanSubEntries(HTREEITEM hTreeItem)
{
for (HTREEITEM hItem = getChildFrom(hTreeItem); hItem != NULL; hItem = getNextSibling(hItem))
diff --git a/PowerEditor/src/WinControls/ProjectPanel/TreeView.h b/PowerEditor/src/WinControls/ProjectPanel/TreeView.h
index 4be733df..30cd78a2 100644
--- a/PowerEditor/src/WinControls/ProjectPanel/TreeView.h
+++ b/PowerEditor/src/WinControls/ProjectPanel/TreeView.h
@@ -36,16 +36,20 @@ public:
virtual void destroy();
HTREEITEM addItem(const TCHAR *itemName, HTREEITEM hParentItem, int iImage, const TCHAR *filePath = NULL);
void removeItem(HTREEITEM hTreeItem);
+ void removeAllItems();
void cleanSubEntries(HTREEITEM hTreeItem);
- HTREEITEM getChildFrom(HTREEITEM hTreeItem) {
+ HTREEITEM getChildFrom(HTREEITEM hTreeItem) const {
return TreeView_GetChild(_hSelf, hTreeItem);
};
- HTREEITEM getNextSibling(HTREEITEM hTreeItem){
- return TreeView_GetNextSibling(_hSelf ,hTreeItem);
- };
- HTREEITEM getSelection() {
+ HTREEITEM getSelection() const {
return TreeView_GetSelection(_hSelf);
};
+ HTREEITEM getRoot() const {
+ return TreeView_GetRoot(_hSelf);
+ };
+ HTREEITEM getNextSibling(HTREEITEM hItem) const {
+ return TreeView_GetNextSibling(_hSelf, hItem);
+ };
void expandItemGUI(HTREEITEM hTreeItem);
void collapsItemGUI(HTREEITEM hTreeItem);
BOOL initImageList(int project_root_id, int open_node_id, int closed_node_id, int leaf_id, int ivalid_leaf_id);
diff --git a/PowerEditor/src/WinControls/ProjectPanel/demo.xml b/PowerEditor/src/WinControls/ProjectPanel/demo.xml
index 98a626b0..0a533bb9 100644
--- a/PowerEditor/src/WinControls/ProjectPanel/demo.xml
+++ b/PowerEditor/src/WinControls/ProjectPanel/demo.xml
@@ -26,4 +26,6 @@
+
+
\ No newline at end of file
diff --git a/PowerEditor/visual.net/notepadPlus.vcproj b/PowerEditor/visual.net/notepadPlus.vcproj
index 9850005f..9f6259ec 100644
--- a/PowerEditor/visual.net/notepadPlus.vcproj
+++ b/PowerEditor/visual.net/notepadPlus.vcproj
@@ -1611,11 +1611,11 @@
>