Git Product home page Git Product logo

kbe's People

Contributors

alexklybik avatar antonbelka avatar asvitenkov avatar blrb avatar denisklimenko avatar deniskoronchik avatar fergus1993 avatar gr1n avatar ivankosik avatar konstantsin avatar lapitskyartem avatar lifus avatar syakimchik avatar wagos avatar yalchik avatar yauhenbatskavich avatar zooner avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

kbe's Issues

scg: ошибка при отмене создания точки

В режимах создания дуги, шины, контура при нажатии правой кнопки мыши для отменя создания последней точки выпадает контекстное меню, чего не должно происходить

Выбор изображения

При выборе изображения во время установки содержимого (в диалоге выбора файла), по умолчанию отображаются лишь bmp формат. Необходимо сделать, чтобы по умолчанию отображались все графические форматы, а пользователь потом мог выбрать любой, если ему надо.

scg: переделать механизм arrangers

Переписать механизм arrangers. В интерфейсе оставить только следующие преегружаемые функции:

  • создание диалогового окна настройки
  • расчет координат объектов
  • выбор выравниваемых объектов (возвращает список объектов с которыми будет работать алгоритм)

scg: добавить режимы редактирования

Добавить возможность выбора режима редактирования для SCg-констукций. К примеру: редактирование онтологии БЗ, редактирование SCP программ, редактирование Геометрической БЗ и т. д.

По сути каждый режим должен быть описан во внешних файлах и подгружаться системой при старте, после чего у пользователя есть возможность работать с ним. В режиме может быть свой набор команд и стилистик размещения. К примеру при редактировании SCP программ добавить команду создания оператора (целая конструкция).

У пользователя появиться возможность редактировать различные SCg-конструкции по разному. Но при этом останется и лобовой (стандартный вариант).

Пока на стадии идеи.
Будет детальнее описано.

scg: шаблоны типовых конструкций

При создании нового файла необходимо добавить возможность создания уже готовых шаблонов для типовых конструкций.

Шаблоны должны храниться во внешних файлах, которые потом можно легко менять и добавлять. Кроме этого надо учесть такую вещь как размещение. Чтобы указывать в шаблонах как размещать конструкции. Они же не будут жестко фиксированы.

Диалог создания новых файлов

При создании нового файла дать возможность пользователю выбрать его тип. Тип берется из зарегистрированных форматов (scg, m4scp, scs и т. д.) Пока достаточно сделать список корматов и выбор из него (не выпадающий, а обычный список).

scg: добавить альтернативный вариант выбора типа элемента

Изменение типа сделать следующим образом. В общем изменение по некоторому признаку включается по нажатии клавиши Alt + <некоторая клавиша>. После чего на экране появляются возможные типы по указанному признаку. каждому из которых соответствует клавиша, нажатие на нее - выбор типа.
Выбор типа по признаку константности для дуг и узлов:

  • Alt + C. Появившимся типа соответствуют следующие клавиши: константа - C, переменная - V, метапеременная - M
    Выбор позитивности для дуг:
  • Alt + P. Появившимся типа соответствуют следующие клавиши: позитивная - P, негативная - N, позитивность не известна - F
    Выбор постоянности для дуг:
  • Alt + T. Появившимся типа соответствуют следующие клавиши: постоянная - P, временная - T
    Выбор типа дуги:
  • Alt + S. Появившимся типа соответствуют следующие клавиши: принадлежности - P, бинарная - B

Структурные типы узлов:
Alt + S. Появившимся типа соответствуют следующие клавиши: 1, 2, 3....

Все эти команды должны иметь аналог на панели инструментов. Типа команд редактирования в Word (курсив, подчеркнутый текст, жирный и т.д.)

Работа над алфавитом

Изменить алфавит в соответсвии с новым описанием:

  • удалить метапеременные;
  • реализовать новый примитив для не стационарных дуг. Он аналогичен по толщине обычной паре принадлежность (тонкая дуга). Но не сплошная линия, а состоящая из квадратов. Каждый квадрат имеет сторону равную толщине линии. Расстояние между квадратами равно их стороне.

Add settings dialog

Add settings dialog. This dialog make possible to change any settings for all parts of KBE (inluding plugins). Each plugin interface need function to get abstract description of possible settings. Settings for each plugins shows in separate tab.

scg: реализовать новый формат

Разработвать новый формат хранения scg конструкций. В нем выделить семантику и синтаксис. По сути это обычный scs файл, в котором вся семантика - это scs-текст. Вся синтаксическая информация храниться в конце файла в коментариях
Семантика хранит типы объектов и связи между ними, а синтаксис: цвет, позицию и так далее.

    scs-текст   
    /*
    <object id="2">
      <position>100 200</position>
      <identifier> ... </identifier>
      <points>
         <point>...</point>
         <point>...</point>
         <point>...</point>
      </points>
    </object>
    */

Для такого формата надо сделать загрузку и сохранение.
Преимущество такого формата, в том, что в него легко можно добавлять новые поля в синтаксис.
Важно, чтобы поле id было уникально для каждого объекта. В начале файла должна быть указана версия. Для проверки совместимости во время загрузки, на случай внесения изменений в формат.

Формат будет иметь расширение scs.

scg: add contsraints

