WizNoteInfoForm::WizNoteInfoForm(QWidget *parent)
    : WizPopupWidget(parent)
    , ui(new Ui::WizNoteInfoForm)
    , m_size(QSize(370, 370))
{
    //
    ui->setupUi(this);
    setContentsMargins(0, 8, 0, 0);

    ui->editCreateTime->setReadOnly(true);
    ui->editUpdateTime->setReadOnly(true);
    ui->editAccessTime->setReadOnly(true);
//    ui->editURL->setReadOnly(true);
//    ui->editAuthor->setReadOnly(true);
//    ui->checkEncrypted->setEnabled(false);

    QString openDocument = formatLabelLink("locate", tr("Locate"));
    ui->labelOpenDocument->setText(openDocument);
    QString versionHistory = formatLabelLink("history", tr("Click to view version history"));
    ui->labelHistory->setText(versionHistory);
    //
    if (isDarkMode()) {

        if (isDarkMode()) {
    #ifdef Q_OS_MAC
            setStyleSheet("background-color:#272727; border-radius:4px;");
    #else
            setStyleSheet("background-color:#444444; border-radius:4px;");
    #endif
            ui->editURL->setStyleSheet("background-color:#333333");
            ui->editAuthor->setStyleSheet("background-color:#333333");
        }



    } else {
        setStyleSheet("background-color:#FFFFFF; border-radius:4px;");
    }

    if (isDarkMode()) {
        WizApplyDarkModeStyles(this);
    }
}
CWizNoteInfoForm::CWizNoteInfoForm(QWidget *parent)
    : CWizPopupWidget(parent)
    , ui(new Ui::CWizNoteInfoForm)
    , m_size(QSize(370, 370))
{
    ui->setupUi(this);
    setContentsMargins(0, 8, 0, 0);

    ui->editCreateTime->setReadOnly(true);
    ui->editUpdateTime->setReadOnly(true);
    ui->editAccessTime->setReadOnly(true);
//    ui->editURL->setReadOnly(true);
//    ui->editAuthor->setReadOnly(true);
//    ui->checkEncrypted->setEnabled(false);

    QString openDocument = formatLabelLink("locate", tr("Locate"));
    ui->labelOpenDocument->setText(openDocument);
    QString versionHistory = formatLabelLink("history", tr("Click to view version history"));
    ui->labelHistory->setText(versionHistory);
}
void WizNoteInfoForm::setDocument(const WIZDOCUMENTDATA& data)
{
    Q_ASSERT(!data.strKbGUID.isEmpty());
    m_docKbGuid = data.strKbGUID;
    m_docGuid = data.strGUID;

    WizDatabase& db = WizDatabaseManager::instance()->db(data.strKbGUID);
    m_size.setHeight(db.isGroup() ? 320 : 370);
    setGroupLabelVisible(db.isGroup());
    QString doc = db.getDocumentFileName(data.strGUID);
    QString sz = ::WizGetFileSizeHumanReadalbe(doc);
    m_sizeText = sz;

    QFont font;
    QFontMetrics fm(font);
    const int nMaxTextWidth = 280;
    QString strLocation = db.getDocumentLocation(data);
    // private document
    if (data.strKbGUID == WizDatabaseManager::instance()->db().kbGUID()) {
        QString tags = db.getDocumentTagsText(data.strGUID);
        tags = fm.elidedText(tags, Qt::ElideMiddle, nMaxTextWidth);
        ui->labelTags->setText(tags);

        ui->editAuthor->setText(data.strAuthor);

    // group document
    } else {        
        ui->labelTags->clear();
        ui->editAuthor->setText(data.strAuthor);
    }

    strLocation = fm.elidedText(strLocation, Qt::ElideMiddle, nMaxTextWidth);
    ui->labelNotebook->setText(strLocation);

    QString userAlias = db.getDocumentOwnerAlias(data);
    ui->labelOwner->setText(userAlias);

    // common fields
    ui->editCreateTime->setText(data.tCreated.toString());
    ui->editUpdateTime->setText(data.tDataModified.toString());
    ui->editAccessTime->setText(data.tAccessed.toString());
    ui->editURL->setText(data.strURL);
    QString text = data.strURL.isEmpty() ? "" : formatLabelLink(data.strURL, tr("Open"));
    ui->labelOpenURL->setText(text);
    ui->labelSize->setText(sz);
    ui->checkEncrypted->setChecked(data.nProtected ? true : false);

    bool canEdit = (db.canEditDocument(data) && !WizDatabase::isInDeletedItems(data.strLocation));
    ui->editAuthor->setReadOnly(!canEdit);
    ui->editURL->setReadOnly(!canEdit);
    ui->checkEncrypted->setEnabled(canEdit && !db.isGroup());
}