historypage.cpp

来自「linux下的sourceinsight」· C++ 代码 · 共 125 行

CPP
125
字号
/*************************************************************************** * * Copyright (C) 2005 Elad Lahav (elad_lahav@users.sourceforge.net) * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: *  * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. *  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ***************************************************************************/#include <klocale.h>#include "historypage.h"#include "historyview.h"int HistoryPage::s_nMaxPageID = 0;/** * Class constructor. * @param	pParent	The parent widget * @param	szName	The widget's name */HistoryPage::HistoryPage(QWidget* pParent, const char* szName) :	QueryPageBase(pParent, szName),	m_nPageID(++s_nMaxPageID){	m_pView = new HistoryView(this);		connect(m_pView, SIGNAL(lineRequested(const QString&, uint)), this,		SIGNAL(lineRequested(const QString&, uint)));		// Set colours and font	applyPrefs();}/** * Class destructor. */HistoryPage::~HistoryPage(){	if (s_nMaxPageID == m_nPageID)		s_nMaxPageID--;}/** * Creates a new position history record at the top of the list. * @param	sFile	The file name associated with the record * @param	nLine	The line number * @param	sText	The text of the file at the given line */void HistoryPage::addRecord(const QString& sFile, uint nLine, 	const QString& sText){	HistoryItem* pItem, * pNextItem;		pItem = (HistoryItem*)m_pView->currentItem();	if (pItem != NULL) {		// Do not add duplicate items		if ((pItem->text(1) == sFile) && (pItem->text(2).toUInt() == nLine))			return;					// Remove all items above the current one, so the new item is added to		// the top of the list		pItem = pItem->m_pPrevSibling;		while (pItem != NULL) {			pNextItem = pItem;			pItem = pItem->m_pPrevSibling;			delete pNextItem;		}	}		// Create the new item at the top of the list	m_pView->addRecord("", sFile, QString::number(nLine), sText, NULL);}/** * Creates a new history item. * This version is used when history records are read from a file. * @param	sFile	The file name * @param	sLine	The line number * @param	sText	The contents of the line */void HistoryPage::addRecord(const QString&, const QString& sFile,	const QString& sLine, const QString& sText){	m_pView->addRecord("", sFile, sLine, sText, NULL);}/** * Creates a tab caption for this page, based on the unique page ID. * @param	bBrief	true to use brief caption names, false otherwise */QString HistoryPage::getCaption(bool bBrief) const{	return (bBrief ? QString(i18n("HIS ")) : QString(i18n("History "))) +		QString::number(m_nPageID);}/** * Creates a unique file name for saving the contents of the history page. * @return	The unique file name to use */QString HistoryPage::getFileName(const QString&) const{	return QString("History_") + QString::number(m_nPageID);}#include "historypage.moc"

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?