WebView: Text-based Browser
-
Leency, а теперь я очень сильно прошу тебя рассказать, как работает парсер тегов и вывод всего этого на экран. Очень хочется добавить поддержку пары важных тегов и может быть свойств.
HTMLv 0.75
- при закрытии HTMLv, downloader тоже завершается;
- невозможно запустить больше одного downloader'a;
- отображение процесса загрузки страницы из Интернета через кнопочку "остановить", надпись "Loading...", возможность прервать процесс;
- обновление страницы из Интернета приводит к её повторной загрузке.
БАГИ: кнопка назад не работает как надо, заголовок страницы иногда исчезает, и главное - чтобы страница отобразилась нужно скидывать фокус с окна и активировать его.
Ну а в целом версия очень хороша!
- при закрытии HTMLv, downloader тоже завершается;
- невозможно запустить больше одного downloader'a;
- отображение процесса загрузки страницы из Интернета через кнопочку "остановить", надпись "Loading...", возможность прервать процесс;
- обновление страницы из Интернета приводит к её повторной загрузке.
БАГИ: кнопка назад не работает как надо, заголовок страницы иногда исчезает, и главное - чтобы страница отобразилась нужно скидывать фокус с окна и активировать его.
Ну а в целом версия очень хороша!
Из хаоса в космос
В двух словах всё происходит на лету - читаем из памяти страницу, рисуем сразу... Я позже более развёрнуто отвечу.SoUrcerer wrote:Leency, а теперь я очень сильно прошу тебя рассказать, как работает парсер тегов и вывод всего этого на экран. Очень хочется добавить поддержку пары важных тегов и может быть свойств.
Самая большая проблема для меня - невозможность создавать НОРМАЛЬНО на С-- массивы строк.
Из хаоса в космос
А с чем собственно проблемы? CleverMouse однажды мне подсказывала, что можно загрузить весь файл в память, а потом раскидать в отдельном массиве указатели на фрагменты файла.
HTML Viewer 0.76
- исправлена работа кнопки "Назад";
- в историю посещённых страниц не может быть добавлено 2 одинаковых адреса подряд;
- исправлено исчезание заголовка страниц;
- исчезала кнопка вверх в прокрутке - исправлено;
- некоторые другие исправления.
Эту версию можно назвать STABLE, т.к. все известные мне баги исправлены. Дальше дело за архитектурными проблемами.
Здесь их две основных для меня:
1. Нет единой процедуры загрузки и отображения страниц, на каждый чих свой код, процедуры и ньюансы. Тонкая смесь костылей.
2. Несложная проблема, но я не знаю как это реализовать. Вот работает программа как обычно, на события всякие реагирует. И тут открывает ссылку из нэта, запускается давнлоадер и начинает качать страницу. Так вот в чём проблема: программе нужно каждые скажем полсекунды проверять висит ли даунлоадер в процессах или уже закрылся (соответственно выкачав страницу). А потом снова жить ХТМЛв как ни в чём не бывало.
Тут я так понимаю нужно менять маску событий чтобы программа начинала генерировать событие каждые полсекунды. Потом менять обратно. Так?
- исправлена работа кнопки "Назад";
- в историю посещённых страниц не может быть добавлено 2 одинаковых адреса подряд;
- исправлено исчезание заголовка страниц;
- исчезала кнопка вверх в прокрутке - исправлено;
- некоторые другие исправления.
Эту версию можно назвать STABLE, т.к. все известные мне баги исправлены. Дальше дело за архитектурными проблемами.
Здесь их две основных для меня:
1. Нет единой процедуры загрузки и отображения страниц, на каждый чих свой код, процедуры и ньюансы. Тонкая смесь костылей.
2. Несложная проблема, но я не знаю как это реализовать. Вот работает программа как обычно, на события всякие реагирует. И тут открывает ссылку из нэта, запускается давнлоадер и начинает качать страницу. Так вот в чём проблема: программе нужно каждые скажем полсекунды проверять висит ли даунлоадер в процессах или уже закрылся (соответственно выкачав страницу). А потом снова жить ХТМЛв как ни в чём не бывало.
Тут я так понимаю нужно менять маску событий чтобы программа начинала генерировать событие каждые полсекунды. Потом менять обратно. Так?
Из хаоса в космос
Можно задействовать ф.23 вместо ф.10 на нужный период. Пишешь еще один главный цикл и передаешь на него управление, а когда страница скачана, то передаешь управление обратно в основной главный цикл. Из событий во вторичном главном цикле обрабатывать только перерисовку окна и обработку кнопки закрытия.
Спасибо, попробую.
Из хаоса в космос
Можешь поправить downloader, чтобы он принимал в качестве параметра ещё и pid процесса, которому он будет отсылать IPC события о завершении своей работы и статус её завершения (скажем, 404, 403, 200 или просто success/fail). Так, на мой взгляд, будет меньше извращений.
А еще (вот уж вдруг) можно добавить обработку тега input и кнопки submit для отправки get-запросов. Если бы downloader умел делать и post-запросы (с передачей параметров через ipc) - вообще было бы сказочно.
1. Если открывать программу с параметром, в котором ссылка на интернет-сайт, программа отобразит его. Пример: Eolite -> About (нажать на разноцветные кружочки справа от строки адреса) -> ссылка на мой сайт.
2.
2.
- Attachments
-
-
scr.png (104.44 KiB)Viewed 2912 times
Из хаоса в космос
bgcolor - это Ня!
Все еще не исправлен баг - после загрузки страницы она не отрисовывается без насильственных действий с окном программы (переключения фокуса системы, изменения размеров окна или его перетаскивания). Вероятно поправить очень сложно, так как наследуемость бага 100%.
Почему то в Qemu (на реальном железе не проверял) не открывается http://kolibrios.org (адрес правильный и этот форум при этом открывается) и http://flatassembler.net
Также предложение на будущее - проверять если строка адреса не начинается с символа "/" или "http://", то подставлять "http://" программа должна самостоятельно.
Почему то в Qemu (на реальном железе не проверял) не открывается http://kolibrios.org (адрес правильный и этот форум при этом открывается) и http://flatassembler.net
Также предложение на будущее - проверять если строка адреса не начинается с символа "/" или "http://", то подставлять "http://" программа должна самостоятельно.
Предложение принимается. А даунлоадер их хавает (колибриос.орг и флэтассемблер)?
Насчёт "насильственных действий с окном" - это не баг - этофича архитектурная проблема. Которую я пока не знаю как решить и которая меня загоняет в угол... я опускаю руки... т.к. нужно читать документацию, проводить тесты... Когда-нибудь я её решу.
Хм... Может lev поможет?
Насчёт "насильственных действий с окном" - это не баг - это
Хм... Может lev поможет?
Из хаоса в космос
Похоже там редиректы, результаты генерации и т.п.
http://kolibrios.org/ru/index.html - у меня открывается
http://flatassembler.net/index.php - не хочет
я в этом не специалист.
Багов с перерисовкой в Qemu пока не воспроизвёл, погоняю ещё.
http://kolibrios.org/ru/index.html - у меня открывается
http://flatassembler.net/index.php - не хочет
я в этом не специалист.
Багов с перерисовкой в Qemu пока не воспроизвёл, погоняю ещё.
- обработка перехода вверх "../";
- jpg, gif, png открываются через kiv. Подумываю вообще eolite.ini прикрутить и открывать файлы соответствующими прогами... А отображать только на txt, htm, html, mht и неизвестные расширения.
Новая версия на SVN. Обнаружил ещё две ошибки, надеюсь скоро исправить.
- jpg, gif, png открываются через kiv. Подумываю вообще eolite.ini прикрутить и открывать файлы соответствующими прогами... А отображать только на txt, htm, html, mht и неизвестные расширения.
Новая версия на SVN. Обнаружил ещё две ошибки, надеюсь скоро исправить.
Из хаоса в космос
Who is online
Users browsing this forum: No registered users and 0 guests