LimeReport Forum

General Category | Основное => Discussion | Обсуждение => Topic started by: GraninDm on August 16, 2016, 03:30:01 PM

Title: Проблемы с дизайнером
Post by: GraninDm on August 16, 2016, 03:30:01 PM
Добрый день!
Сегодня скачал последний билд 1.3
Пытаюсь редактировать один отчет.
В итоге заметил следующее.
1. Если я выделяю несколько текстовых полей и в инспекторе объектов изменяю свойство (пробовал выравнивание по горизонтали и толщину рамки), то изменения происходят только у первого выделенного элемента.
2. При включенной сетке при попытке изменить размер текстового элементы(например потянув за верхнюю границу) начинает прыгать размер
3. При включенной сетке при попытке изменить размер все равно некоторые границы устанавливаются не по сете.
4. Хорошо бы сделать кнопку выровнять по сетке, а то выравнивать каждый элемент дергая границы - просто мУка.
5. Undo не работает в следующем случае.
    1. Изменяем какой-нибудь элемент.
    2. Выделяем раздел.
    3. Выделяем с клавишей ctrl элемент.
    4. Перетаскивает элемент.
    5. Делаем Undo - и в итоге отменяется первый пункт.
    Вот тут хочу заметить, что выделение элементов именно разнородных нужно запретить, иначе получается неоднозначность и это в итоге сложно обрабатывать
Title: Re: Проблемы с дизайнером
Post by: ldir on August 16, 2016, 08:57:46 PM
Здравствуйте!
Хочу добавить. Если не сложно, сделать выделение элементов не только через зажатый Ctrl, но также зажатой левой кнопкой мыши (выбор области). Ибо щелкать по элементам нудно.
Title: Re: Проблемы с дизайнером
Post by: GraninDm on August 17, 2016, 08:13:14 AM
С шифтом выделается
Title: Re: Проблемы с дизайнером
Post by: ldir on August 17, 2016, 08:29:04 AM
Действительно. Спасибо.
Title: Re: Проблемы с дизайнером
Post by: Arin Alex on August 18, 2016, 08:07:16 PM
GraninDm, Гляну :)
Title: Re: Проблемы с дизайнером
Post by: GraninDm on August 19, 2016, 04:17:50 PM
Дополню...
По поводу изменения размеров текстовых полей при включенной сетке.
Дергается именно вертикальный размер и не во всех разделах. В ReportHeader не дергается. В DataHeaderBand, DataBand и ReportFooter - дергается.
Скачал 1.4
1. Нет кнопок для управления видимостью DataBrowser и ScriptBrowser. Т.е. я их закрываю, а открыть могу только скрыв и показав левую панель.
2. Еще думаю, что все настройки лучше перенести в одно место. Настройки Text Item Editor  - в глобальные настройки.
3. Если я расположил текстовый элемент без включенной сетки например с координатами 2,6 3,2, а затем включил сетку и начал перетаскивать этот элемент, то левая верхняя координата не привязывается к сетке, а уменьшается/увеличивается на размер сетки.
Title: Re: Проблемы с дизайнером
Post by: GraninDm on August 24, 2016, 01:04:22 PM
По поводу дерганья размера при изменении верхней границы
Подправил код
Code: [Select]
    if (m_resizeDirectionFlags & ResizeLeft) {
        if ((event->scenePos().x()) <= (mapToScene(0, 0).x() + (width() - Const::MINIMUM_ITEM_WIDTH)) &&
             (width() + (event->lastScenePos().x() - event->scenePos().x()) > Const::MINIMUM_ITEM_WIDTH)
           ) {
            qreal posRightCorner = mapToScene(0, 0).x() + width();
            qreal posLeftCorner = div(mapToParent(event->pos()).x(), vStep).quot * vStep;
            if (posLeftCorner < 0 )
                posLeftCorner = 0;
            setItemPos(posLeftCorner, y());
            setWidth(div(posRightCorner - mapToScene(0, 0).x(), vStep).quot * vStep);
        }
    }

    if (m_resizeDirectionFlags & ResizeRight) {
        if ((event->scenePos().x() >= (mapToScene(0, 0).x() + Const::MINIMUM_ITEM_WIDTH)) ||
             (event->scenePos().x() >= (mapToScene(0, 0).x() + width()))) {
            setWidth(div(event->scenePos().x() - mapToScene(0, 0).x(), vStep).quot * vStep);
        }
    }

    if (m_resizeDirectionFlags & ResizeBottom) {
        if ((event->scenePos().y() > (mapToScene(0, 0).y() + height())) ||
             (event->scenePos().y() > (mapToScene(0, 0).y() + Const::MINIMUM_ITEM_HEIGHT))
           ) {
            setHeight(div(event->scenePos().y() - mapToScene(0, 0).y(), hStep).quot * hStep);
        }
    }

    if (m_resizeDirectionFlags & ResizeTop) {

        if ((event->scenePos().y()) <= (mapToScene(0, 0).y() + (height() - Const::MINIMUM_ITEM_HEIGHT)) &&
             (height() + (event->lastScenePos().y() - event->scenePos().y()) > Const::MINIMUM_ITEM_HEIGHT)
           ) {
            qreal posBottomCorner = mapToScene(0, 0).y() + height();
            qreal posTopCorner = div(mapToParent(event->pos()).y(), hStep).quot * hStep;
            if (posTopCorner < 0 )
                posTopCorner = 0;
            setItemPos(x(), posTopCorner);
            setHeight(div(posBottomCorner - mapToScene(0, 0).y(), hStep).quot * hStep);
        }
    }


Теперь вроде все работает и еще сделал проверку на выход за границы (верхнюю и левую), чтобы объекты не утекали за верхний край.

Может быть сделать такую же проверки и для остальных границ?

И еще я не силен в аглицком хочу спросить
posBottomConner это описка? Может нужно posBottomCorner

И еще по коду
Почему при работе с вертикальными размерами используется шаг сетки hStep?
По логике должно быть vStep и соответственно по горизонтали

Забыл написать. Это я правил в 1.4
Title: Re: Проблемы с дизайнером
Post by: GraninDm on August 24, 2016, 04:47:24 PM
По поводу перетаскивания по сетке
Code: [Select]

       //setItemPos(m_startPos - delta);
        setItemPos(QPointF(div(m_startPos.x(), hStep).quot * hStep, div(m_startPos.y(), vStep).quot * vStep) - delta);
При перетаскивании левый верхний угол привязывается к сетке.
Title: Re: Проблемы с дизайнером
Post by: Arin Alex on August 30, 2016, 11:47:18 PM
GraninDm, Спасибо!  Патчик применил
Title: Re: Проблемы с дизайнером
Post by: GraninDm on August 31, 2016, 08:46:10 AM
Я еще в исходниках с Вашего позволения поковыряюсь?
Только у меня по ходу вопросы возникают.
Где их лучше задавать?
Title: Re: Проблемы с дизайнером
Post by: Arin Alex on August 31, 2016, 10:51:39 AM
Да конечно можете ковырять :) на то он и опенсорс чтоб можно было ковырять:) вопросы можно в личку или на почту arin_a@bk.ru
Title: Re: Проблемы с дизайнером
Post by: JohnCS on September 08, 2016, 09:36:29 AM
Добрый день.
Обнаружил баг:
Если создать DataBand и к нему Header, то после переименовывания DataBand'а привязка Header'а теряется и в печати отчета этот Header уже ни каким образом не участвует.

Версия 1.4
Title: Re: Проблемы с дизайнером
Post by: Arin Alex on September 09, 2016, 08:51:54 PM
JohnCS, Спасибо!  Поправил.