Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Igors от Май 18, 2017, 11:43



Название: Перерисовка окна(он) извне
Отправлено: Igors от Май 18, 2017, 11:43
Добрый день

Есть достаточно развесистое немодальное окно показывающее данные какого-то объекта, одного из многих. Юзверь может редактировать эти данные, все хорошо. Однако эти данные могут измениться и из многих других мест. Ну хотя бы случилось undo - и вот уже данные в окне надо перезарядить. При этом слетают установки/контекст внутри окна. Напр нередко в нем список - перезарядка пере-собирает его заново, selection и scroll утеряны, юзеру приходится выбирать опять. То же и для вида объекта рисуемого в окне - юзер мог довольно тщательно его настраивать, а при первом undo раз - и все улетело на дефаулт  :'(

Конечно я морально готов к велику, но может теория чего хорошего скажет?  Ну а вдруг есть что-то "ис каропки" :)

Спасибо


Название: Re: Перерисовка окна(он) извне
Отправлено: Racheengel от Май 18, 2017, 12:48
Memento Pattern ?
С запоминанием открытых ветвей, контекста, выделений и пр.


Название: Re: Перерисовка окна(он) извне
Отправлено: Igors от Май 18, 2017, 14:23
Memento Pattern ?
С запоминанием открытых ветвей, контекста, выделений и пр.
Ну как всегда "оказывается и паттерн такой есть". Двинулся примерно этим путем - другого ничего не видно, хоть с паттерном хоть без. Только кода уже добавилось немало, на деле все оказалось хужЕе. Для начала запоминать надо для каждого "клиента" - объекта чьи опции окно показывает. Ну и указатели не катят, хорошо ID-ы были. Мда, противная мелочь


Название: Re: Перерисовка окна(он) извне
Отправлено: Racheengel от Май 18, 2017, 15:05
Undo-Redo обычно неприятно, да...
Но если через сериализацию данных сделать, то полехче будет. По крайней мере относительно универсальное решение.