Bug 40604

Summary: [FR] PrintScreen
Product: Sisyphus Reporter: Michael Shigorin <mike>
Component: alterator-browser-qt5Assignee: Sergey V Turchin <zerg>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: enhancement    
Priority: P5 CC: antohami, cas, klark, lepata, rider, sem, vercha, zerg
Version: unstableKeywords: usability
Hardware: all   
OS: Linux   
Attachments:
Description Flags
install2: initial use/install2/screenshots
none
usability
none
select-list none

Description Michael Shigorin 2021-07-29 14:49:54 MSK
Предлагаю по возможности добавить в qtbrowser поддержку действия по нажатию клавиши PrintScreen, при котором выполнялся бы import %s.

Что-то вроде такого:
- при сборке образа добавляем ImageMagick-tools в install2;
- при нажатии PrintScreen qtbrowser вызывает import (если найден);
- после установки системы сделанные снимки переносятся в неё.

Можно это всё как-то ещё параметризовывать и наворачивать, но для выполнения задачи снятия снимков экрана во время установки на железе кажется избыточным.

Перекладывать можно, например, в $destdir/root/.install-log/

Добавлять import(1) в install2 можно так:
       @$(call add,INSTALL2_PACKAGES,ImageMagick-tools)

Сейчас приходится звать DISPLAY=:0 import картинка.png и переносить вручную.
Comment 1 Michael Shigorin 2021-07-29 14:51:28 MSK
Created attachment 9544 [details]
install2: initial use/install2/screenshots

