crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
> Программа для создания электронных книг, Обсуждение программы и кода
xwicked
  опции профиля:
сообщение 20.11.2011, 19:28
Сообщение #11


Студент
*

Группа: Участник
Сообщений: 66
Регистрация: 2.8.2011
Из: Старый Оскол
Пользователь №: 2781

Спасибо сказали: 0 раз(а)




Репутация:   0  


В версии 0.1.4 добавилась функция печати:
void ElectronicLibrary::slotPrint()
{
    QPrinter printer;
    QPrintDialog *pPrintDialog = new QPrintDialog(&printer);

    if(pPrintDialog->exec() == QDialog::Accepted)
    {
        QPainter painter(&printer);
        QRect r(painter.viewport());

        if(ListPages.count() > 0)
        {

            for(int i = 0; i < ListPages.count(); i++)
            {
                TextBook->setHtml(ListPages.at(i));
                painter.drawText(r, TextBook->toPlainText());
                printer.newPage();
            }

            painter.end();
        }

        TextBook->setHtml(ListPages.at(0));
        sbNumberPage.setValue(1);
    }

    delete pPrintDialog;
}
Такой вариант печатает простой текст, без форматирования и изображений.

Все изменения:
Цитата
- Добавлен модуль тестирования "LabFreeTech Тест", для проверки знаний;
- Добавлена функция печати книги;
- Добавлена возможность выравнивания и изменения регистра текста.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
xwicked
  опции профиля:
сообщение 31.1.2012, 21:52
Сообщение #12


Студент
*

Группа: Участник
Сообщений: 66
Регистрация: 2.8.2011
Из: Старый Оскол
Пользователь №: 2781

Спасибо сказали: 0 раз(а)




Репутация:   0  


Здравствуйте! Версия 0.1.8
//Изменение таблицы
void KlenLibrary::slotResizeTable()
{
    if(gRegimeViewing == true) return;

    InputParametrTable FormInputParametrTable;
    FormInputParametrTable.setWindowTitle(tr("Change table parametrs"));

    if(FormInputParametrTable.exec() == QDialog::Accepted)
    {
        if(FormInputParametrTable.SpinColumnCount->value() > 0
                && FormInputParametrTable.SpinColumnCount->value() > 0)
        {
            TextBook->textCursor().currentTable()->resize(FormInputParametrTable.SpinRowCount->value(),
                                                          FormInputParametrTable.SpinColumnCount->value());
        }
    }
}
currentTable() позволяет работать с таблицей, по текущей позиции курсора в тексте.
Все изменения:
Цитата
- Добавилась возможность создания и редактирования таблиц;
- Исправлена ошибка, не позволяющая сохранять дополнительную информацию, при редактировании;
- Добавлена возможность ввода имени пользователя;
- Добавлен учёт времени работы пользователя с книгой;
- Добавились горячие клавиши;
- Модуль "LabFreeTech Тест" изменил своё название на "Шёлковый тест" и обновился до версии 0.4.1;
- Добавился пункт меню "Сервис", в котором теперь находятся элементы: "Статистика", "Дополнительно", "Тест";
Хочу сообщить о том, что начиная с версии >1.0.0, 30% работы будет сосредоточено на оптимизацию под ООП стандарты :) для лучшей поддержки другими программистами.

P.S. Ещё один очень важный момент: версии 0.1.8 и 0.1.9 - сборки являются минимальными. То есть, чтобы посмотреть на все функции, необходимо программу собрать из исходника . Это делалось для проверки аудитории пользователей на заинтересованность в программе, путем отправки мне запроса на получение исходного кода. Что было не очень удачной идеей и, с версии 0.2.5, сборки программы уже снова полнофункциональны. Прошу извинить меня за данное неудобство :blink: .
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
xwicked
  опции профиля:
сообщение 11.2.2012, 23:05
Сообщение #13


Студент
*

Группа: Участник
Сообщений: 66
Регистрация: 2.8.2011
Из: Старый Оскол
Пользователь №: 2781

Спасибо сказали: 0 раз(а)




Репутация:   0  


В версии 0.1.9 добавлена работа с несколькими библиотеками-базами(как и в тесте ;) ) и возможность резервировать со сжатием:
void KlenLibrary::slotBackupLibrary()
{
    QString sNameBackupLibrary = QFileDialog::getSaveFileName(0, tr("Backup library"), "", "*.xwlbz");

    if(sNameBackupLibrary == "") return;
    if(sNameBackupLibrary.indexOf(".xwlbz") == -1) sNameBackupLibrary += ".xwlbz";

    QFile ifile(sNameLibrary);
    ifile.open(QIODevice::ReadOnly);
    QByteArray baExport;
    baExport = ifile.readAll();
    ifile.close();
    baExport = qCompress(baExport, 9);//Сжатие данных - 9-ая степень
    QFile ofile(sNameBackupLibrary);
    ofile.open(QIODevice::WriteOnly);
    ofile.write(baExport);
    ofile.close();
}

void KlenLibrary::slotRestoreLibrary()
{
    QString sNameBackupLibrary = QFileDialog::getOpenFileName(0, tr("Open backup"), "", "*.xwlbz");

    if(sNameBackupLibrary == "") return;

    QFile ifile(sNameBackupLibrary);
    ifile.open(QIODevice::ReadOnly);
    QByteArray baImport;
    baImport = ifile.readAll();
    ifile.close();
    baImport = qUncompress(baImport);//Извлечение данных из архива

    sNameBackupLibrary = QFileDialog::getSaveFileName(0, tr("Restore library"), "", "*.xwlb");

    if(sNameBackupLibrary.indexOf(".xwlb") == -1) sNameBackupLibrary += ".xwlb";
    if(sNameBackupLibrary == "") return;

    QFile ofile(sNameBackupLibrary);
    ofile.open(QIODevice::WriteOnly);
    ofile.write(baImport);
    ofile.close();
}
Несколько изменений:
Цитата
- Добавилась возможность резервировать базу данных библиотеки(со сжатием до 5-ти раз(!));
- Добавлена возможность работы с несколькими библиотеками;
- Добавлена поддержка полного форматирования текста при печати книги;
- Добавлено cжатие(до 5-ти раз(!)) импортированной книги в формате xwb.
- Изменились несколько элементов меню;
Скачать
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
xwicked
  опции профиля:
