Exemplo n.º 1
0
bool CWizDatabaseManager::close(const QString& strKbGUID)
{
    // should close all groups db before close user db.
    if (!m_dbGroups.isEmpty()) {
        Q_ASSERT(!strKbGUID.isEmpty());
    }

    bool closed = false;
    QList<CWizDatabase*>::iterator it;
    for (it = m_dbGroups.begin(); it != m_dbGroups.end(); it++) {
        CWizDatabase* db = *it;

        if (db->kbGUID() == strKbGUID) {
            db->Close();
            m_dbGroups.erase(it);
            closed = true;
            break;
        }
    }

    if (!closed && !strKbGUID.isEmpty()) {
        TOLOG("WARNING: nothing closed, guid not found");
        return false;
    }

    Q_EMIT databaseClosed(strKbGUID);
    return true;
}
Exemplo n.º 2
0
    void updateInformation(CWizDatabase& db, const WIZDOCUMENTDATA& doc)
    {
        // retrieve document info and reset
        WIZDOCUMENTDATA data;
        if (!db.DocumentFromGUID(doc.strGUID, data)) {
            return;
        }

        //title
        if (m_titleEdit->text() != data.strTitle) {
            m_titleEdit->setText(data.strTitle);
        }

        //tags
        CWizStdStringArray arrayTagGUID;
        db.GetDocumentTags(data.strGUID, arrayTagGUID);

        QString strTagText = arrayTagGUID.empty() ? QString() : QString::number(arrayTagGUID.size());
        m_tagsButton->setText(strTagText);

        QString tagsShortcut = ::WizGetShortcut("EditNoteTags", "Alt+2");
        QString strTagsToolTip = QObject::tr("Tags (%1)").arg(tagsShortcut);
        m_tagsButton->setToolTip(strTagsToolTip);
        m_tagsButton->setShortcut(QKeySequence::fromString(tagsShortcut));

        //attachments
        int nAttachmentCount = db.GetDocumentAttachmentCount(data.strGUID);
        CString strAttachmentText = nAttachmentCount ? WizIntToStr(nAttachmentCount) : CString();
        m_attachmentButton->setText(strAttachmentText);
        QString attachmentShortcut = ::WizGetShortcut("EditNoteAttachments", "Alt+3");
        m_attachmentButton->setToolTip(QObject::tr("Attachments (%1)").arg(attachmentShortcut));
        m_attachmentButton->setShortcut(QKeySequence::fromString(attachmentShortcut));
    }
