Сайт | Скачать | Видео | Wiki

Автор Тема: StopwatchTimer (PureBasic)  (Прочитано 7647 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн AZJIO

  • Модератор
  • Старожил
  • ****
  • Сообщений: 293
  • Репутация: +10/-0
  • Автор темы
StopwatchTimer (PureBasic)
« : 10 Январь 2021, 17:02:33 »
StopwatchTimer

Скачать: yadi.sk  upload.ee



Назначение
Напоминает о краткосрочных событиях, от том что надо куда либо пойти (в магазин) или выключить чайник.

Использование
1. Жмём "Добавить"
2. Указываем интервал времени или задать по дате
3. Указываем сигнал и проверяем что он работает
4. Если таймер понадобится в будущем, то сохраняем его (избавление от настроек, просто кликаем сохранённый пункт)
5. Таймер запускается автоматически и сработает в заданное время.
« Последнее редактирование: 09 Июнь 2022, 03:02:15 от AZJIO »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: StopwatchTimer (PureBasic)
« Ответ #1 : 11 Январь 2021, 12:32:47 »
Не знаю дефолтный шрифт Linux
Sans
устранил ресайз по ширине.
У меня размер окна узменяется, но содершимое окна без изменений. так задумано?

Хорошо бы прогу в трей сворачивать
По окончании таймера хорошо бы сообщение. Можно через notify-send, но лучше просто окно

Попробовал скомпилить исходник - норм
Спасибо +
Очень была бы интересна тематика самодельного ПО. Если нужно - сделаю отдельный раздел под пб
Может и разрабы подтянутся...

Оффлайн AZJIO

  • Модератор
  • Старожил
  • ****
  • Сообщений: 293
  • Репутация: +10/-0
  • Автор темы
Re: StopwatchTimer (PureBasic)
« Ответ #2 : 11 Январь 2021, 22:09:31 »
По окончании таймера хорошо бы сообщение.
надеялся что будет использоваться запуск медиафайла mp3, ogg. Но можно будет подумать как вариант если не установлен запуск файла.
У меня размер окна узменяется, но содершимое окна без изменений. так задумано?
ширина не должна меняться, высота допустимо, но при этом изменяется только высота списков, кнопки думаю нет смысла растягивать или двигать. А ширина и начальная высота списков задаётся в ini. Можно было сделать расширение списков, но тогда добавиться размер проги, ведь на каждый элемент окна нужно описывать вычисление размеров, это не сложно, 11 элементов в GUI - 11 строк на рассчёты масштабирования. опять же логически навязыватеся мысль что нужно сохранить этот размер для последующих запусков, добавление флага изменения размера, чтобы сохранять только если фейс изменён, а не всякий раз. Да вполне реализуемо. Просто вчера я думал что мне придётся получать размер окна и из него вычислять размеры элементов, а если они не делятся кратно на 3 (корректировать), а если размер будет уплывать, как это было с одной моей прогой, когда размер при каждом запуске увеличивается на пиксель и не замечаешь, пока прогу уже закрыть невозможно, так как кнопка закрытия нестандартная снизу и она за экраном.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: StopwatchTimer (PureBasic)
« Ответ #3 : 12 Январь 2021, 09:50:40 »
надеялся что будет использоваться запуск медиафайла mp3, ogg.
А если юзер в это время отходил от пк?
B в пакетах, в  *.desktop у вас нет Categories=

Оффлайн AZJIO

  • Модератор
  • Старожил
  • ****
  • Сообщений: 293
  • Репутация: +10/-0
  • Автор темы
Re: StopwatchTimer (PureBasic)
« Ответ #4 : 13 Январь 2021, 02:17:47 »
А если юзер в это время отходил от пк?
B в пакетах, в  *.desktop у вас нет Categories=
Обновил.
Окно масштабируется и сохраняется размер. Добавил флаги message и notify, если есть желание получить мессагу и/или уведомление попутно с запуском файла (но если файл не задан, то ничего не будет, эти вещи не разделял пока).

Использовал команды
Код
zenity --info --title="Таймер" --text="Завершено"
notify-send 'Сигнал' 'Завершено'
чтобы не блокировали окно таймера

Указал Categories=Misc. Читал что если категория не указана, то попадает в "Прочее", то есть Misc
« Последнее редактирование: 13 Январь 2021, 02:36:08 от AZJIO »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: StopwatchTimer (PureBasic)
« Ответ #5 : 13 Январь 2021, 11:45:47 »
Окно масштабируется
Так лучше, но при сжатии окна текст в кучу - см скрин
если есть желание получить мессагу и/или уведомление попутно с запуском файла (но если файл не задан, то ничего не будет, эти вещи не разделял пока).
Не понял
Использовал команды
У меня ни одна не сработала по итогу конца таймера. Звукового файла нет
С приведенными ключами в консоле проги работают
zenity - а средствами pb почему не вывести окно? Зачем лишние зависимости
По итогу должен быть звук + zenity + notify ?
Categories=Misc.
Нет такого. Utility

Вместо "Добавить" логичнее "Редактировать"
Исходник не интернационализирован  :'( Если уж совсем по взрослому делать
Текст Описание.txt логично вывести на кнопку "Справка" (добавить)

Оффлайн AZJIO

  • Модератор
  • Старожил
  • ****
  • Сообщений: 293
  • Репутация: +10/-0
  • Автор темы
Re: StopwatchTimer (PureBasic)
« Ответ #6 : 13 Январь 2021, 15:46:27 »
По итогу должен быть звук + zenity + notify ?
да. Если переделывать, то пока не знаю как с виндой быть, там надо будет придумывать как создавать мессагу не блокирующую окно, теоретически можно не делать его дочерним по отношению к родительскому, но в таких случаях это окно закрытое другими окнами потом не даст закрыть программу нажатием крестика-закрытия.
при сжатии окна
надо будет вернуть WindowBounds, просто задать другие параметры, это легко

Нет такого. Utility
ясно... в инструкции создания deb есть Misc для /DEBIAN/control есть "Section: misc", у меня в меню есть "прочие", и также было сказано что если категории нет, то попадают в "прочее". Вот я и решил пусть сам туда делает. Ладно добавлю в Utility.

Исходник не интернационализирован
подучу вариант Linux, я бы мог встроить язык в исполняемый или выбор внешнего файла, но знаю что языки в Linux в "/usr/share/locale", надо будет изучать формат запроса строк языка.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: StopwatchTimer (PureBasic)
« Ответ #7 : 13 Январь 2021, 15:52:03 »
zenity + notify
Явный перебор. Без всплывающего можно обойтись. А результативное сообщение можно и в окне проги вывести (если вы ее в трей не уберете)
если категории нет, то попадают в "прочее"
Да, но это как-то не очень
языки в Linux в "/usr/share/locale"
Да. В нашей вики все описано. Это лучше оставить на самый конец. Чтобы часто не переделывать

Оффлайн AZJIO

  • Модератор
  • Старожил
  • ****
  • Сообщений: 293
  • Репутация: +10/-0
  • Автор темы
Re: StopwatchTimer (PureBasic)
« Ответ #8 : 13 Январь 2021, 16:02:32 »
Без всплывающего можно обойтись.
так там флаг в 0 поставить, кстати, по-простому можно сделать флаг Executable=0 и тогда игнор музыки. Подумаю...

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

Оффлайн AZJIO

  • Модератор
  • Старожил
  • ****
  • Сообщений: 293
  • Репутация: +10/-0
  • Автор темы
Re: StopwatchTimer (PureBasic)
« Ответ #9 : 14 Январь 2021, 15:49:12 »
sfs
Минимальный размер окна восстановил
Добавил в список выбора медиафайлов пункт "Сообщение", теперь он самостоятельный.

Поддержку мультиязыков сделать пока не удалось, не нашёл волшебную функцию, которая делает это автоматически, а по питону или скриптам терминала это не очевидно, там поддержка может быть встроена. Позже займусь, пока коррекцию текста сделаю. Про прогу в трей тоже помню.
« Последнее редактирование: 14 Январь 2021, 16:05:34 от AZJIO »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: StopwatchTimer (PureBasic)
« Ответ #10 : 14 Январь 2021, 16:43:25 »
Минимальный размер окна восстановил
А в шапке перезаливали? Что-то у меня без улучшений. Кстати по кнопке "Справка" не помешала бы и версия

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: StopwatchTimer (PureBasic)
« Ответ #11 : 14 Январь 2021, 16:54:34 »
Разобрался -  свежий в арчпакете . В Linux - вчерашний
Размер -норм.
ни одна не сработала по итогу конца таймера
Без улучшений

Оффлайн AZJIO

  • Модератор
  • Старожил
  • ****
  • Сообщений: 293
  • Репутация: +10/-0
  • Автор темы
Re: StopwatchTimer (PureBasic)
« Ответ #12 : 14 Январь 2021, 22:57:08 »
sfs
На всякий случай перезалил, чтобы старых версий не было. Ничего не изменял. У меня всё работает. Флаги теперь не действуют, надо оставить по умолчанию (в раскрывающемся списке должно быть "Сообщение"), ставим таймер например 2 секунды, жмём ОК и через 2 сек появится мессага с метками таймера. Мессага и при тесте сигнала тоже должна сработать, только без меток.

Вспомнил предложение вместо "Добавить" сделать "Изменить", но это не изменяет, а именно добавляет таймер. Их можно добавить десяток. Один например через 6 часов на работу, другой через час в магазин, третий - выключить набор воды в ванну через 5 минут. И все они сработают в нужное время.

Обновил, иконка в трее теперь.
Добавил справку в папку, но не делал это через /usr/share/help/ru
« Последнее редактирование: 15 Январь 2021, 17:24:56 от AZJIO »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: StopwatchTimer (PureBasic)
« Ответ #13 : 18 Январь 2021, 17:32:38 »
Скачал из шапки
1.
появится мессага
по прежнему не появляется. Проверьте еще кто-нибудь...
2. Логика окон нетипичная. По мне надо :
После запуска прога открывается окном (видно в панеле)
При открытии настроек и прочих зависимых окон - они в панеле задач не видны (только одно главное)
При закрывании окна оно сворачивается в трей (пропадает с панели)
В трее вызов осн. окна проги и выход
3. проигрывание звукогого файла через xdg-open спорно... Если это гуевый медиаплеер - его открытое окно останется висеть. Может лучше это заменить запуском юзерского скрипта. Юзер сам туда или звук вкатит или любое действие (этого функционала сейчас нет)

Оффлайн AZJIO

  • Модератор
  • Старожил
  • ****
  • Сообщений: 293
  • Репутация: +10/-0
  • Автор темы
Re: StopwatchTimer (PureBasic)
« Ответ #14 : 27 Январь 2021, 13:30:24 »
Обновил, добавил цвет цифр в ini-файле. Остальное пока лень, да и не понятно зачем в трей. На панели задач у меня сужаются кнопки по мере заполнения до ширины иконки, в итоге что эта иконка будет в трее, что на панели задач, не особо напрягает, а писать лишнее меню для трея и нагромождать функционалом трея, это вроде не та программ, которая будет постоянно висеть в трее и активно использоваться. И даже мешать на панели задач будет напоминая о наличии таймера. Закрывать в трей вынуждает делать выход через трей, уж лучше сворачивать в трей, а закрывать - завершать прогу.

Теперь в раскрывающемся списке появился пункт "Командная строка"
Код
zenity --info --title=Тест --text=Тест—команды—удачно
то есть выполнится zenity с параметрами. Здесь может быть любой исполняемый файл и любая команда. Разделение проги от параметров происходит по первому пробелу. Если файл в папке /usr/bin/ то путь можно не указывать, если иной путь, то надо указать весь путь.

И есть идея, для команд например в строке допустить переменные %t %s %e, которые можно заменять на время таймера, начало и конец таймера. Вот только проблема, эти символы допускаются в путях, можно поломать путь, можно заменить на //t //s //e но опять же сомневаюсь в ссылках может быть такое, можно мудрёной комбинацией, например #%t%# или сделать флаг разрешающий обработку переменных вида %t %s %e, например var=1 тогда, если в ком строке они встретятся то будут заменены, это позволит например в уведомлении выводить даты таймера, а не просто выдать уведомление о сработке таймера.
« Последнее редактирование: 10 Февраль 2021, 13:25:33 от AZJIO »