сообщение 17.2.2012, 21:40
Сообщение #14


Студент
*

Группа: Участник
Сообщений: 66
Регистрация: 2.8.2011
Из: Старый Оскол
Пользователь №: 2781

Спасибо сказали: 0 раз(а)




Репутация:   0  


Здравствуйте! Оптимизирована функция изменения шрифта:
        bool Accept;
        QFont TextFont;
        TextFont = TextQuestion->textCursor().charFormat().font();
        TextFont = QFontDialog::getFont(&Accept, TextFont);

        if(Accept)
        {
            QTextCharFormat tcf;
            tcf.setFont(TextFont);
            TextQuestion->textCursor().setCharFormat(tcf);
            cbFont.setCurrentFont(TextFont);
        }
        else return 1;
и другие изменения.
Скачать
Это последняя версия. В Git создана ветка current теперь, все свежие изменения будут там.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
xwicked
  опции профиля:
сообщение 3.4.2012, 20:10
Сообщение #15


Студент
*

Группа: Участник
Сообщений: 66
Регистрация: 2.8.2011
Из: Старый Оскол
Пользователь №: 2781

Спасибо сказали: 0 раз(а)




Репутация:   0  


Здравствуйте! Новый код. Версия 1.0.0 - это первая версия, в которой можно нормально работать с изображениями. Их количество теперь будет ровно таким, каким и должно быть, не больше.
Повышена безопасность программы перемещением некоторых переменных в секцию private: Теперь доступ к ним осуществляется из методов:
...

int TTextBook::isCountPages() const
{
    return ListPages.count();
}

int TTextBook::isNumberBook() const
{
    return i_NumberBook;
}

void TTextBook::setNumberBook(int iNumberBook)
{
    i_NumberBook = iNumberBook;
}

int TTextBook::isYear() const
{
    return i_Year;
}

void TTextBook::setYear(int iYear)
{
    i_Year = iYear;
    sYear.setNum(iYear);
}

int TTextBook::isCurrentPage() const
{
    return i_CurrentPage;
}

void TTextBook::setCurrentPage(int iCurrentPage)
{
    i_CurrentPage = iCurrentPage;
}

int TTextBook::isModeWork() const
{
    return b_ModeWork;
}

void TTextBook::setModeWork(bool bModeWork)
{
    b_ModeWork = bModeWork;
}

QByteArray TTextBook::isPassword() const
{
    return ba_Password;
}

void TTextBook::setPassword(QByteArray baPassword)
{
    ba_Password = baPassword;
}
...

//Исправлена печать - печатается весь текст :)
void TTextBook::slotPrint()
{
    QPrinter printer;
    QPrintDialog *pPrintDialog = new QPrintDialog(&printer);
    QTextDocument *textDoc = new QTextDocument;
    QString sPrint;

    if(pPrintDialog->exec() == QDialog::Accepted)
    {
        sPrint = makeOneHTML();

        QImage textImage;

        for (int i = 0; i < ListImages.count(); i++)
        {
            textImage.loadFromData(ListImages.at(i));
            textDoc->addResource(QTextDocument::ImageResource, QUrl(slNumberImages.at(i)), textImage);
        }

        textDoc->setHtml(sPrint);
        textDoc->print(&printer);
    }

    delete textDoc;
    delete pPrintDialog;
}
Цитата
- Оптимизирована скорость загрузки книги до 10 раз;
- Исправлена невозможность нормальной работы с изображениями в книге;
- Добавлен экспорт книги в PDF, PostScript, RTF;
- Исправлена печать книги, теперь печатается весь текст;
- Добавлено шифрование файла книги в формате xwb;
- Модуль Шёлковый тест обновился до версии 1.0.0;
- Добавлена возможность проверки наличия новой версии через интернет
Всего 27 изменений. Скачать:
Теперь исходник одним файлом. Вся информация по сборке rpm и deb-пакетов находится внутри.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
xwicked
  опции профиля:
сообщение 2.2.2013, 22:17
Сообщение #16


Студент
*

Группа: Участник
Сообщений: 66
Регистрация: 2.8.2011
Из: Старый Оскол
Пользователь №: 2781

Спасибо сказали: 0 раз(а)




Репутация:   0  


Здравствуйте!

Новая версия. 1.0.5. Тут прошу особо протестировать Mac- и Linux-установщики, так как Linux-пакетов больше нет. Скачать
Цитата("Изменения")
- Исправлена ошибка исчезновения всех изображений, при вставке новой страницы;
- Исправлена ошибка когда, при повторном открытии книги, страницы книг объединялись;
- Исправлена ошибка невозможности создания новой книги из списка книг;
- Добавлен пакетный импорт всех книг из указанной папки в базу библиотеки;
- Добавлено сохранение положений панелей инструментов при выходе из программы;
- Удалена совместимость с базами библиотеки версий 0.1.9 и 0.2.5;
- Из сборки удалён модуль «Шёлковый тест». Его теперь нужно скачивать отдельно;

Благодарю!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V  < 1 2
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.3.2024, 14:12