bool CWizDatabaseManager::openWithInfo(const QString& strKbGUID, const WIZDATABASEINFO* pInfo)
{
    Q_ASSERT(!m_strUserId.isEmpty());

    if (isOpened(strKbGUID))
        return true;

    CWizDatabase* db = new CWizDatabase();

    if (!db->Open(m_strUserId, strKbGUID)) {
        delete db;
        return false;
    }
    //
    if (pInfo)
    {
        db->InitDatabaseInfo(*pInfo);
    }

    if (strKbGUID.isEmpty()) {
        m_dbPrivate = db;

        // take ownership immediately
        connect(db, SIGNAL(databaseOpened(CWizDatabase*, const QString&)),
                SLOT(on_groupDatabaseOpened(CWizDatabase*, const QString&)),
                Qt::BlockingQueuedConnection);
    } else {
        m_mapGroups[strKbGUID] = db;
    }

    initSignals(db);

    Q_EMIT databaseOpened(strKbGUID);
    return true;
}
Exemplo n.º 4
0
bool CWizLoginDialog::updateUserProfile(bool bLogined)
{
    CWizUserSettings userSettings(userId());

    if(m_checkAutoLogin->checkState() == Qt::Checked) {
        userSettings.setAutoLogin(true);
    } else {
        userSettings.setAutoLogin(false);
    }

    if(m_checkSavePassword->checkState() != Qt::Checked) {
        userSettings.setPassword();
    }

    if (bLogined) {
        if (m_checkSavePassword->checkState() == Qt::Checked)
            userSettings.setPassword(::WizEncryptPassword(password()));

        CWizDatabase db;
        if (!db.Open(userId())) {
            QMessageBox::critical(0, tr("Update user profile"), QObject::tr("Can not open database while update user profile"));
            return false;
        }

        db.SetUserInfo(Token::info());
        db.Close();
    }

    return true;
}
Exemplo n.º 5
0
bool CWizDatabaseManager::open(const QString& strKbGUID)
{
    Q_ASSERT(!m_strUserId.isEmpty());

    CWizDatabase* db = new CWizDatabase();

    bool ret = false;
    if (strKbGUID.isEmpty()) {
        ret = db->openPrivate(m_strUserId, m_strPasswd);
    } else {
        ret = db->openGroup(m_strUserId, strKbGUID);
    }

    if (!ret) {
        delete db;
        return false;
    }

    initSignals(db);

    if (strKbGUID.isEmpty()) {
        m_dbPrivate = db;
    } else {
        m_dbGroups.append(db);
    }

    Q_EMIT databaseOpened(strKbGUID);

    return true;
}
void CWizCategoryViewMessageItem::getMessages(CWizDatabase& db, CWizMessageDataArray& arrayMsg)
{
    if (hitTestUnread() && m_nUnread) {
        db.getUnreadMessages(arrayMsg);
    } else {
        db.getLastestMessages(arrayMsg);
    }
}
Exemplo n.º 7
0
void CWizDatabaseManager::Guids(QStringList& strings)
{
    QList<CWizDatabase*>::const_iterator it;
    for (it = m_dbGroups.begin(); it != m_dbGroups.end(); it++) {
        CWizDatabase* db = *it;
        strings.append(db->kbGUID());
    }
}
bool CWizCategoryViewGroupItem::accept(CWizDatabase& db, const WIZDOCUMENTDATA& data)
{
    if (db.IsInDeletedItems(data.strLocation))
        return false;

    QString strTagGUIDs = db.GetDocumentTagGUIDsString(data.strGUID);
    if (strTagGUIDs.indexOf(m_tag.strGUID) != -1 && data.strKbGUID == kbGUID())
        return true;

    return false;
}
bool CWizCategoryViewGroupNoTagItem::accept(CWizDatabase& db, const WIZDOCUMENTDATA& data)
{
    if (db.IsInDeletedItems(data.strLocation))
        return false;

    QString strTagGUIDs = db.GetDocumentTagGUIDsString(data.strGUID);
    if (strTagGUIDs.isEmpty())
        return true;

    return false;
}
Exemplo n.º 10
0
void CWizDatabaseManager::closeAll()
{
    QList<CWizDatabase*>::iterator it;
    for (it = m_dbGroups.begin(); it != m_dbGroups.end(); it++) {
        CWizDatabase* db = *it;

        close(db->kbGUID());
    }

    // close private db at last
    close();
}
void CWizDocumentListViewItem::reload(CWizDatabase& db)
{
    Q_ASSERT(db.kbGUID() == m_data.doc.strKbGUID);

    m_strTags.clear();
    m_data.thumb = WIZABSTRACT();
    setSortingType(m_nSortingType); // reset info

    db.DocumentFromGUID(m_data.doc.strGUID, m_data.doc);
    setText(m_data.doc.strTitle);

    Q_EMIT thumbnailReloaded();
}
Exemplo n.º 12
0
void CWizUserSettings::set(const QString& strKey, const QString& strValue)
{
    if (!m_strUserId.isEmpty()) {
        CWizDatabase db;
        if (db.openPrivate(m_strUserId, "")) {
            db.SetMeta(USER_SETTINGS_SECTION, strKey, strValue);
        }
    }

    if (m_db) {
        m_db->SetMeta(USER_SETTINGS_SECTION, strKey, strValue);
    }
}
Exemplo n.º 13
0
void CWizUserSettings::setPassword(const QString& strPassword /* = NULL */)
{
    if (!m_strUserId.isEmpty()) {
        CWizDatabase db;
        if (db.openPrivate(m_strUserId, "")) {
            db.SetMeta("Account", "Password", strPassword);
        }
    }

    if (m_db) {
        m_db->SetMeta("Account", "Password", strPassword);
    }
}
void CWizDatabaseManager::closeAll()
{
    qDebug() << "[CWizDatabaseManager] total " << m_mapGroups.size() << " database needed close";

    QList<CWizDatabase*> dbs = m_mapGroups.values();
    for (int i = 0; i < dbs.size(); i++) {
        CWizDatabase* db = dbs.at(i);

        close(db->kbGUID());
    }

    // close private db at last
    close();
}
Exemplo n.º 15
0
QString CWizUserSettings::get(const QString& section, const QString& strKey) const
{
    if (!m_strUserId.isEmpty()) {
        CWizDatabase db;
        if (db.Open(m_strUserId)) {
            return db.GetMetaDef(section, strKey);
        }
    }

    if (m_db) {
        return m_db->GetMetaDef(section, strKey);
    }

    return NULL;
}
Exemplo n.º 16
0
void CWizUserSettings::set(const QString& section, const QString& strKey, const QString& strValue)
{
    if (!m_strUserId.isEmpty()) {
        CWizDatabase db;
        if (db.Open(m_strUserId)) {
            db.SetMeta(section, strKey, strValue);
            return;
        }
    }

    if (m_db) {
        m_db->SetMeta(section, strKey, strValue);
        return;
    }
}
Exemplo n.º 17
0
QString CWizUserSettings::get(const QString& strKey) const
{
    if (!m_strUserId.isEmpty()) {
        CWizDatabase db;
        if (db.openPrivate(m_strUserId, "")) {
            return db.GetMetaDef(USER_SETTINGS_SECTION, strKey);
        }
    }

    if (m_db) {
        return m_db->GetMetaDef(USER_SETTINGS_SECTION, strKey);
    }

    return NULL;
}
Exemplo n.º 18
0
QString CWizUserSettings::password() const
{
    if (!m_strUserId.isEmpty()) {
        CWizDatabase db;
        if (db.openPrivate(m_strUserId, "")) {
            return db.GetMetaDef("Account", "Password");
        }
    }

    if (m_db) {
        return m_db->GetMetaDef("Account", "Password");
    }

    return NULL;
}
Exemplo n.º 19
0
QString CWizUserSettings::password() const
{
    QString strPassword;
    if (!m_strUserId.isEmpty()) {
        CWizDatabase db;
        if (db.Open(m_strUserId)) {
            strPassword = db.GetMetaDef("Account", "Password");
        }
    }

    if (m_db) {
        strPassword = m_db->GetMetaDef("Account", "Password");
    }

    return ::WizDecryptPassword(strPassword);
}
void CWizCategoryViewAllFoldersItem::getDocuments(CWizDatabase& db, CWizDocumentDataArray& arrayDocument)
{
    COleDateTime t = ::WizGetCurrentTime();
    t = t.addDays(-60);

    db.GetRecentDocumentsByCreatedTime(t, arrayDocument);
}
Exemplo n.º 21
0
bool CWizDatabaseManager::isOpened(const QString& strKbGUID)
{
    if (strKbGUID.isEmpty() || m_dbPrivate->kbGUID() == strKbGUID) {
        return true;
    }

    QList<CWizDatabase*>::const_iterator it;
    for (it = m_dbGroups.begin(); it != m_dbGroups.end(); it++) {
        CWizDatabase* db = *it;

        if (db->kbGUID() == strKbGUID) {
            return true;
        }
    }

    return false;
}
bool CWizCategoryViewAllTagsItem::accept(CWizDatabase& db, const WIZDOCUMENTDATA& data)
{
    CString strTagGUIDs = db.GetDocumentTagGUIDsString(data.strGUID);
    if (strTagGUIDs.isEmpty() && data.strKbGUID == kbGUID()) {
        return true;
    }

    return false;
}
Exemplo n.º 23
0
    void reload(CWizDatabase& db)
    {
        db.DocumentFromGUID(m_data.strGUID, m_data);
        m_abstract = WIZABSTRACT();
        m_tags.clear();

        setText("");    //force repaint
        setText(m_data.strTitle);
    }