2 antohami: предлагаю забрать в m-p, такое полезно само по себе.
Comment 2 Sergey V Turchin 2021-07-29 14:54:32 MSK
(Ответ для Michael Shigorin на комментарий #0)
> ImageMagick-tools
Нафига? Там одно окно и снять с него изображение вообще не проблема.
Comment 3 Антон Мидюков 2021-07-29 14:59:37 MSK
(In reply to Sergey V Turchin from comment #2)
> (Ответ для Michael Shigorin на комментарий #0)
> > ImageMagick-tools
> Нафига? Там одно окно и снять с него изображение вообще не проблема.

Как снять? Чем? На реальном железе, а не в виртуалке.
Comment 4 Anton Farygin 2021-07-29 15:00:45 MSK
средствами qt нельзя сделать снимок окна ?
Comment 5 Sergey V Turchin 2021-07-29 15:05:20 MSK
> средствами qt нельзя сделать снимок окна ?
Именно им и нужно, чем тащить ImageMagik.
Comment 6 Michael Shigorin 2021-07-29 17:44:28 MSK
(Ответ для Sergey V Turchin на комментарий #5)
> > средствами qt нельзя сделать снимок окна ?
> Именно им и нужно, чем тащить ImageMagik.
Вообще замечательно :-)
Comment 7 Michael Shigorin 2021-09-12 16:44:38 MSK
(Ответ для Sergey V Turchin на комментарий #5)
> > средствами qt нельзя сделать снимок окна ?
> Именно им и нужно, чем тащить ImageMagik.
ping :)
Comment 8 Sergey V Turchin 2021-09-13 15:40:13 MSK
(Ответ для Michael Shigorin на комментарий #7)
> ping :)
Забыл, извиняюсь.
По факту уже реализовал. Осталось оформить красиво.
Comment 9 Repository Robot 2021-09-13 16:49:27 MSK
alterator-browser-qt5-3.2.8-alt1 -> sisyphus:

 Mon Sep 13 2021 Sergey V Turchin <zerg at altlinux dot org> 3.2.8-alt1
 - allow to take screenshot (closes: 40604)
Comment 10 Sergey V Turchin 2021-09-14 15:53:14 MSK
(Ответ для Michael Shigorin на комментарий #0)
> - после установки системы сделанные снимки переносятся в неё.
Насчёт этого надо договориться.
Я сейчас кладу в /tmp/alterator-screenshot-*.png
Comment 11 Sergey V Turchin 2021-09-14 16:14:44 MSK
Кто забирать будет?
Comment 12 Michael Shigorin 2021-09-14 16:43:53 MSK
(Ответ для Sergey V Turchin на комментарий #8)
> По факту уже реализовал. Осталось оформить красиво.
Ай спасибо!

(Ответ для Sergey V Turchin на комментарий #10)
> > - после установки системы сделанные снимки переносятся в неё.
> Насчёт этого надо договориться.
> Я сейчас кладу в /tmp/alterator-screenshot-*.png

(Ответ для Sergey V Turchin на комментарий #11)
> Кто забирать будет?

2 antohami: добавишь в installer перенос /tmp/alterator-screenshot-*.png при их наличии в $destdir/root/.install-log/screenshots/ (который сперва mkdir -p)?
Comment 13 Антон Мидюков 2021-09-14 17:22:57 MSK
(In reply to Michael Shigorin from comment #12)
> (Ответ для Sergey V Turchin на комментарий #8)
> > По факту уже реализовал. Осталось оформить красиво.
> Ай спасибо!
> 
> (Ответ для Sergey V Turchin на комментарий #10)
> > > - после установки системы сделанные снимки переносятся в неё.
> > Насчёт этого надо договориться.
> > Я сейчас кладу в /tmp/alterator-screenshot-*.png
> 
> (Ответ для Sergey V Turchin на комментарий #11)
> > Кто забирать будет?
> 
> 2 antohami: добавишь в installer перенос /tmp/alterator-screenshot-*.png при
> их наличии в $destdir/root/.install-log/screenshots/ (который сперва mkdir
> -p)?

Да. Уже делаю.
Comment 14 Sergey V Turchin 2021-09-14 17:36:16 MSK
Я что-то не подумал. Лучше 
$TMPDIR/alterator-screenshot-*.png
Только, не будет ли переменная разная для разных процессов там...
Comment 15 Антон Мидюков 2021-09-14 17:50:18 MSK
(In reply to Sergey V Turchin from comment #14)
> Я что-то не подумал. Лучше 
> $TMPDIR/alterator-screenshot-*.png

Чем лучше? Я в postinstall.d/ скриптах вижу использование /tmp, а не $TMPDIR.
Comment 16 Sergey V Turchin 2021-09-14 17:58:35 MSK
(Ответ для Антон Мидюков на комментарий #15)
> (In reply to Sergey V Turchin from comment #14)
> > Я что-то не подумал. Лучше 
> > $TMPDIR/alterator-screenshot-*.png
> 
> Чем лучше?
Тем же, чем вообще $TMPDIR в живой системе. Отдельным каталогом.

> Я в postinstall.d/ скриптах вижу использование /tmp, а не $TMPDIR.
browser используется не только в postinstall.d/ , в живой системе писать в общедоступный каталог не очень хорошо.

Программа-минимум -- рандомизировать имя файла на всякий. Я не проверял, что делает QPixmap::save(). Может он тупо пишет по симлинку в /dev/sda, например.
Comment 17 Антон Мидюков 2021-09-14 18:07:33 MSK
(In reply to Sergey V Turchin from comment #16)
> (Ответ для Антон Мидюков на комментарий #15)
> > (In reply to Sergey V Turchin from comment #14)
> > > Я что-то не подумал. Лучше 
> > > $TMPDIR/alterator-screenshot-*.png
> > 
> > Чем лучше?
> Тем же, чем вообще $TMPDIR в живой системе. Отдельным каталогом.
> 
> > Я в postinstall.d/ скриптах вижу использование /tmp, а не $TMPDIR.
> browser используется не только в postinstall.d/ , в живой системе писать в
> общедоступный каталог не очень хорошо.

Понятно, не подумал об этом. Я тогда не добавляю пока скрипт копирования скриншотов в installer?
Comment 18 Sergey V Turchin 2021-09-14 18:10:37 MSK
$TMPDIR один фиг "/tmp". Думаю, проблем не будет. Можно добавлять скрипт.
Если что вдруг вылезет потом -- поправим.
Comment 19 Michael Shigorin 2021-09-14 20:33:21 MSK
В installer можно смотреть в ${TMPDIR:-/tmp} -- если не выставлена переменная, будет значение по умолчанию.
Comment 20 Leonid Krivoshein 2021-09-14 23:38:16 MSK
scrot как раз для этого, в репозитории есть.
Comment 21 Sergey V Turchin 2021-09-15 09:46:06 MSK
(Ответ для Leonid Krivoshein на комментарий #20)
> scrot как раз для этого, в репозитории есть.
Для этого есть Qt. Что-то ещё может потребоваться только для записи за пределами окна alterator-browser.
Comment 22 Michael Shigorin 2021-09-20 13:21:01 MSK
(Ответ для Sergey V Turchin на комментарий #14)
> Я что-то не подумал. Лучше $TMPDIR/alterator-screenshot-*.png
> Только, не будет ли переменная разная для разных процессов там...
Сделай только на всякий проверку -- если TMPDIR не выставлена или такого каталога нет, писать в /tmp.
Comment 23 Sergey V Turchin 2021-09-20 13:28:26 MSK
Если переменная не выставлена, пишу в /tmp .
Если каталога нет, будет ругаться, что не смог записать.
Comment 24 Vera Blagoveschenskaya 2021-09-24 11:13:42 MSK
Посмотрела реализацию FR с заданием http://git.altlinux.org/tasks/285136/

Есть несколько замечаний:

1) Usability:
При нажатии PrtSc появляется окно с выводом пути, куда сохранен скриншот - см. скрин usability.
Данное окно появляется на 2 сек, потом пропадает. 
Если пользователь не успел прочитать, что написано, то второго шанса не будет.
Поэтому предлагаю: 
- при первом нажатии PrtSc выводить окно с кнопкой вида "ОК, понятно", которое будет висеть, пока пользователь сам его не закроет 
- при последующих PrtSc просто информаировать, что скриншот сделан
- уведомлять, что после установки системы скрины будут располагаться в .install-log/screenshots/
# ls -l .install-log/
итого 584
-rw-r--r-- 1 root root    382 сен 24 11:04 alteratord.log
-rw-r--r-- 1 root root     43 сен 24 10:50 diskinfo
-rw-r--r-- 1 root root  32342 сен 24 11:04 install2.log
-rw-r--r-- 1 root root 312416 сен 24 11:04 pkg-install.log
-rw-r--r-- 1 root root  12910 сен 24 11:04 remount.log
drwx------ 2 root root  36864 сен 24 11:04 screenshots
-rw-r--r-- 1 root root  99292 сен 24 11:05 wizard.log
-rw-r--r-- 1 root root  83618 сен 24 11:04 x11.log

2) PrtScr не работает, если в диалоговом окне открыт выпадающий список - см. скриншот select-list.
Comment 25 Vera Blagoveschenskaya 2021-09-24 11:15:32 MSK
Created attachment 9736 [details]
usability
Comment 26 Vera Blagoveschenskaya 2021-09-24 11:17:51 MSK
Created attachment 9737 [details]
select-list
Comment 27 Sergey V Turchin 2021-09-24 11:20:23 MSK
Всё-таки надо
$TMPDIR/alterator-screenshot-*.{png,jpg}
, а то придумали, что в JPG сохранять выгоднее.
Comment 28 Sergey V Turchin 2021-09-24 11:21:42 MSK
(Ответ для Vera Blagoveschenskaya на комментарий #24)
> 2) PrtScr не работает, если в диалоговом окне открыт выпадающий список
Это баг Qt. Попробую исправить. Есть ещё подобные места?
Comment 29 Vera Blagoveschenskaya 2021-09-24 11:32:26 MSK
(Ответ для Sergey V Turchin на комментарий #28)
> (Ответ для Vera Blagoveschenskaya на комментарий #24)
> > 2) PrtScr не работает, если в диалоговом окне открыт выпадающий список
> Это баг Qt. Попробую исправить. Есть ещё подобные места?

Прошла по всем закоулкам установщика, остальное ОК.
На выпадающий список завела отдельный тикет
https://bugzilla.altlinux.org/41001
Comment 30 Sergey V Turchin 2021-10-11 13:50:10 MSK
> Всё-таки надо
> $TMPDIR/alterator-screenshot-*.{png,jpg}
А лучше
$TMPDIR/alterator-screenshot-*.*
, а то завтра какой-нибудь WEBP появится. Чтоб не мучиться.
Comment 31 Vera Blagoveschenskaya 2021-12-02 13:19:03 MSK
(Ответ для Vera Blagoveschenskaya на комментарий #24)
> Поэтому предлагаю: 
> - при первом нажатии PrtSc выводить окно с кнопкой вида "ОК, понятно",
> которое будет висеть, пока пользователь сам его не закроет 
> - при последующих PrtSc просто информаировать, что скриншот сделан
> - уведомлять, что после установки системы скрины будут располагаться в
> .install-log/screenshots/

Теперь текста стало больше и, центрированный, он выглядит некрасиво:
https://bugzilla.altlinux.org/41484