Программа для создания электронных книг, Обсуждение программы и кода |
Здравствуйте, гость ( Вход | Регистрация )
Программа для создания электронных книг, Обсуждение программы и кода |
xwicked |
8.8.2011, 20:36
Сообщение
#1
|
Студент Группа: Участник Сообщений: 66 Регистрация: 2.8.2011 Из: Старый Оскол Пользователь №: 2781 Спасибо сказали: 0 раз(а) Репутация: 0 |
Здравствуйте! Вот вторая моя программа, написанная на 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 |
17.8.2011, 21:42
Сообщение
#2
|
Студент Группа: Участник Сообщений: 66 Регистрация: 2.8.2011 Из: Старый Оскол Пользователь №: 2781 Спасибо сказали: 0 раз(а) Репутация: 0 |
Здравствуйте!
В этой версии я сделал одно важное изменение, на которое хотел бы обратить Ваше особое внимание. Это функция "int slotChangeFont()". Там я копирую в переменную QString sText всё выделение: Потом заменяю все вхождения модификаторов шрифта: "font-family:", "font-size:", "font-style:", "font-weight:" на значения из диалога шрифта.Так вот, там должен быть способ в одну единственную строчку. Я даже нашёл его - записал в свою амбарную тетрадь, а сейчас найти не могу sad.gif . Прошу помочь в нахождении этого способа, так как "int slotChangeFont()" занимает не много не мало, аж 195 строк(!). Буду благодарен. Исходный код + сборки. Что изменилось: Цитата - Добавлены значки "Oxygen", распространяемые по лицензии GNU GPL;
- При редактировании шрифта, он изменяется теперь, не для всего текста страницы, а по частям(словам, предложениям, абзацами и т. д.); - Улучшен импорт HTML-документов, включая копирование изображений, которые преобразуются в формат PNG; - Изменена стандартная панель - добавлены несколько новых действий; - Добавлена панель редактирования, в которой продублированы действия из меню "Редактирование", для более удобной работы. - Счётчик страниц переместился со стандартной панели в строку состояния. |
|
|
Текстовая версия | Сейчас: 27.11.2024, 13:58 |