SASGIS - SAS.Планета
View Issue Details
0002756SAS.Планета[All Projects] Хотелкаpublic24-06-2015 11:4831-07-2015 14:15
vasketsov 
 
normalminorN/A
confirmedopen 
Windows7Ultimate
141212 
27xxxx 
0002756: Извещение пользователя о завершении операции или важном событии
Есть несколько тем насчёт попищать спикером в конце загрузки, тут всё более конкретно.

Если предположить, что сас используется для закачки во время работы с другими программами, то пищать как раз не всегда удобно, да и бывает что нечем.
Зато вот помигать кнопкой на панели задач - самое то.

Делать это надо только если сас свёрнут или неактивен (где-то на заднем фоне), и только в том случае, если кнопка на панели задач отображается. Для system tray будет несколько иначе, но поскольку я тем режимом не пользуюсь...

Соответственно, включать мигание надо при следующих событиях:
а) окончание любой загрузки по выделенной области;
б) окончание генерации зумов по выделенной области;
в) окончание экспорта по выделенной области;
г) окончание прочих операций над выделенной областью - опционально - если будет единое красивое и удобное решение по всем операциям над выделенной областью, иначе не обязательно;
д) окончание работы Cache Manager (миграция кэша);
е) прерывание (остановка) загрузки по любой причине (ошибка сети, бан,.. - неважно);
ж) завершение экспорта или импорта меток, кроме экспорта или импорта одной метки (в файл или в буфер обмена или в обратном направлении - неважно).
з) возможно ещё чего выдумается.

Мигать надо покуда сас не будет активирован на передний план (foreground).
В этом смысле, это самый простой вариант, всё уже придумано до нас:
FlashWindowEx
https://msdn.microsoft.com/en-us/library/windows/desktop/ms679347%28v=vs.85%29.aspx
Minimum supported client: Windows XP
FLASHWINFO structure:
FLASHW_TIMERNOFG
0x0000000C
Flash continuously until the window comes to the foreground.

В общем, послал мигаться и забыл, STOP делать не обязательно.

Лично мне достаточно одной (сохраняемой в ini) настройки на это дело (вкл-выкл).
No tags attached.
related to 0002311confirmed  Звуковой сигнал при окончании скачивания 
child of 0001224confirmed  При потере спутников издавать звуки 
Issue History
24-06-2015 11:48vasketsovNew Issue
24-06-2015 11:50vasketsovDescription Updatedbug_revision_view_page.php?rev_id=6633#r6633
24-06-2015 11:53vasketsovNote Added: 0016072
24-06-2015 13:18vdemidovNote Added: 0016073
24-06-2015 13:32vasketsovNote Added: 0016074
29-07-2015 14:45vdemidovNote Added: 0016240
29-07-2015 14:46vdemidovStatusnew => confirmed
29-07-2015 14:46vdemidovProduct Version => 141212
29-07-2015 14:46vdemidovTarget Version => 27xxxx
30-07-2015 14:31vdemidovRelationship addedchild of 0001224
31-07-2015 14:15vdemidovRelationship addedrelated to 0002311

Notes
(0016072)
vasketsov   
24-06-2015 11:53   
з) потеря сигнала от спутников.
В машине может быть кстати достаточно шумно, и для переключения внимания штурмана пищать динамиком будет совершенно бесполезно, так что только мигать и остаётся.
(0016073)
vdemidov   
24-06-2015 13:18   
Лучше завести отдельный интерфейс, который такие операции будут дергать, а уже в реализации будет определяться как это будет выглядеть: мигание иконкой, звук, всплывающее окошко или все вместе.
(0016074)
vasketsov   
24-06-2015 13:32   
>отдельный интерфейс
Разумно.
Насчёт "мне достаточно одной (сохраняемой в ini) настройки" - я имел в виду конкретно насчёт мигания, а не вообще. Всякие прочие пищания с преферансом и пионерками - это не включалось в эту "одну настройку".

>в реализации будет определяться
Исходя из настроек? Ну логично, закончили закачку - дёрнули Успех(закачки), прервалась закачка - дёрнули Ошибка(закачки), внутри по настройкам смотрим, что юзер хочет увидеть и/или услышать.
(0016240)
vdemidov   
29-07-2015 14:45   
Еще для уведомлялок о штатном завершении хорошо в настройках задавать минимальное время операции при котором они срабатывают. То есть, если экспорт длился 10 секунд, то смысл пищать или мигать, а вот если минут 5 - то очень даже полезно. Правда я не знаю как это время операции передавать и кто считать должен.