CWizDocumentListView::CWizDocumentListView(CWizExplorerApp& app, QWidget *parent /*= 0*/) : QListWidget(parent) , m_app(app) , m_dbMgr(app.databaseManager()) , m_tagList(NULL) { setFrameStyle(QFrame::NoFrame); setAttribute(Qt::WA_MacShowFocusRect, false); setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setVerticalScrollMode(QAbstractItemView::ScrollPerPixel); #ifndef Q_OS_MAC // smoothly scroll m_vscrollOldPos = 0; connect(verticalScrollBar(), SIGNAL(valueChanged(int)), SLOT(on_vscroll_valueChanged(int))); connect(verticalScrollBar(), SIGNAL(actionTriggered(int)), SLOT(on_vscroll_actionTriggered(int))); connect(&m_vscrollTimer, SIGNAL(timeout()), SLOT(on_vscroll_update())); #endif //Q_OS_MAC setItemDelegate(new CWizDocumentListViewDelegate(this)); QPalette pal = palette(); pal.setColor(QPalette::Base, WizGetDocumentsBackroundColor(m_app.userSettings().skin())); setPalette(pal); setStyle(::WizGetStyle(m_app.userSettings().skin())); qRegisterMetaType<WIZTAGDATA>("WIZTAGDATA"); qRegisterMetaType<WIZDOCUMENTDATA>("WIZDOCUMENTDATA"); connect(&m_dbMgr, SIGNAL(tagCreated(const WIZTAGDATA&)), \ SLOT(on_tag_created(const WIZTAGDATA&))); connect(&m_dbMgr, SIGNAL(tagModified(const WIZTAGDATA&, const WIZTAGDATA&)), \ SLOT(on_tag_modified(const WIZTAGDATA&, const WIZTAGDATA&))); connect(&m_dbMgr, SIGNAL(documentCreated(const WIZDOCUMENTDATA&)), \ SLOT(on_document_created(const WIZDOCUMENTDATA&))); connect(&m_dbMgr, SIGNAL(documentModified(const WIZDOCUMENTDATA&, const WIZDOCUMENTDATA&)), \ SLOT(on_document_modified(const WIZDOCUMENTDATA&, const WIZDOCUMENTDATA&))); connect(&m_dbMgr, SIGNAL(documentDeleted(const WIZDOCUMENTDATA&)), \ SLOT(on_document_deleted(const WIZDOCUMENTDATA&))); m_thumbCache = new CWizThumbIndexCache(app); qRegisterMetaType<WIZABSTRACT>("WIZABSTRACT"); connect(m_thumbCache, SIGNAL(loaded(const WIZABSTRACT&)), SLOT(on_document_abstractLoaded(const WIZABSTRACT&))); QThread *thread = new QThread(); m_thumbCache->moveToThread(thread); thread->start(); setDragDropMode(QAbstractItemView::DragDrop); setDragEnabled(true); viewport()->setAcceptDrops(true); setSelectionMode(QAbstractItemView::ExtendedSelection); // setup popup menu m_menu = new QMenu(this); m_menu->addAction(WIZACTION_LIST_TAGS, this, SLOT(on_action_selectTags())); m_menu->addSeparator(); m_menu->addAction(WIZACTION_LIST_DELETE, this, SLOT(on_action_deleteDocument())); //m_actionEncryptDocument = new QAction(tr("Encrypt Document"), m_menu); //connect(m_actionEncryptDocument, SIGNAL(triggered()), SLOT(on_action_encryptDocument())); //m_menu->addAction(m_actionEncryptDocument); }
CWizDocumentListView::CWizDocumentListView(CWizExplorerApp& app, QWidget *parent /*= 0*/) : QListWidget(parent) , m_app(app) , m_dbMgr(app.databaseManager()) , m_tagList(NULL) { setFrameStyle(QFrame::NoFrame); setAttribute(Qt::WA_MacShowFocusRect, false); connect(this, SIGNAL(itemSelectionChanged()), SLOT(on_itemSelectionChanged())); // use custom scrollbar setVerticalScrollMode(QAbstractItemView::ScrollPerPixel); setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); m_vScroll = new CWizScrollBar(this); m_vScroll->syncWith(verticalScrollBar()); //QScrollAreaKineticScroller *newScroller = new QScrollAreaKineticScroller(); //newScroller->setWidget(this); //m_kinecticScroll = new QsKineticScroller(this); //m_kinecticScroll->enableKineticScrollFor(this); //#ifndef Q_OS_MAC // smoothly scroll m_vscrollCurrent = 0; m_vscrollOldPos = 0; connect(verticalScrollBar(), SIGNAL(valueChanged(int)), SLOT(on_vscroll_valueChanged(int))); connect(verticalScrollBar(), SIGNAL(actionTriggered(int)), SLOT(on_vscroll_actionTriggered(int))); connect(&m_vscrollTimer, SIGNAL(timeout()), SLOT(on_vscroll_update())); //#endif //Q_OS_MAC setItemDelegate(new CWizDocumentListViewDelegate(this)); // setup background QPalette pal = palette(); pal.setColor(QPalette::Base, QColor(247,247,247)); setPalette(pal); setStyle(::WizGetStyle(m_app.userSettings().skin())); connect(&m_dbMgr, SIGNAL(tagCreated(const WIZTAGDATA&)), \ SLOT(on_tag_created(const WIZTAGDATA&))); connect(&m_dbMgr, SIGNAL(tagModified(const WIZTAGDATA&, const WIZTAGDATA&)), \ SLOT(on_tag_modified(const WIZTAGDATA&, const WIZTAGDATA&))); connect(&m_dbMgr, SIGNAL(documentCreated(const WIZDOCUMENTDATA&)), \ SLOT(on_document_created(const WIZDOCUMENTDATA&))); connect(&m_dbMgr, SIGNAL(documentModified(const WIZDOCUMENTDATA&, const WIZDOCUMENTDATA&)), \ SLOT(on_document_modified(const WIZDOCUMENTDATA&, const WIZDOCUMENTDATA&))); connect(&m_dbMgr, SIGNAL(documentDeleted(const WIZDOCUMENTDATA&)), SLOT(on_document_deleted(const WIZDOCUMENTDATA&))); // message connect(&m_dbMgr.db(), SIGNAL(messageModified(const WIZMESSAGEDATA&, const WIZMESSAGEDATA&)), SLOT(on_message_modified(const WIZMESSAGEDATA&, const WIZMESSAGEDATA&))); connect(&m_dbMgr.db(), SIGNAL(messageDeleted(const WIZMESSAGEDATA&)), SLOT(on_message_deleted(const WIZMESSAGEDATA&))); // thumb cache m_thumbCache = new CWizThumbIndexCache(app); connect(m_thumbCache, SIGNAL(loaded(const WIZABSTRACT&)), SLOT(on_document_abstractLoaded(const WIZABSTRACT&))); QThread *thread = new QThread(); m_thumbCache->moveToThread(thread); thread->start(); // avatar downloader m_avatarDownloader = new CWizUserAvatarDownloaderHost(m_dbMgr.db().GetAvatarPath(), this); connect(m_avatarDownloader, SIGNAL(downloaded(const QString&)), SLOT(on_userAvatar_downloaded(const QString&))); setDragDropMode(QAbstractItemView::DragDrop); setDragEnabled(true); viewport()->setAcceptDrops(true); setSelectionMode(QAbstractItemView::ExtendedSelection); // message context menu m_menuMessage = new QMenu(this); m_menuMessage->addAction(WIZACTION_LIST_MESSAGE_MARK_READ, this, SLOT(on_action_message_mark_read())); m_menuMessage->addAction(WIZACTION_LIST_MESSAGE_DELETE, this, SLOT(on_action_message_delete())); // document context menu m_menuDocument = new QMenu(this); m_menuDocument->addAction(WIZACTION_LIST_TAGS, this, SLOT(on_action_selectTags())); m_menuDocument->addSeparator(); QAction* actionDeleteDoc = m_menuDocument->addAction(WIZACTION_LIST_DELETE, this, SLOT(on_action_deleteDocument()), QKeySequence::Delete); QAction* actionMoveDoc = m_menuDocument->addAction(WIZACTION_LIST_MOVE_DOCUMENT, this, SLOT(on_action_moveDocument()), QKeySequence("Ctrl+Shift+M")); QAction* actionCopyDoc = m_menuDocument->addAction(WIZACTION_LIST_COPY_DOCUMENT, this, SLOT(on_action_copyDocument()), QKeySequence("Ctrl+Shift+C")); // not implement, hide currently. actionCopyDoc->setVisible(false); // Add to widget's actions list addAction(actionDeleteDoc); addAction(actionMoveDoc); addAction(actionCopyDoc); actionDeleteDoc->setShortcutContext(Qt::WidgetWithChildrenShortcut); actionMoveDoc->setShortcutContext(Qt::WidgetWithChildrenShortcut); //actionCopyDoc->setShortcutContext(Qt::WidgetWithChildrenShortcut); //m_actionEncryptDocument = new QAction(tr("Encrypt Document"), m_menu); //connect(m_actionEncryptDocument, SIGNAL(triggered()), SLOT(on_action_encryptDocument())); //m_menu->addAction(m_actionEncryptDocument); }