// Gets the height of the specified view. // nTab and nView are zero-based, nHeight is in % int BDataViews::GetViewHeight(int nTab, int nView) { ASSERT(nTab < GetTabCount()); ASSERT(nView < GetViewCount(nTab)); int nIndex = GetTabIndex(nTab) + nView; return m_avi[nIndex].m_lngViewHeight; }
// Sets the height of the specified view. // nTab and nView are zero-based, nHeight is in % BOOL BDataViews::SetViewHeight(int nTab, int nView, int nHeight) { ASSERT(nTab < GetTabCount()); ASSERT(nView < GetViewCount(nTab)); int nIndex = GetTabIndex(nTab) + nView; m_avi[nIndex].m_lngViewHeight = nHeight; return TRUE; }
void WidgetBase::ForAllHiddenViews (boost::function <void (ViewNumber::Enum)> f) { for (int i = GetViewCount (); i < ViewNumber::COUNT; ++i) { ViewNumber::Enum viewNumber = ViewNumber::FromSizeT (i); if (CALL_MEMBER (*this, m_isView)(viewNumber)) f (viewNumber); } }
void WidgetBase::ForAllViews (boost::function <void (ViewNumber::Enum)> f) { for (size_t i = 0; i < GetViewCount (); ++i) { ViewNumber::Enum viewNumber = ViewNumber::FromSizeT (i); if (CALL_MEMBER (*this, m_isView)(viewNumber)) f (viewNumber); } }
void CBottomView::UseViewFile(CBaseView * pwndView) { if (!IsViewGood(pwndView)) return; int nFirstViewLine = 0; int nLastViewLine = GetViewCount()-1; return UseBlock(pwndView, nFirstViewLine, nLastViewLine); }
void WidgetBase::addCopyMenu ( QMenu* menu, const char* nameOp, const boost::shared_ptr<QAction>* actionCopyOp) const { QMenu* menuOp = menu->addMenu (nameOp); if (GetViewCount () > 1) { for (size_t i = 0; i < GetViewCount (); ++i) { ViewNumber::Enum viewNumber = ViewNumber::Enum (i); if (viewNumber == GetViewNumber ()) continue; menuOp->addAction (actionCopyOp[i].get ()); } } if (GetViewCount () == 1) menuOp->setDisabled (true); }
void CLeftView::UseRightFile() { int nFirstViewLine = 0; int nLastViewLine = GetViewCount()-1; if (!IsWritable()) return; ClearSelection(); return UseViewBlock(m_pwndRight, nFirstViewLine, nLastViewLine); }
void CBottomView::UseBlock(CBaseView * pwndView, int nFirstViewLine, int nLastViewLine) { if (!IsViewGood(pwndView)) return; CUndo::GetInstance().BeginGrouping(); // start group undo for (int viewLine = nFirstViewLine; viewLine <= nLastViewLine; viewLine++) { viewdata lineData = pwndView->GetViewData(viewLine); if ((lineData.ending != EOL_NOENDING)||(viewLine < (GetViewCount()-1))) lineData.ending = m_lineendings; lineData.state = ResolveState(lineData.state); SetViewData(viewLine, lineData); SetModified(); } // make sure previous (non empty) line have EOL set for (int nCheckViewLine = nFirstViewLine-1; nCheckViewLine > 0; nCheckViewLine--) { if (!IsViewLineEmpty(nCheckViewLine)) { if (GetViewLineEnding(nCheckViewLine) == EOL_NOENDING) { SetViewLineEnding(nCheckViewLine, m_lineendings); SetModified(); } break; } } int nRemovedLines = CleanEmptyLines(); SaveUndoStep(); UpdateViewLineNumbers(); SaveUndoStep(); CUndo::GetInstance().EndGrouping(); // final clean up ClearSelection(); SetupAllViewSelection(nFirstViewLine, nLastViewLine - nRemovedLines); BuildAllScreen2ViewVector(); RefreshViews(); }
void CBottomView::UseBothBlocks(CBaseView * pwndFirst, CBaseView * pwndLast) { if (!IsViewGood(pwndFirst) || !IsViewGood(pwndLast)) return; int nFirstViewLine = 0; // first view line in selection int nLastViewLine = 0; // last view line in selection if (!GetViewSelection(nFirstViewLine, nLastViewLine)) return; int nNextViewLine = nLastViewLine + 1; // first view line after selected block CUndo::GetInstance().BeginGrouping(); // start group undo // use (copy) first block for (int viewLine = nFirstViewLine; viewLine <= nLastViewLine; viewLine++) { viewdata lineData = pwndFirst->GetViewData(viewLine); if ((lineData.ending != EOL_NOENDING)||(viewLine < (GetViewCount()-1))) lineData.ending = m_lineendings; lineData.state = ResolveState(lineData.state); SetViewData(viewLine, lineData); if (!IsStateEmpty(pwndFirst->GetViewState(viewLine))) { pwndFirst->SetViewState(viewLine, DIFFSTATE_YOURSADDED); // this is improper (may be DIFFSTATE_THEIRSADDED) but seems not to produce any visible bug } } // make sure previous (non empty) line have EOL set for (int nCheckViewLine = nFirstViewLine-1; nCheckViewLine > 0; nCheckViewLine--) { if (!IsViewLineEmpty(nCheckViewLine)) { if (GetViewLineEnding(nCheckViewLine) == EOL_NOENDING) { SetViewLineEnding(nCheckViewLine, m_lineendings); } break; } } SaveUndoStep(); // use (insert) last block int nViewIndex = nNextViewLine; for (int viewLine = nFirstViewLine; viewLine <= nLastViewLine; viewLine++, nViewIndex++) { viewdata lineData = pwndLast->GetViewData(viewLine); lineData.state = ResolveState(lineData.state); InsertViewData(nViewIndex, lineData); if (!IsStateEmpty(pwndLast->GetViewState(viewLine))) { pwndLast->SetViewState(viewLine, DIFFSTATE_THEIRSADDED); // this is improper but seems not to produce any visible bug } } SaveUndoStep(); // adjust line numbers in target // we fix all line numbers to handle exotic cases UpdateViewLineNumbers(); SaveUndoStep(); // now insert an empty block in both first and last int nCount = nLastViewLine - nFirstViewLine + 1; pwndLast->InsertViewEmptyLines(nFirstViewLine, nCount); pwndFirst->InsertViewEmptyLines(nNextViewLine, nCount); SaveUndoStep(); int nRemovedLines = CleanEmptyLines(); SaveUndoStep(); CUndo::GetInstance().EndGrouping(); // final clean up ClearSelection(); SetupAllViewSelection(nFirstViewLine, 2*nLastViewLine - nFirstViewLine - nRemovedLines + 1); BuildAllScreen2ViewVector(); SetModified(); RefreshViews(); }