View Issue Details

IDProjectCategoryView StatusLast Update
0003032Far ManagerPlugins API.Dialogpublic2015-08-01 16:26
ReporterJohnDoeAssigned To 
PrioritynormalSeverityminorReproducibilityalways
Status newResolutionopen 
Product Version3.0 
Target VersionFixed in Version 
Summary0003032: Дефекты при сокращении длинного текста в заголовке рамки
DescriptionЕсли текст заголовка не помещается по ширине, то фар вначале а) убирает обрамляющие его пробелы, и если этого недостаточно, то б) усекает сам текст.

Наблюдаю такие ошибки.
- при определённой длине текст может затереть рамку (пример 2,5)
- при расчёте длины текста учитывается и амперсанд, даже если он не отображается (обозначая хоткей)
Steps To ReproduceЗапускаю примеры из командной строки, с каждым разом уменьшая ширину рамки на 1:

1)Эталон (текст нормально помещается)
lua:far.Dialog("",-1,-1,18,6,nil,{{"DI_DOUBLEBOX",2, 1,15, 4,0,0,0,0,"Long title"}})

2)Текст затёр левую часть рамки.
lua:far.Dialog("",-1,-1,18,6,nil,{{"DI_DOUBLEBOX",2, 1,14, 4,0,0,0,0,"Long title"}})

3)Текст снова помещается, за счёт удаления обрамляющих пробелов
lua:far.Dialog("",-1,-1,18,6,nil,{{"DI_DOUBLEBOX",2, 1,13, 4,0,0,0,0,"Long title"}})

4)Текст помещается, за счёт усечения (...)
lua:far.Dialog("",-1,-1,18,6,nil,{{"DI_DOUBLEBOX",2, 1,12, 4,0,0,0,0,"Long title"}})

5) Текст с амперсандом затёр левую рамку
lua:far.Dialog("",-1,-1,18,6,nil,{{"DI_DOUBLEBOX",2, 1,12, 4,0,0,0,0,"&Long title"}})
TagsNo tags attached.
Build

Activities

JohnDoe

2015-08-01 16:18

updater   bugnote:0013743

Last edited: 2015-08-01 16:26

View 2 revisions

local w = 14
far.Dialog("",-1,-1,w+6,13,nil,{
  {"DI_DOUBLEBOX",3, 1,w+2, 11,0,0,0,0,""},
  {"DI_TEXT",4, 2,w+1, 2,0,0,0,"DIF_CENTERTEXT","&1 Long title"},
  {"DI_TEXT",4, 3,w+1, 3,0,0,0,{},"2 Long title123"},
  {"DI_TEXT",4, 4,w+1, 4,0,0,0,{},"3 Long title1234"},
  {"DI_TEXT",4, 5,w+1, 5,0,0,0,{DIF_SEPARATOR=1},"4 Long title1235678"},
  {"DI_TEXT",4, 6,w+1, 6,0,0,0,{DIF_CENTERTEXT=1,DIF_SEPARATOR=1},"5 Long title1235678"},
  {"DI_TEXT",4, 7,w+1, 7,0,0,0,{DIF_CENTERTEXT=1,DIF_SEPARATOR=1},"6 Long title12356789"},
  {"DI_CHECKBOX",4, 8,w+1, 8,0,0,0,0,"7 Long titl"},
  {"DI_CHECKBOX",4, 9,w+1, 9,0,0,0,0,"8 Long title"},
  {"DI_CHECKBOX",4,10,w+1,10,0,0,0,0,"9 Long title1234"},
})

Этот код демонстрирует другие найденные проблемы:
1 - неправильно усечён DI_TEXT с хоткеем
2 - DI_TEXT без DIF_CENTERTEXT не усекается
3 - ... но с определённой длины начинает усекаться, причём правильно
4 - здесь сепаратор усекается правильно
5 - ... но стоит добавить флаг DIF_CENTERTEXT, и уже не усекается
6 - ... а с определённой длины ещё и такой эффект
7 - чекбокс обрезается неправильно
8 - ... а определённой длинны ещё и вылазит на 3 знака за пределы диалога
9 - ... на 3 и не более
(снимок экрана приложен)

JohnDoe

2015-08-01 16:25

updater  

Test5.png (7,345 bytes)
Test5.png (7,345 bytes)

Issue History

Date Modified Username Field Change
2015-07-28 16:48 JohnDoe New Issue
2015-08-01 16:18 JohnDoe Note Added: 0013743
2015-08-01 16:25 JohnDoe File Added: Test5.png
2015-08-01 16:26 JohnDoe Note Edited: 0013743 View Revisions