![]() |
Модераторы: Snowy, Poseidon |
![]() ![]() ![]() |
|
xwicked |
|
||||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 9.4.2010 Где: Старый Оскол Репутация: нет Всего: 1 |
Здравствуйте! Вот вторая моя программа, написанная на C++(Qt). Выношу на обсуждение её и исходник - 0.0.7.
Ссылка на SourceForge.net. Код под GNU GPL v2 - OpenSource. Она предназначена для создания электронных книг, с централизованным хранением в базе данных SQLite3. Этот код публикуется впервые. Его не было нигде, включая репозиторий программ Sisyphus от дистрибутива AltLinux. Там был только Клёст-кроссворд(0.1.9, 0.2.0). Комментируем Windows-версия. Описание: Страница книги представляет собой одну переменную QString Page. Текст книги отображается в компоненте QTextEdit TextBook. Текст в компоненте TextBook имеет форматирование документа HTML. Поэтому редактирование текста страницы осуществляется редактированием html-кода. Стандартное сохранение идёт в базу данных. Но есть и возможность экспорта в файл. Изображения хранятся, как в обычной html-странице - отдельно от текста в папке "temp". В тексте указывается путь. При загрузке книги - во всех страницах происходит перезапись тегов изображения "<img src=":
Это актуально для переносимой версии. В этом случае необходимо будет поменять строку:
на
Пароль книги хранится в открытом виде в переменной QString Password. Список страниц хранится в списке строк QStringList ListPages. Изображения хранятся в массиве QByteArray ListImages[255]. Здесь видно, что изображений на всю книгу 255. Сохранение в базу происходит обычными SQL-запросами:
Это сообщение отредактировал(а) xwicked - 2.7.2011, 23:53 |
||||||||
|
|||||||||
xwicked |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 9.4.2010 Где: Старый Оскол Репутация: нет Всего: 1 |
Пользователи ОС Linux на RPM-основе, которые захотят сделать свою сборку программы для размещения на собственном сайте или сервере, то вот спекфайл:
Он находится в архиве, который специально подготовлен. Постараюсь ответить на все возникающие вопросы. Команда для сборки двоичного пакета:
Предварительно необходимо установить пакет rpm-build. |
||||
|
|||||
xwicked |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 9.4.2010 Где: Старый Оскол Репутация: нет Всего: 1 |
Здравствуйте!
Следующая версия программы 0.0.8, 0.0.8-rpm. Её ключевой особенностью является импорт html-файла. Вот функция:
Разбивая страницы, она переносит всю таблицу на одну страницу до конца, даже, если таблица физически должна быть на 2-х или более страницах. Импортируются пока только html-страницы, созданные в OpenOffice. Это делалось для того, чтобы преподаватели, у которых имеются методички в формате MSWord(*.doc) могли наиболее быстро перегнать своё пособие в мою программу. Как Вам эта функция и есть ли возможность всё это максимально упростить? Благодарю за ответ. P.S. Следующим сообщением я выложу архив для сборки deb-пакетов, дистрибутивов ОС Linux Debian, Ubuntu. ![]() |
|||
|
||||
xwicked |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 9.4.2010 Где: Старый Оскол Репутация: нет Всего: 1 |
Теперь и счастливым обладателям дистрибутивов GNU / Linux Debian и его производным(Ubuntu), предоставилась возможность попробовать себя в качестве разработчиков ПО.
Новая версия электронной библиотеки 0.0.9, 0.0.9-rpm, 0.0.9-deb. Серьёзным изменением в данной версии является ускорение загрузки книги из базы данных. Это связано с выгрузкой изображений из базы на диск в папку. Сначала я не знал, как сделать лучше, поэтому сделал выгрузку по одному байту, что занимало большой промежуток времени. При использовании объекта QImage - этот процесс уcкорился на моей тестовой машине раз в 20(!). Код ниже:
Для сборки deb-пакета необходимо наличие установленных пакетов: autotools-dev, dh-make, fakeroot и другие. Команда сборки:
ЗЫ: Возможно скоро напишу краткое руководство по сборке deb-пакетов и выложу на своём сайте. Это будет частичный перевод данного руководства начинающего мейнтейнера. ![]() Это сообщение отредактировал(а) xwicked - 24.7.2011, 17:39 |
||||||
|
|||||||
xwicked |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 9.4.2010 Где: Старый Оскол Репутация: нет Всего: 1 |
Здравствуйте!
В этой версии я сделал одно важное изменение, на которое хотел бы обратить Ваше особое внимание. Это функция "int slotChangeFont()". Там я копирую в переменную QString sText всё выделение:
Так вот, там должен быть способ в одну единственную строчку. Я даже нашёл его - записал в свою амбарную тетрадь, а сейчас найти не могу ![]() Исходный код + сборки. Что изменилось:
Это сообщение отредактировал(а) xwicked - 2.8.2011, 19:34 |
||||
|
|||||
xwicked |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 9.4.2010 Где: Старый Оскол Репутация: нет Всего: 1 |
Здравствуйте! Вот новая версия 0.1.1 - исходный код + сборки.
Внешний вид: ![]() Одно из добавлений - это функция поиска текста по книге:
QString sFindText - искомый текст; int iNumberPage - текущая страница QStringList ListPages - список страниц с текстом. Для поиска используется "TextBook->find(sFindText)" - будет ли выгода, если использовать функцию поиска в QString непосредственно или использовать контейнер для ускорения? Предполагаю, что сейчас тратится дополнительное время для прорисовки QTextEdit TextBook. Все новинки:
Это сообщение отредактировал(а) xwicked - 10.8.2011, 17:58 |
||||
|
|||||
voral |
|
||||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 16.3.2008 Где: Иваново Репутация: нет Всего: нет |
Наверно одну на каждую искомую? Что то типа такого
Точку с запятой я взял в скобки и потом пристыковал при помощи append лишь для демонстрации. Срезу скажу код не проверял. (регексп надо естественно продумать) С другой стороны, возможно, будет оптимальным выкинуть выкинуть вообще это все из документа. И использовать метод
Добавлено через 1 минуту и 6 секунд Поправка - скобка не туда уехала
|
||||||
|
|||||||
xwicked |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 9.4.2010 Где: Старый Оскол Репутация: нет Всего: 1 |
Покажите, пожалуйста, простейший пример с одним словом. Возможно, это то, что нужно. |
||||
|
|||||
voral |
|
||||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 16.3.2008 Где: Иваново Репутация: нет Всего: нет |
Похоже я прогнал (сам не пользовался этим) тут скорее для использования css в построении интерфейса программы и виджетов. Подробнее в асситенте qthelp://com.trolltech.qt.473/qdoc/stylesheet-examples.html (Qt Style Sheets Examples)
Вам же могу предложить следующий вариант. в документе перед тегом </head> вставляете либо
либо в ресурсы кладете файл таблицы стилей. А потом вставляете подставляете линк. Пример. dialog.cpp
styles.css (в ресурсах, но можно и загружать из файла)
Добавлено @ 23:39 вот вам на всякий пожарный тестик Присоединённый файл ( Кол-во скачиваний: 1 ) ![]() |
||||||
|
|||||||
xwicked |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 9.4.2010 Где: Старый Оскол Репутация: нет Всего: 1 |
Да, я так и понял, так как я вчера 40 минут посидел - и нашёл этот способ ![]() ![]()
|
||||
|
|||||
xwicked |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 9.4.2010 Где: Старый Оскол Репутация: нет Всего: 1 |
В версии 0.1.2, была реализована возможность добавления в базу данных библиотеки произвольной информации, в виде ссылок на отдельные файлы. Что представляет собой достаточно хорошее улучшение, так как преподавателю можно будет совершать меньше движений, при создании учебника.
Эта возможность позволит не только сократить время создания учебника, но и послужит отличным расширением возможностей программы, при использовании материалов, содержащихся в отдельных ссылках на файлы, как дополнение к создаваемому учебнику. Например, к книге о художнике, можно будет хранить галерею с изображениями(его работами) в разделе "Фотографии". Все изменения:
Git-репозиторий:
|
||||
|
|||||
Vasya2904 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 20.8.2011 Репутация: нет Всего: нет |
Привет! Несколько моих пожеланий и замечаний. Скачал последнюю версию. Какой-то глюк с паролем, в хелпе написано, что по умолчанию пароль: Password, он почему-то не всегда принимается. Перелистывание страниц, можно сделать ещё каким-нибудь более удобным способом, например на стрелочках, с мышкой не всегда удобно. В содержание можно добавить ссылки на все главы и части. Немного странно сделана возможность открытия книг. Было бы удобнее если в пункте открыть открывался браузер, а не папка программы. Найденный текст неплохо как-нибудь выделять. В целом всё отлично. Буду следить за проектом. Желаю успехов и удачи!
Это сообщение отредактировал(а) Vasya2904 - 6.9.2011, 11:19 |
|||
|
||||
xwicked |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 9.4.2010 Где: Старый Оскол Репутация: нет Всего: 1 |
Здаров! Пароль принимается всегда. Просто, сначала спрашивается пароль режима программы, а затем, если открыта книга, то и пароль книги, хотя там красуется сейчас надпись просто "Введите пароль". Вот и всё! А пароль книги нигде не задокументирован, так как в примере авторская разработка и она защищена правами и изменение её может носить только характер обучения возможностям программы. Программной реализации содержания пока-что нет, только текст. В пункте "Открыть", открывается содержимое базы данных библиотеки. Браузер никак не подходит. |
|||
|
||||
Vasya2904 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 20.8.2011 Репутация: нет Всего: нет |
А на книге пароль другой? Я захожу в программу, пишет "введите пароль", я ввожу, всё нормально, открываю книгу, опять просит пароль, я ввожу, не прокатывает, книга не открывается. Но это только в режиме редактирования, в режиме просмотра всё нормально. А содержание планируется? Значит только через импорт книги открывать?
|
|||
|
||||
xwicked |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 9.4.2010 Где: Старый Оскол Репутация: нет Всего: 1 |
Здравствуйте! Версия 0.1.3 содержит добавление защиты документов дополнительной информации от случайного изменения в режиме просмотра:
|
||||
|
|||||
xwicked |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 9.4.2010 Где: Старый Оскол Репутация: нет Всего: 1 |
В версии 0.1.4 добавилась функция печати:
Все изменения:
|
||||
|
|||||
xwicked |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 9.4.2010 Где: Старый Оскол Репутация: нет Всего: 1 |
Здравствуйте! Версия 0.1.8
Все изменения:
![]() P.S. Ещё один очень важный момент: версии 0.1.8 и 0.1.9 - сборки являются минимальными. То есть, чтобы посмотреть на все функции, необходимо программу собрать из исходника . Это делалось для проверки аудитории пользователей на заинтересованность в программе, путем отправки мне запроса на получение исходного кода. Что было не очень удачной идеей и, с версии 0.2.5, сборки программы уже снова полнофункциональны. Прошу извинить меня за данное неудобство ![]() |
||||
|
|||||
xwicked |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 9.4.2010 Где: Старый Оскол Репутация: нет Всего: 1 |
В версии 0.1.9 добавлена работа с несколькими библиотеками-базами(как и в тесте
![]()
|
||||
|
|||||
xwicked |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 9.4.2010 Где: Старый Оскол Репутация: нет Всего: 1 |
Здравствуйте! Оптимизирована функция изменения шрифта:
Скачать Это последняя версия. В Git создана ветка current теперь, все свежие изменения будут там. |
|||
|
||||
xwicked |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 9.4.2010 Где: Старый Оскол Репутация: нет Всего: 1 |
Здравствуйте! Новый код. Версия 1.0.0 - это первая версия, в которой можно нормально работать с изображениями. Их количество теперь будет ровно таким, каким и должно быть, не больше.
Повышена безопасность программы перемещением некоторых переменных в секцию private: Теперь доступ к ним осуществляется из методов:
Теперь исходник одним файлом. Вся информация по сборке rpm и deb-пакетов находится внутри. |
||||
|
|||||
xwicked |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 9.4.2010 Где: Старый Оскол Репутация: нет Всего: 1 |
Здравствуйте!
Новая версия. 1.0.5. Тут прошу особо протестировать Mac- и Linux-установщики, так как Linux-пакетов больше нет. Скачать
Благодарю! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Совместные проекты/поиск партнёров" | |
|
Внимание: Этот раздел только для проектов в которых Вы будете выступать в качестве исполнителя! Темы и сообщения, не удовлетворяющие данным правилам, будут удаляться на основании пункта 3 Правил форума!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, Poseidon |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Совместные проекты/поиск партнёров | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |