CWizDocumentSelectionView::CWizDocumentSelectionView(CWizExplorerApp& app, QWidget *parent) : m_app(app) , m_dbMgr(app.databaseManager()) , QWidget(parent) { MainWindow* mainWindow = qobject_cast<MainWindow*>(app.mainWindow()); CWizDocumentListView* listView = qobject_cast<CWizDocumentListView*>(mainWindow->DocumentsCtrl()); m_thumbCache = listView->thumbCache(); connect(m_thumbCache, SIGNAL(loaded(const WIZABSTRACT&)), SLOT(on_thumbCache_loaded(const WIZABSTRACT&))); QVBoxLayout* layout = new QVBoxLayout(); setLayout(layout); QGraphicsScene* scene = new QGraphicsScene(this); scene->setItemIndexMethod(QGraphicsScene::NoIndex); //scene->setSceneRect(-100, -100, 500, 500); m_graphicsView = new QGraphicsView(scene, this); m_graphicsView->setBackgroundBrush(WizGetLeftViewBrush()); m_graphicsView->setViewportUpdateMode(QGraphicsView::BoundingRectViewportUpdate); layout->addWidget(m_graphicsView); }
CWizDocumentView::CWizDocumentView(CWizExplorerApp& app, QWidget* parent) : INoteView(parent) , m_app(app) , m_dbMgr(app.databaseManager()) , m_userSettings(app.userSettings()) #ifdef USEWEBENGINE , m_web(new CWizDocumentWebEngine(app, this)) , m_comments(new QWebEngineView(this)) #else , m_web(new CWizDocumentWebView(app, this)) , m_commentWidget(new CWizLocalProgressWebView(app.mainWindow())) #endif , m_title(new TitleBar(app, this)) , m_passwordView(new CWizUserCipherForm(app, this)) , m_viewMode(app.userSettings().noteViewMode()) , m_transitionView(new CWizDocumentTransitionView(this)) , m_bLocked(false) , m_bEditingMode(false) , m_noteLoaded(false) , m_editStatusSyncThread(new CWizDocumentEditStatusSyncThread(this)) //, m_editStatusCheckThread(new CWizDocumentStatusCheckThread(this)) , m_editStatus(0) , m_sizeHint(QSize(200, 1)) { m_title->setEditor(m_web); QVBoxLayout* layoutDoc = new QVBoxLayout(); layoutDoc->setContentsMargins(0, 0, 0, 0); layoutDoc->setSpacing(0); m_docView = new QWidget(this); m_docView->setLayout(layoutDoc); m_tab = new QStackedWidget(this); // m_passwordView->setGeometry(this->geometry()); connect(m_passwordView, SIGNAL(cipherCheckRequest()), SLOT(onCipherCheckRequest())); // m_msgWidget = new QWidget(this); QVBoxLayout* layoutMsg = new QVBoxLayout(); m_msgWidget->setLayout(layoutMsg); m_msgLabel = new QLabel(m_msgWidget); m_msgLabel->setAlignment(Qt::AlignCenter); m_msgLabel->setWordWrap(true); layoutMsg->addWidget(m_msgLabel); // m_tab->addWidget(m_docView); m_tab->addWidget(m_passwordView); m_tab->addWidget(m_msgWidget); m_tab->setCurrentWidget(m_docView); m_web->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); m_comments = m_commentWidget->web(); QWebPage *commentPage = new QWebPage(m_comments); commentPage->setLinkDelegationPolicy(QWebPage::DelegateAllLinks); m_comments->setPage(commentPage); m_comments->history()->setMaximumItemCount(0); m_comments->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks); m_comments->settings()->globalSettings()->setAttribute(QWebSettings::LocalStorageEnabled, true); m_comments->settings()->globalSettings()->setAttribute(QWebSettings::LocalStorageDatabaseEnabled, true); m_comments->page()->mainFrame()->setScrollBarPolicy(Qt::Horizontal, Qt::ScrollBarAlwaysOff); m_comments->setAcceptDrops(false); connect(m_comments, SIGNAL(loadFinished(bool)), m_title, SLOT(onCommentPageLoaded(bool))); connect(m_comments, SIGNAL(linkClicked(QUrl)), m_web, SLOT(onEditorLinkClicked(QUrl))); connect(m_comments->page()->mainFrame(), SIGNAL(javaScriptWindowObjectCleared()), SLOT(on_comment_populateJavaScriptWindowObject())); connect(m_commentWidget, SIGNAL(widgetStatusChanged()), SLOT(on_commentWidget_statusChanged())); m_commentWidget->hide(); QWidget* wgtEditor = new QWidget(m_docView); QVBoxLayout* layoutEditor = new QVBoxLayout(wgtEditor); layoutEditor->setSpacing(0); layoutEditor->setContentsMargins(0, 5, 0, 0); layoutEditor->addWidget(m_title); layoutEditor->addWidget(m_web); layoutEditor->setStretchFactor(m_title, 0); layoutEditor->setStretchFactor(m_web, 1); m_splitter = new CWizSplitter(this); m_splitter->addWidget(wgtEditor); m_splitter->addWidget(m_commentWidget); m_splitter->setOrientation(Qt::Horizontal); layoutDoc->addWidget(m_splitter); // layoutDoc->setStretchFactor(m_title, 0); // layoutDoc->setStretchFactor(m_splitter, 1); #ifdef USEWEBENGINE QLineEdit *commandLine = new QLineEdit(this); layoutDoc->addWidget(commandLine); connect(commandLine, SIGNAL(returnPressed()), SLOT(on_command_request())); #endif QVBoxLayout* layoutMain = new QVBoxLayout(this); layoutMain->setContentsMargins(0, 0, 0, 0); setLayout(layoutMain); layoutMain->addWidget(m_tab); // layoutMain->addWidget(m_transitionView); m_transitionView->hide(); MainWindow* mainWindow = qobject_cast<MainWindow *>(m_app.mainWindow()); m_downloaderHost = mainWindow->downloaderHost(); connect(m_downloaderHost, SIGNAL(downloadDone(const WIZOBJECTDATA&, bool)), SLOT(on_download_finished(const WIZOBJECTDATA&, bool))); connect(&m_dbMgr, SIGNAL(documentModified(const WIZDOCUMENTDATA&, const WIZDOCUMENTDATA&)), \ SLOT(on_document_modified(const WIZDOCUMENTDATA&, const WIZDOCUMENTDATA&))); connect(&m_dbMgr, SIGNAL(documentDataModified(const WIZDOCUMENTDATA&)), SLOT(on_document_data_modified(const WIZDOCUMENTDATA&))); connect(&m_dbMgr, SIGNAL(attachmentCreated(const WIZDOCUMENTATTACHMENTDATA&)), \ SLOT(on_attachment_created(const WIZDOCUMENTATTACHMENTDATA&))); connect(&m_dbMgr, SIGNAL(attachmentDeleted(const WIZDOCUMENTATTACHMENTDATA&)), \ SLOT(on_attachment_deleted(const WIZDOCUMENTATTACHMENTDATA&))); connect(&m_dbMgr, SIGNAL(documentUploaded(QString,QString)), \ m_editStatusSyncThread, SLOT(documentUploaded(QString,QString))); connect(Core::ICore::instance(), SIGNAL(viewNoteRequested(Core::INoteView*,const WIZDOCUMENTDATA&)), SLOT(onViewNoteRequested(Core::INoteView*,const WIZDOCUMENTDATA&))); connect(Core::ICore::instance(), SIGNAL(viewNoteLoaded(Core::INoteView*,WIZDOCUMENTDATA,bool)), SLOT(onViewNoteLoaded(Core::INoteView*,const WIZDOCUMENTDATA&,bool))); connect(Core::ICore::instance(), SIGNAL(closeNoteRequested(Core::INoteView*)), SLOT(onCloseNoteRequested(Core::INoteView*))); connect(m_web, SIGNAL(focusIn()), SLOT(on_webView_focus_changed())); connect(m_title, SIGNAL(notifyBar_link_clicked(QString)), SLOT(on_notifyBar_link_clicked(QString))); connect(m_title, SIGNAL(loadComment_request(QString)), SLOT(on_loadComment_request(QString)), Qt::QueuedConnection); // connect(m_editStatusCheckThread, SIGNAL(checkFinished(QString,QStringList)), // SLOT(on_checkEditStatus_finished(QString,QStringList))); // connect(m_editStatusCheckThread, SIGNAL(checkDocumentChangedFinished(QString,bool)), // SLOT(on_checkDocumentChanged_finished(QString,bool))); // connect(m_editStatusCheckThread, SIGNAL(checkTimeOut(QString)), // SLOT(on_checkEditStatus_timeout(QString))); // m_editStatusSyncThread->start(QThread::IdlePriority); // m_editStatusCheckThread->start(QThread::IdlePriority); m_editStatusChecker = new CWizDocumentStatusChecker(); connect(this, SIGNAL(checkDocumentEditStatusRequest(QString,QString)), m_editStatusChecker, SLOT(checkEditStatus(QString,QString))); connect(this, SIGNAL(stopCheckDocumentEditStatusRequest(QString,QString)), m_editStatusChecker, SLOT(stopCheckStatus(QString,QString))); connect(m_editStatusChecker, SIGNAL(checkEditStatusFinished(QString,bool)), \ SLOT(on_checkEditStatus_finished(QString,bool))); connect(m_editStatusChecker, SIGNAL(checkTimeOut(QString)), \ SLOT(on_checkEditStatus_timeout(QString))); connect(m_editStatusChecker, SIGNAL(documentEditingByOthers(QString,QStringList)), \ SLOT(on_documentEditingByOthers(QString,QStringList))); connect(m_editStatusChecker, SIGNAL(checkDocumentChangedFinished(QString,bool)), \ SLOT(on_checkDocumentChanged_finished(QString,bool))); QThread* checkThread = new QThread(this); connect(checkThread, SIGNAL(started()), m_editStatusChecker, SLOT(initialise())); connect(checkThread, SIGNAL(finished()), m_editStatusChecker, SLOT(clearTimers())); m_editStatusChecker->moveToThread(checkThread); checkThread->start(); }