You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdevelop/vcs/subversion/svn_blamewidget.cpp

136 lines
3.7 KiB

/*
* Copyright (C) 2007 Dukju Ahn (dukjuahn@gmail.com)
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*/
#include "svn_blamewidget.h"
#include "subversion_widget.h"
#include <tqmap.h>
#include <tqlistview.h>
#include <tqlayout.h>
#include <tqpushbutton.h>
#include <tqstringlist.h>
#include <tqfont.h>
#include <klocale.h>
#include <kmessagebox.h>
SvnBlameWidget::SvnBlameWidget( TQWidget *tqparent, const char* name, bool modal, WFlags f )
:TQWidget( tqparent )
{
m_layout = new TQVBoxLayout( this, 1, 1 );
m_layout->setMargin(1);
m_listView = new TQListView( this );
outView()->setAllColumnsShowFocus( TRUE );
outView()->addColumn( i18n("Line") );
outView()->addColumn( i18n("Rev") );
outView()->addColumn( i18n("Date") );
outView()->addColumn( i18n("Author") );
outView()->addColumn( i18n("Content") );
m_layout->addWidget( m_listView );
}
SvnBlameWidget::~SvnBlameWidget()
{}
void SvnBlameWidget::copyBlameData( TQValueList<SvnBlameHolder> *blamelist )
{
m_blamelist = *blamelist;
}
void SvnBlameWidget::show()
{
outView()->clear();
outView()->setSortColumn(0);
TQFont f = outView()->font();
f.setFixedPitch( true );
outView()->setFont( f );
TQValueList<SvnBlameHolder>::Iterator it;
for( it = m_blamelist.begin(); it != m_blamelist.end(); ++it ){
SvnBlameHolder holder = *it;
SvnIntSortListItem *item = new SvnIntSortListItem(outView());
TQString prettyDate = holder.date.left(16).tqreplace(10, 1, ' ');
item->setText(0, TQString::number( holder.line+1 ) );
item->setText(1, TQString::number(holder.rev) );
item->setText(2, prettyDate );
item->setText(3, holder.author );
item->setText(4, holder.content );
}
outView()->sort();
TQWidget::show();
}
TQListView* SvnBlameWidget::outView()
{
return m_listView;
}
/////////////////////////////////////////////////////////////
SvnBlameFileSelectDlg::SvnBlameFileSelectDlg( TQWidget *tqparent )
: TQDialog( tqparent )
{
m_selected = "";
setCaption( i18n("Select one file to view annotation") );
m_layout = new TQGridLayout( this, 2, 2 );
m_view = new TQListView( this );
m_view->addColumn( i18n("files") );
m_okBtn = new TQPushButton( i18n("OK"), this );
m_cancelBtn = new TQPushButton( i18n("Cancel"), this );
m_layout->addMultiCellWidget( m_view, 0, 0, 0, 1 );
m_layout->addWidget( m_okBtn, 1, 0 );
m_layout->addWidget( m_cancelBtn, 1, 1 );
connect( m_okBtn, TQT_SIGNAL(clicked()), this, TQT_SLOT(accept()) );
connect( m_cancelBtn, TQT_SIGNAL(clicked()), this, TQT_SLOT(reject()) );
}
SvnBlameFileSelectDlg::~SvnBlameFileSelectDlg()
{}
void SvnBlameFileSelectDlg::setCandidate( TQStringList *list )
{
for( TQValueList<TQString>::iterator it = list->begin(); it != list->end(); ++it ){
TQListViewItem *item = new TQListViewItem( m_view, *it );
}
}
TQString SvnBlameFileSelectDlg::selected()
{
return m_selected;
}
void SvnBlameFileSelectDlg::accept()
{
while( true ){
TQListViewItem *item = m_view->currentItem();
if( item ){
m_selected = item->text(0);
break;
}
else{
KMessageBox::error( this, i18n("Select file from list to view annotation") );
}
}
TQDialog::accept();
}
#include "svn_blamewidget.moc"