Exemplo n.º 1
0
bool ComicModel::open(const QString &fileUrl)
{
    if (m_currentFilename != "") {
        close();
    }
    QUrl url(fileUrl);
    std::shared_ptr<QuaZip> zip(new QuaZip(url.toLocalFile()));
    zip->setFileNameCodec("Shift-JIS");
    bool result = zip->open(QuaZip::mdUnzip);
    if (result) {
        int pageCount;
        if (parseZip("", zip, pageCount)) {
            setErrorMessage();
            addRecentFile(url.toLocalFile());
            m_currentFilename = url.toLocalFile();
            emit currentFilenameChanged(m_currentFilename);
            emit maxPageChanged(m_list.size());
            QSettings settings;
            QString key = QString(RECENTPAGE_KEY).arg(m_currentFilename);
            int page = settings.value(key, 1).toInt();
            setCurrentPage(page);
        } else {
            setErrorMessage("zip file is empty.");
        }
    } else {
        setErrorMessage("open file error.");
    }
    return result;
}
Exemplo n.º 2
0
void Document::setCurrentFilename(const QString &filename)
{
	if(m_currentFilename != filename) {
		m_currentFilename = filename;
		emit currentFilenameChanged(filename);

		bool couldAutosave = m_canAutosave;
		m_canAutosave = utils::isWritableFormat(m_currentFilename);
		if(couldAutosave != m_canAutosave)
			emit canAutosaveChanged(m_canAutosave);

		if(!canAutosave())
			setAutosave(false);
	}
}
Exemplo n.º 3
0
void ComicModel::close()
{
    if (m_currentFilename != "") {
        // 読んでいたページの保存。削除がないので、recent_fileを消すときに一緒に消した方が良いかも
        QSettings settings;
        QString key = QString(RECENTPAGE_KEY).arg(m_currentFilename);
        settings.setValue(key, m_currentPage);
    }
    m_list.clear();
    m_buffers.clear();
    emit maxPageChanged(m_list.size());
    m_currentPage = 0;
    emit currentPageChanged(m_currentPage);
    m_currentFilename = "";
    emit currentFilenameChanged(m_currentFilename);
}