From eb66075c13ea7a83722a8a63a71ffc6164122b1c Mon Sep 17 00:00:00 2001 From: "Kirill Lipatov (Leency)" Date: Tue, 28 Feb 2012 23:38:54 +0000 Subject: [PATCH] HTMLv 0.76 - bugfix realise. git-svn-id: svn://kolibrios.org@2418 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/network/htmlv/browser/History.txt | 8 ++- programs/network/htmlv/browser/TWB.h | 60 +++++-------------- .../network/htmlv/browser/include/history.h | 2 + 3 files changed, 23 insertions(+), 47 deletions(-) diff --git a/programs/network/htmlv/browser/History.txt b/programs/network/htmlv/browser/History.txt index 5d54cdf9d..780519884 100644 --- a/programs/network/htmlv/browser/History.txt +++ b/programs/network/htmlv/browser/History.txt @@ -1,5 +1,9 @@ -xx.xx.12 -- v0.7x -- 11.x -- исправлена работа кнопки "Назад". +29.02.12 -- v0.76 -- 11.x +- исправлена работа кнопки "Назад"; +- в историю посещённых страниц не может быть добавлено 2 одинаковых адреса подряд; +- исправлено исчезание заголовка страниц; +- исчезала кнопка вверх в прокрутке - исправлено; +- некоторые другие исправления. 27.02.12 -- v0.75 -- 11.? Кб diff --git a/programs/network/htmlv/browser/TWB.h b/programs/network/htmlv/browser/TWB.h index 9900513f4..15392b4ba 100644 --- a/programs/network/htmlv/browser/TWB.h +++ b/programs/network/htmlv/browser/TWB.h @@ -19,7 +19,7 @@ dword j, char download_path[]="/rd/1/.download"; //char search_path[]="http://nova.rambler.ru/search?words="; char search_path[]="http://nigma.ru/index.php?s="; - char version[]=" Text-based Browser 0.75"; + char version[]=" Text-based Browser 0.76"; struct TWebBrowser { @@ -76,14 +76,13 @@ void TWebBrowser::Scan(dword id) { GetNewUrl(); BrowserHistory.AddUrl(); - if (!strcmp(get_URL_part(5),"http:"))) HttpLoad(); //Lee 21.02 } copystr(#URL, #editURL); - //ShowPage(#URL); - Draw_Window(); + za_kadrom = count = 0; + ShowPage(#URL); return; } @@ -134,6 +133,7 @@ void TWebBrowser::Scan(dword id) { case 0x0D: //enter copystr(#editURL, #URL); if (!strcmp(get_URL_part(5),"http:"))) HttpLoad(); + za_kadrom = count = 0; ShowPage(#URL); return; case 173: //ctrl+enter @@ -141,6 +141,7 @@ void TWebBrowser::Scan(dword id) { copystr(#search_path, #URL); copystr(#editURL, #URL + strlen(#URL)); if (!strcmp(get_URL_part(5),"http:"))) HttpLoad(); + za_kadrom = count = 0; ShowPage(#URL); return; @@ -201,9 +202,8 @@ void GetNewUrl(){ void HttpLoad() -{ - za_kadrom = 0; - +{ + //count = 0; я думаю ему место здесь KillProcess(downloader_id); //убиваем старый процесс DeleteFile(#download_path); IF (URL[strlen(#URL)-1]=='/') URL[strlen(#URL)-1]=''; @@ -235,7 +235,6 @@ void ReadHtml() void TWebBrowser::ShowPage(dword adress) { max_kolvo_stolbcov = width - 30 / 6; max_kolvo_strok = height - 3 / 10 - 2; - copystr(#version, #header); edit1.size = edit1.pos = strlen(#editURL); edit_box_draw stdcall(#edit1); //рисуем строку адреса @@ -276,6 +275,7 @@ void TWebBrowser::ParseHTML(dword bword, fsize){ blink = 400; line = ''; copystr("|", #page_links); + copystr(#version, #header); IF(!strcmp(#URL + strlen(#URL) - 4, ".txt")) pre_text = 1; //зачётное отображение текста //IF(!strcmp(#URL + strlen(#URL) - 4, ".rtf")) pre_text = 1; IF(!strcmp(#URL + strlen(#URL) - 4, ".mht")) ignor_text = 1; @@ -327,9 +327,7 @@ void TWebBrowser::ParseHTML(dword bword, fsize){ } lowcase(#tag); lowcase(#tagparam); - //WriteDebug(#tagparam); - //WriteDebug(#tag); Pause(50); - // + IF (tag[strlen(#tag)-1]=='/') tag[strlen(#tag)-1]=''; //небольшой фикс для работы с XHTML-тегами типа br/ IF(strlen(#tagparam) > 0) && (strlen(#tagparam) < 4000) GetNextParam(); WhatTextStyle(left + 5, stroka * 10 + top + 5, width - 20); //обработка тегов @@ -350,35 +348,6 @@ void TWebBrowser::ParseHTML(dword bword, fsize){ bukva=Hex2Symb(#temp); IF (bukva) goto DEFAULT_MARK; break; - /*case '\\': //поддержка rtf - IF(strcmp(#URL + strlen(#URL) - 4, ".rtf")<>0) goto DEFAULT_MARK; - - bword++; - IF (ESBYTE[bword] =='\'') - { - bword++; - bukva=ESBYTE[bword]; - copystr(#bukva, #temp); - - bword++; - bukva=ESBYTE[bword]; - copystr(#bukva, #temp + strlen(#temp)); - - bukva=Hex2Symb(#temp); - IF (bukva) goto DEFAULT_MARK; - } - else - { - FOR (j=0; (ESBYTE[bword] <>'\\') && (buf + fsize < bword); j++; bword++;) - { - bukva = ESBYTE[bword]; - copystr(#bukva, #tag + strlen(#tag)); - } - IF ((!strcmp(#tag, "par\0x0a")) || (!strcmp(#tag, "par\0x0b"))) stroka++; - tag=''; - bword--; - } - break;*/ case '&': //обработка тегов типа   IF(ignor_text) break; @@ -501,18 +470,19 @@ void TWebBrowser::WhatTextStyle(int left1, top1, width1) { return; } IF(!chTag("script")) || (!chTag("style")) ignor_text = rez; - IF (ignor_text == 1) return; - // - if(!chTag("title")) && (!rez) && (stroka == 0) + if(!chTag("title")) && (!rez) { copystr(#line, #header); copystr(" -", #header + strlen(#header)); copystr(#version, #header + strlen(#header)); - DrawTitle(#header); + if (stroka==0) DrawTitle(#header); return; } + IF (ignor_text == 1) return; + // + // IF(!chTag("q")) copystr("\"", #line + strlen(#line)); @@ -759,7 +729,7 @@ void TWebBrowser::DrawScroller() { DrawFlatButton(left + width - 15, top, 16, 16, ID1, 0xE4DFE1, "\x18"); IF(count <= max_kolvo_strok) { - DrawBar(left + width - 14, top, 16, height - 17, 0xCED0D0); + DrawBar(left + width - 14, top+17, 16, height - 34, 0xCED0D0); return; } diff --git a/programs/network/htmlv/browser/include/history.h b/programs/network/htmlv/browser/include/history.h index 79a0f7838..6bf9ccd24 100644 --- a/programs/network/htmlv/browser/include/history.h +++ b/programs/network/htmlv/browser/include/history.h @@ -20,6 +20,8 @@ void UrlsHistory::GoBack() void UrlsHistory::AddUrl() { + if (strcmp(BrowserHistory.CurrentUrl(), #URL)==0) return; //если новый адресс = текущему + IF (strlen(#UrlHistory)>6000) copystr(#UrlHistory+5000,#UrlHistory); copystr("|", #UrlHistory + strlen(#UrlHistory)); copystr(#URL, #UrlHistory + strlen(#UrlHistory));