[Feature] Show loading as mouse cursor and extra loading menu (#161), version 1.0.17.42

This commit is contained in:
Markus Hofknecht 2021-05-13 15:20:40 +02:00
parent d4fb5afdc7
commit 4fefc4f253
3 changed files with 26 additions and 23 deletions

View file

@ -804,32 +804,35 @@ namespace SystemTrayMenu.Business
private void HideOldMenu(Menu menuToShow, bool keepOrSetIsMenuOpen = false) private void HideOldMenu(Menu menuToShow, bool keepOrSetIsMenuOpen = false)
{ {
// Clean up menu status IsMenuOpen for previous one
Menu menuPrevious = menus[menuToShow.Level - 1]; Menu menuPrevious = menus[menuToShow.Level - 1];
DataGridView dgvPrevious = menuPrevious.GetDataGridView(); if (menuPrevious != null)
foreach (DataRow row in ((DataTable)dgvPrevious.DataSource).Rows)
{ {
RowData rowDataToClear = (RowData)row[2]; // Clean up menu status IsMenuOpen for previous one
if (rowDataToClear == (RowData)menuToShow.Tag) DataGridView dgvPrevious = menuPrevious.GetDataGridView();
foreach (DataRow row in ((DataTable)dgvPrevious.DataSource).Rows)
{ {
rowDataToClear.IsMenuOpen = keepOrSetIsMenuOpen; RowData rowDataToClear = (RowData)row[2];
if (rowDataToClear == (RowData)menuToShow.Tag)
{
rowDataToClear.IsMenuOpen = keepOrSetIsMenuOpen;
}
else
{
rowDataToClear.IsMenuOpen = false;
}
} }
else
RefreshSelection(dgvPrevious);
// Hide old menu
foreach (Menu menuToClose in menus.Where(
m => m != null && m.Level > menuPrevious.Level))
{ {
rowDataToClear.IsMenuOpen = false; menuToClose.VisibleChanged += MenuVisibleChanged;
menuToClose.HideWithFade();
menus[menuToClose.Level] = null;
} }
} }
RefreshSelection(dgvPrevious);
// Hide old menu
foreach (Menu menuToClose in menus.Where(
m => m != null && m.Level > menuPrevious.Level))
{
menuToClose.VisibleChanged += MenuVisibleChanged;
menuToClose.HideWithFade();
menus[menuToClose.Level] = null;
}
} }
private void FadeHalfOrOutIfNeeded() private void FadeHalfOrOutIfNeeded()

View file

@ -173,10 +173,8 @@ namespace SystemTrayMenu.Handler
{ {
CloseMenu.Invoke(rowData.MenuLevel + 2); CloseMenu.Invoke(rowData.MenuLevel + 2);
} }
else
{ CloseMenu.Invoke(rowData.MenuLevel + 1);
CloseMenu.Invoke(rowData.MenuLevel + 1);
}
if (!rowData.IsContextMenuOpen && if (!rowData.IsContextMenuOpen &&
rowData.ContainsMenu && rowData.ContainsMenu &&

View file

@ -99,6 +99,7 @@ namespace SystemTrayMenu.UserInterface
public void LoadingStop() public void LoadingStop()
{ {
Cursor.Current = Cursors.Default;
threadsLoading = false; threadsLoading = false;
} }
@ -116,6 +117,7 @@ namespace SystemTrayMenu.UserInterface
{ {
if (DateTime.Now - timeLoadingStart > new TimeSpan(0, 0, 0, 0, 500)) if (DateTime.Now - timeLoadingStart > new TimeSpan(0, 0, 0, 0, 500))
{ {
Cursor.Current = Cursors.WaitCursor;
notifyIcon.Icon = bitmapsLoading[loadCount++ % indexLoad]; notifyIcon.Icon = bitmapsLoading[loadCount++ % indexLoad];
} }
} }