Связывание истории отмен между несколькими GtkSourceViews

У меня есть приложение, содержащее несколько виджетов GtkSourceView. Основной интерфейс представляет собой лист, содержащий несколько «ячеек», каждая из которых представляет собой GtkSourceView. GtkSourceView имеет встроенную поддержку отмены, но каждый виджет имеет свой собственный «стек отмены». Я хотел бы иметь один и тот же стек отмены по всему листу.

Например: предположим, что последнее редактирование было сделано в SourceView A, а предпоследнее редактирование было в SourceView B. Независимо от того, какой SourceView имеет фокус, первое нажатие Ctrl-Z должно отменить изменение в A, а второе нажатие должно отменить изменение в Б.

Есть ли способ сделать это, сохраняя при этом несколько виджетов SourceView, или мне лучше попытаться реализовать этот тип функции отмены самостоятельно?

Примечание. Я думаю, что было бы слишком неуклюже пытаться разместить весь лист внутри одного SourceView. Кроме того, я использую Python.


person Sam Magura    schedule 24.05.2011    source источник


Ответы (1)


Да, привяжите горячую клавишу Ctrl-Z к своему собственному пункту меню Undo, в котором вы отслеживаете порядок изменения исходных представлений и вызываете метод отмены для соответствующего исходного представления.

person ptomato    schedule 24.05.2011
comment
Спасибо. Не могу поверить, что я не думал об этом - person Sam Magura; 24.05.2011