Beispiel #1
0
QString FileUtils::computeDocumentPath(const QString& originalPath) {
    // If the filename is relative, turn it into an absolute path relative to the document directory.
    QString path = originalPath;
    QFileInfo originalFileInfo(originalPath);
    if (originalFileInfo.isRelative()) {
        QString docsLocation = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation);
        path = docsLocation + "/" + originalPath;
    }
    return path;
}
Beispiel #2
0
RecoveryDialog::RecoveryDialog(QFileInfoList fileInfoList, QWidget *parent, Qt::WindowFlags flags) : QDialog(parent, flags)
{
    m_recoveryList = new CenteredTreeWidget(this);
    m_recoveryList->setColumnCount(3);
    m_recoveryList->setSelectionMode(QAbstractItemView::ExtendedSelection);
    m_recoveryList->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
    m_recoveryList->setSortingEnabled(false);
    m_recoveryList->setDragEnabled(false);
    m_recoveryList->setUniformRowHeights(true); // Small optimization
    m_recoveryList->setIconSize(QSize(0,0));
    m_recoveryList->setRootIsDecorated(false);

    QStringList headerLabels;
    headerLabels << tr("File") << tr("Last backup") << tr("Last saved");
    m_recoveryList->setHeaderLabels(headerLabels);
    m_recoveryList->header()->setDefaultAlignment(Qt::AlignCenter);
    m_recoveryList->header()->setDragEnabled(false);
    m_recoveryList->header()->setDragDropMode(QAbstractItemView::NoDragDrop);
    m_recoveryList->header()->setResizeMode(QHeaderView::ResizeToContents);
    m_recoveryList->header()->setMovable(false);

    connect(m_recoveryList, SIGNAL(itemSelectionChanged()), this, SLOT(updateRecoverButton()));

    QTreeWidgetItem *item;
    foreach (QFileInfo fileInfo, fileInfoList) {
        item = new QTreeWidgetItem;
        QString originalFileName = getOriginalFileName(fileInfo.absoluteFilePath());
        DebugDialog::debug(QString("Creating option for recoveryDialog file %1").arg(originalFileName));
        QFileInfo originalFileInfo(originalFileName);
        item->setData(0, Qt::UserRole, fileInfo.absoluteFilePath());
        if (originalFileInfo.exists()) {
            item->setText(0, originalFileInfo.fileName());
            item->setToolTip(0, originalFileInfo.absoluteFilePath());
            item->setData(1, Qt::UserRole, originalFileInfo.absoluteFilePath());
            item->setText(2, originalFileInfo.lastModified().toString());
        }
        else {
            item->setText(0, originalFileName);
            item->setText(2, tr("file not saved"));
            item->setData(1, Qt::UserRole, originalFileName);
        }
        item->setText(1, fileInfo.lastModified().toString());
        DebugDialog::debug(QString("Displaying recoveryDialog text %1 and data %2").arg(item->text(0)).arg(item->data(0,Qt::UserRole).value<QString>()));
        m_recoveryList->addTopLevelItem(item);
        m_fileList << item;
    }