Add constraints that will affect to scg constructions. For example, movement constrain for two objects to make them on horizontal line. When we move one of them, the other will be moved to the same Y coordinate.

Ограничители позволят пользователю задавать ограничения на конструкцию, например при перемещении мы можем сказать, что объект А должен находиться на одной горизонтальной линии с объектом Б. Тогда при перемещении одного из объектов второй тоже перемещается.

Очень важным является, чтобы установка ограничителей была очень быстрой и не требовала от пользователя большого времени. Основная цель у пользователя - нарисовать SCg-конструкцию, а не сделать ее красивой. Ограничители позволят лишь опростить некоторые вещи.

В рамках этой задачи необходимо разработать базовые классы для ограничителей, и два базовых ограничителя: выравнивание по горизонтали и вертикали. Которые выставляют ряд объектов в одну линию при перемещении какого либо из них.

Важным является то, что ограничители могут иметь дочерние ограничители, то есть использовать друг друга

scn: добавить редактор статей

Особенностью должно быть то, что редактирование должно быть визуальным (редактирование на уровне отображаемого текста, а не разметки), при этом сохранение может производить в различной разметке, к примеру одной из разметок может быть текущая используемая в рамках systems.ostis.net

Automatic update

Add automatic update from server. Make updater as additional application. It starts on kbe start and update it if need.
Just for windows platform. Updating on linux will be throught default update system.

Добавить иконки операций

Добавить иконки для операций:

  1. Save all
  2. Close
  3. Close all
  4. Close other

Сделать установку иконок из текущей темы: QIcon::fromTheme("document-save", QIcon(":/document-save.png"))

Установка содержимого SCg-рамки с помощью перетягивания файлов

Добавить возможность установки содержимого SCg-рамки при помощи перетягивания файлов.
Логика работы следующая, если файл перетянут на таб-бар, то он открывается при наличии плагина, который его поддерживает.
Если файл перетянут на SCg-окно, то возможны следующие варианты:

  • при перемещении на SCg-узел, в него устанавливается данное содержимое (если оно конечно поддерживается), если у узла уже есть содержимое, то оно заменяется
  • при перемещении на пустое место - создается новый SCg-узел с содержимым.

Добавить проекты

Перевести редактирование исходных кодов на уровень проекта БЗ. Вся база знаний хранится в директории, которая имеет следующую структуру:

  • contents - папка в которой находятся все файлы, которые являются содержимым sc-рамок (scg-узлов и т. д.)
  • sources - папка в которой содержатся исходные коды БЗ представленные на различных языках
  • cache - в данной директории лежат файлы, которые создаются редактором при его работе. К ним относится например файл, в котором хранится список всех ключевых узлов.
  • *.kbpro - файл проекта, которые описывает дополнительные свойсвта проекта и настройки

Необходимо для всех плагинов добавить интерфейсы получения идентификаторов, ключевых узлов и т. д. И хранить эту информацию централизованно.

Интернациализация БЗ

Сделать возможность добавлять множество идентификаторов на различных языках для каждого объекта, которые потом будут связаны с объектов через отношение идентификация*

Исправить инсталятор

Сделать так, чтобы инсталятор запускался от имени администратора. Есть проблема при установке на Windows 7, когда не хватает прав.

Добавить SplashScreen

Появляется при старте KBE, в нем отображается прогресс загрузки инструмента.
Прогресс должен отображаться для всех плагинов и для каждого плагина отдельно.
2 прогрессбара:
1 - % загрузки плагинов
2 - % загрузки конкретного плагина

scg: add layers

Add layers to work with scg-constructions. User can hide/show layers.
Some of them will be created automaticaly. For example, layer that contains nodes, arc, pairs and etc.
Also user can create his own layers.

scg: Добавить быстрые направляющие

Добавить быстрые направляющие как в Photoshop. При перемещении объекта, они приклеиваются на одну линию с гранями, центрами, точками других объектов при достаточно маленьких расстояниях, это позволит быстро выравнивать объекты.

Установка числового содержимого

При установке числового содержимого с большим показателем экспоненты, например "123e1552", происходить переполнение, и в результате устанавливается ноль. Возможно, стоит ввести ограничения на порядок устанавливаемого числа.

scg: ошибка при выравнивании

При выравнивании по сетке или связки возникает проблема:
Не пересчитываются dot позицции для дуг. Если же выполнить еще раз, не меняя параметры, то они пересчитываются.
Скорее всего проблема в очередности применения изменений. Все изменения заносятся в стек команд и мы н е знаем в какой очередности они выполняются. Поэтому изменения к дугам могут происходить раньше, чем изменения объектов в которые они входят или выходят. Проблема только, с концами дуг, которые присоединяются к линейным объектам.

scg: add help tooltips

Add help tooltips, that will be show what user can do with current object.
For example, we have selected node. System show tooltips, that help user to work with selected object.

scg: выравнивание связки

Добавить алгоритм выравнивания связок по шаблону как на рисунке http://img233.imageshack.us/img233/2195/template1n.png. При этом выделяется связка которая указана зеленым цветом.
Должна иметься возможность настройки, длины бинарной пары, и расстояния между объектами которые соединены с шиной.

Такой алгоритм должен работать как и выравнивание по сетке. Это значительно упростит набор текстов, так как такие конструкции используются при описании отношений идентификация_, декомпозиция_ и многих других.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.