Welcome, Guest. Please login or register.
Did you miss your activation email?

Author Topic: Проблемы с дизайнером  (Read 7645 times)

GraninDm

  • Jr. Member
  • **
  • Posts: 84
    • View Profile
Проблемы с дизайнером
« on: August 16, 2016, 03:30:01 pm »
Добрый день!
Сегодня скачал последний билд 1.3
Пытаюсь редактировать один отчет.
В итоге заметил следующее.
1. Если я выделяю несколько текстовых полей и в инспекторе объектов изменяю свойство (пробовал выравнивание по горизонтали и толщину рамки), то изменения происходят только у первого выделенного элемента.
2. При включенной сетке при попытке изменить размер текстового элементы(например потянув за верхнюю границу) начинает прыгать размер
3. При включенной сетке при попытке изменить размер все равно некоторые границы устанавливаются не по сете.
4. Хорошо бы сделать кнопку выровнять по сетке, а то выравнивать каждый элемент дергая границы - просто мУка.
5. Undo не работает в следующем случае.
    1. Изменяем какой-нибудь элемент.
    2. Выделяем раздел.
    3. Выделяем с клавишей ctrl элемент.
    4. Перетаскивает элемент.
    5. Делаем Undo - и в итоге отменяется первый пункт.
    Вот тут хочу заметить, что выделение элементов именно разнородных нужно запретить, иначе получается неоднозначность и это в итоге сложно обрабатывать

ldir

  • Jr. Member
  • **
  • Posts: 72
    • View Profile
Re: Проблемы с дизайнером
« Reply #1 on: August 16, 2016, 08:57:46 pm »
Здравствуйте!
Хочу добавить. Если не сложно, сделать выделение элементов не только через зажатый Ctrl, но также зажатой левой кнопкой мыши (выбор области). Ибо щелкать по элементам нудно.

GraninDm

  • Jr. Member
  • **
  • Posts: 84
    • View Profile
Re: Проблемы с дизайнером
« Reply #2 on: August 17, 2016, 08:13:14 am »
С шифтом выделается

ldir

  • Jr. Member
  • **
  • Posts: 72
    • View Profile
Re: Проблемы с дизайнером
« Reply #3 on: August 17, 2016, 08:29:04 am »
Действительно. Спасибо.

Arin Alex

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 1005
    • View Profile
Re: Проблемы с дизайнером
« Reply #4 on: August 18, 2016, 08:07:16 pm »
GraninDm, Гляну :)

GraninDm

  • Jr. Member
  • **
  • Posts: 84
    • View Profile
Re: Проблемы с дизайнером
« Reply #5 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, а затем включил сетку и начал перетаскивать этот элемент, то левая верхняя координата не привязывается к сетке, а уменьшается/увеличивается на размер сетки.

GraninDm

  • Jr. Member
  • **
  • Posts: 84
    • View Profile
Re: Проблемы с дизайнером
« Reply #6 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
« Last Edit: August 24, 2016, 01:08:45 pm by GraninDm »

GraninDm

  • Jr. Member
  • **
  • Posts: 84
    • View Profile
Re: Проблемы с дизайнером
« Reply #7 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);
При перетаскивании левый верхний угол привязывается к сетке.

Arin Alex

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 1005
    • View Profile
Re: Проблемы с дизайнером
« Reply #8 on: August 30, 2016, 11:47:18 pm »
GraninDm, Спасибо!  Патчик применил

GraninDm

  • Jr. Member
  • **
  • Posts: 84
    • View Profile
Re: Проблемы с дизайнером
« Reply #9 on: August 31, 2016, 08:46:10 am »
Я еще в исходниках с Вашего позволения поковыряюсь?
Только у меня по ходу вопросы возникают.
Где их лучше задавать?

Arin Alex

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 1005
    • View Profile
Re: Проблемы с дизайнером
« Reply #10 on: August 31, 2016, 10:51:39 am »
Да конечно можете ковырять :) на то он и опенсорс чтоб можно было ковырять:) вопросы можно в личку или на почту arin_a@bk.ru

JohnCS

  • Newbie
  • *
  • Posts: 20
    • View Profile
Re: Проблемы с дизайнером
« Reply #11 on: September 08, 2016, 09:36:29 am »
Добрый день.
Обнаружил баг:
Если создать DataBand и к нему Header, то после переименовывания DataBand'а привязка Header'а теряется и в печати отчета этот Header уже ни каким образом не участвует.

Версия 1.4
« Last Edit: September 08, 2016, 09:46:36 am by JohnCS »

Arin Alex

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 1005
    • View Profile
Re: Проблемы с дизайнером
« Reply #12 on: September 09, 2016, 08:51:54 pm »
JohnCS, Спасибо!  Поправил.