View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0000019 | Double Commander | Viewer | public | 2009-03-18 14:56 | 2012-10-24 14:26 |
| Reporter | Assigned To | ||||
| Priority | normal | Severity | minor | Reproducibility | always |
| Status | new | Resolution | open | ||
| Projection | none | ETA | none | ||
| Summary | 0000019: Смотрелка | ||||
| Description | 1. Растягивается все подряд и большие файлы и маленькие иконки 2. Нет прокрутки горизонтальной для текстовых файлов 3. При просмотре больших изображений без масштаба, показывается пустая область после рисунка если прокручиваешь как по горизонтали так и по вертикали... а если ползунок до конца, то вообще часть изображения пропадает 4. Не просматриваются некоторые jpeg 5. Вообще не просматривается gif | ||||
| Additional Information | http://sourceforge.net/support/tracker.php?aid=2691604 | ||||
| Tags | No tags attached. | ||||
| Attached Files | fviewer.pas.patch (2,836 bytes)
Index: fviewer.pas
===================================================================
--- fviewer.pas (revision 4996)
+++ fviewer.pas (working copy)
@@ -695,7 +695,7 @@
UndoEY:=Y;
end;
end;
- if not (gboxHightlight.Visible) and not (gboxPaint.Visible) then
+ if not (gboxHightlight.Visible) and not (gboxPaint.Visible) and (sboxImage.AutoScroll) then
begin
sboxImage.VertScrollBar.Position:=sboxImage.VertScrollBar.Position+tmpY-y;
sboxImage.HorzScrollBar.Position:=sboxImage.HorzScrollBar.Position+tmpX-x;
@@ -1336,16 +1336,28 @@
procedure TfrmViewer.miStretchClick(Sender: TObject);
begin
miStretch.Checked:= not miStretch.Checked;
- Image.Stretch:= miStretch.Checked;
- Image.AutoSize:= not Image.Stretch;
- Image.Proportional:= Image.Stretch;
if gboxHightlight.Visible then UndoTmp;
if miStretch.Checked then
begin
+ sboxImage.AutoScroll:=false;
+ sboxImage.HorzScrollBar.Visible:=false;
+ sboxImage.VertScrollBar.Visible:=false;
+ sboxImage.HorzScrollBar.Position:=0;
+ sboxImage.VertScrollBar.Position:=0;
+
gboxPaint.Visible:=false;
gboxHightlight.Visible:=false;
gboxView.Visible:=true;
+ end
+ else
+ begin
+ sboxImage.HorzScrollBar.Visible:=true;
+ sboxImage.VertScrollBar.Visible:=true;
+ sboxImage.AutoScroll:=true;
end;
+ Image.Stretch:= miStretch.Checked;
+ Image.AutoSize:= not Image.Stretch;
+ Image.Proportional:= Image.Stretch;
AdjustImageSize;
end;
@@ -1723,19 +1735,16 @@
begin
if miStretch.Checked then
begin
- Image.Stretch:=true;
- Image.AutoSize := true;
//if gboxHightlight.Visible or gboxPaint.Visible then Image.Center:=false else Image.Center:=true;
Image.Center:=true;
if (Image.Picture.Width > sboxImage.ClientWidth) or (Image.Picture.Height > sboxImage.ClientHeight) then
begin
+ Image.Stretch:=true;
+ Image.AutoSize:=false;
Image.Left:= 0;
Image.Top:= 0;
- Image.AutoSize := false;
Image.Width:= sboxImage.ClientWidth;
Image.Height:= sboxImage.ClientHeight;
- sboxImage.HorzScrollBar.Visible:=false;
- sboxImage.VertScrollBar.Visible:=false;
// show image resolution and scale
if Image.Picture.Width < Image.Width then
begin
@@ -1758,6 +1767,8 @@
end
else
begin
+ Image.Stretch:=false;
+ Image.AutoSize:=true;
Image.Left:= (sboxImage.ClientWidth-Image.Picture.Width) div 2; //move image to center
Image.Top:= (sboxImage.ClientHeight-Image.Picture.Height) div 2;
sResolution:= IntToStr(Image.Picture.Width) + 'x' + IntToStr(Image.Picture.Height);
| ||||
| Fixed in Revision | |||||
| Operating system | |||||
| Widgetset | |||||
| Architecture | |||||
|
|
Похоже, что все перечисленные баги исправлены, поэтому думаю логичней было бы закрыть данный вопрос, чтобы он среди нерешённых не валялся, чем меньше красного (тем более неактуального) - тем позитивней :) Если поддержите данную инициативу, попробую поискать и другие подобные. Хотя небольшой баг в смотрелке всё-таки есть (билд 4993 самосбор в режиме nightly) - если включить растягивание (stretch), просмотрщик эту опцию запоминает и при открытии следующего изображения, соответственно применяет к нему. Баг заключается в том, что при этом появляются полосы прокрутки и, соответственно, часть изображения не видно. Интересно то, что в билде 4961M было несколько по-другому - изображение показывалось полностью, но ниже и правее него были белые полосы шириной с полосы прокрутки, похоже что-то с того билда подкорректировали, да только не очень удачно. Сейчас попробую скриншоты прикрепить. |
|
|
На всякий случай: Windows XP SP3 32bit На скриншотах просмотрщик развернут во весь экран |
|
|
Если в билде 4996 несколько раз изменить размер окна с помощью стандартной кнопки Windows "Развернуть/Восстановить", то полосы прокрутки то появляются, то пропадают, причём когда они появляются, часть изображения не видно, пока его не прокрутишь. То же самое наблюдается, если ресайзить окно просмотрщика с помощью мыши (тянуть за правый нижний угол). Посмотрел по коду - проблема в том, что почему-то размер клиентской области sboxImage в процедуре TfrmViewer.AdjustImageSize не постоянен, он то равен размеру sboxImage, то на 4 пикселя меньше. Когда он меньше - то полос прокруток нет, а когда равен - соответственно они появляются. Странное поведение, мне непонятное, вроде код из раза в раз один и тот же выполняется, а результат разный. В FPC и Delphi я новичек, может в этом дело, а может просто баг компилятора. В общем решить проблему смог, насколько коряво - судить вам, может решите её проще, но в принципе решение рабочее. Приложил патч fviewer.pas.patch |
|
|
Странно, в вашей сборке 4961М проблемы с "Развернуть/Восстановить" нет, но остальные присутствуют, но выглядят немного по-другому... Код вроде не менялся с этого билда, компилятор у меня тоже 2.6.0, разве что версия lazarus другая - 1.0.2. Похоже различия из-за лазаруса? Fullscreen оказывается тоже багнутый, надо его тоже править. |
|
|
-> разве что версия lazarus другая - 1.0.2. Похоже различия из-за лазаруса? Именно, скорее всего что-то поломали в Лазарус |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2011-10-23 12:04 | Alexx2000 | New Issue | |
| 2012-10-20 10:37 | klepa83 | Note Added: 0000961 | |
| 2012-10-20 10:41 | klepa83 | File Added: build_4961M.JPG | |
| 2012-10-20 10:42 | klepa83 | File Added: build_4993.JPG | |
| 2012-10-20 10:44 | klepa83 | Note Edited: 0000961 | |
| 2012-10-20 10:55 | klepa83 | Note Added: 0000962 | |
| 2012-10-24 14:03 | klepa83 | Note Added: 0000964 | |
| 2012-10-24 14:04 | klepa83 | File Added: fviewer.pas.patch | |
| 2012-10-24 14:10 | klepa83 | Note Added: 0000965 | |
| 2012-10-24 14:26 | Alexx2000 | Note Added: 0000966 |