Exemplo n.º 24
0
    CString tags(CWizDatabase& db)
    {
        if (m_tags.IsEmpty())
        {
            m_tags = db.GetDocumentTagDisplayNameText(m_data.strGUID);
            m_tags = " " + m_tags;
        }

        return m_tags;
    }
bool CWizCategoryViewTagItem::accept(CWizDatabase& db, const WIZDOCUMENTDATA& data)
{
    if (data.strKbGUID == kbGUID()) {
        QString strTagGUIDs = db.GetDocumentTagGUIDsString(data.strGUID);
        if (strTagGUIDs.indexOf(m_tag.strGUID) != -1)
            return true;
    }

    return false;
}
bool CWizCategoryViewGroupRootItem::accept(CWizDatabase& db, const WIZDOCUMENTDATA& data)
{
    if (db.IsInDeletedItems(data.strLocation))
        return false;

    if (data.strKbGUID == kbGUID())
        return true;

    return false;
}
Exemplo n.º 27
0
CWizDatabase& CWizDatabaseManager::db(const QString& strKbGUID)
{
    Q_ASSERT(m_dbPrivate);

    if (strKbGUID.isEmpty() || m_dbPrivate->kbGUID() == strKbGUID) {
        return *m_dbPrivate;
    }

    QList<CWizDatabase*>::const_iterator it;
    for (it = m_dbGroups.begin(); it != m_dbGroups.end(); it++) {
        CWizDatabase* db = *it;

        if (db->kbGUID() == strKbGUID) {
            return *db;
        }
    }

    Q_ASSERT(0);
    return *m_dbPrivate;
}
Exemplo n.º 28
0
bool CWizSearchIndexer::buildFTSIndexByDatabase(CWizDatabase& db)
{
    CWizDocumentDataArray arrayDocuments;

    if (!db.getAllDocumentsNeedToBeSearchIndexed(arrayDocuments))
        return false;

    if (arrayDocuments.empty()) {
        return true;
    }

    bool ret = updateDocuments(arrayDocuments);

    if (ret) {
        db.setDocumentFTSEnabled(true);
        return true;
    } else {
        db.setDocumentFTSEnabled(false);
        return false;
    }
}
bool CWizCategoryViewGroupRootItem::isAdmin(CWizDatabase& db)
{
    if (isBizGroup())
    {
        if (CWizCategoryViewBizGroupRootItem* pBiz = dynamic_cast<CWizCategoryViewBizGroupRootItem *>(parent()))
        {
            if (pBiz->isAdmin())
                return true;
        }
    }
    //
    return db.IsGroupAdmin();
}
bool CWizCategoryViewAllFoldersItem::accept(CWizDatabase& db, const WIZDOCUMENTDATA& data)
{
    if (db.IsInDeletedItems(data.strLocation)) {
        return false;
    }

    COleDateTime t = data.tCreated;
    if (t.addDays(60) >= WizGetCurrentTime() && data.strKbGUID == kbGUID()) {
        return true;
    }

    return false;
}