Update of /home/kde/kdegames/atlantik/libatlantikui In directory office:/tmp/cvs-serv11602/libatlantikui Modified Files: Makefile.am estatedetails.cpp Added Files: kwrappedlistviewitem.cpp kwrappedlistviewitem.h Log Message: Avoid scrollbar by using KWrappedListViewItem. Index: Makefile.am =================================================================== RCS file: /home/kde/kdegames/atlantik/libatlantikui/Makefile.am,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- Makefile.am 10 Feb 2004 19:46:36 -0000 1.9 +++ Makefile.am 12 Oct 2004 18:44:26 -0000 1.10 @@ -3,13 +3,13 @@ libatlantikui_la_LDFLAGS = $(all_libraries) $(KDE_RPATH) -no-undefined -version-info 3:0:2 libatlantikui_la_LIBADD = ../libatlantic/libatlantic.la $(LIB_KIO) -libatlantikui_la_SOURCES = auction_widget.cpp board.cpp \ - estatedetails.cpp estateview.cpp portfolioestate.cpp portfolioview.cpp token.cpp \ - trade_widget.cpp +libatlantikui_la_SOURCES = auction_widget.cpp board.cpp estatedetails.cpp \ + estateview.cpp kwrappedlistviewitem.cpp portfolioestate.cpp \ + portfolioview.cpp token.cpp trade_widget.cpp libatlantikuiincludedir = $(includedir)/atlantik/ui -libatlantikuiinclude_HEADERS = auction_widget.h board.h \ - estatedetails.h estateview.h portfolioestate.h portfolioview.h token.h \ - trade_widget.h +libatlantikuiinclude_HEADERS = auction_widget.h board.h estatedetails.h \ + estateview.h kwrappedlistviewitem.h portfolioestate.h \ + portfolioview.h token.h trade_widget.h METASOURCES = AUTO Index: estatedetails.cpp =================================================================== RCS file: /home/kde/kdegames/atlantik/libatlantikui/estatedetails.cpp,v retrieving revision 1.32 retrieving revision 1.33 diff -u -d -r1.32 -r1.33 --- estatedetails.cpp 24 Jun 2004 11:53:26 -0000 1.32 +++ estatedetails.cpp 12 Oct 2004 18:44:26 -0000 1.33 @@ -37,7 +37,7 @@ #include #include "estatedetails.h" -#include "estatedetails.moc" +#include "kwrappedlistviewitem.h" EstateDetails::EstateDetails(Estate *estate, QString text, QWidget *parent, const char *name) : QWidget(parent, name) { @@ -296,13 +296,14 @@ if ( text.isEmpty() ) return; - QListViewItem *infoText = new QListViewItem(m_infoListView, m_infoListView->lastItem(), text); + KWrappedListViewItem *infoText = new KWrappedListViewItem(m_infoListView, m_infoListView->lastItem(), text); + if ( text.find( QRegExp("rolls") ) != -1 ) infoText->setPixmap(0, QPixmap(SmallIcon("roll"))); else infoText->setPixmap(0, QPixmap(SmallIcon("atlantik"))); - m_infoListView->ensureItemVisible( infoText ); + m_infoListView->ensureItemVisible( infoText ); } void EstateDetails::clearButtons() @@ -322,3 +323,5 @@ { emit buttonCommand(QString(m_buttonCommandMap[(QObject *)QObject::sender()])); } + +#include "estatedetails.moc" --- NEW FILE: kwrappedlistviewitem.cpp --- // Copyright (c) 2004 Rob Kaper . All rights reserved. // // 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 AUTHOR AND CONTRIBUTORS `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 AUTHOR OR CONTRIBUTORS 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 #include #include #include #include #include "kwrappedlistviewitem.h" KWrappedListViewItem::KWrappedListViewItem( QListView *parent, QString text, QString t2 ) : QObject(), KListViewItem( parent ) { init( parent, text, t2 ); } KWrappedListViewItem::KWrappedListViewItem( QListView *parent, QListViewItem *after, QString text, QString t2 ) : QObject(), KListViewItem( parent, after ) { init( parent, text, t2 ); } void KWrappedListViewItem::setup() { widthChanged(); } /* int KWrappedListViewItem::width( const QFontMetrics&, const QListView*, int ) const { return m_wrap->boundingRect().width(); } */ void KWrappedListViewItem::wrapColumn( int c ) { if ( c != m_wrapColumn ) return; QListView *lv = listView(); if ( !lv ) return; QFont font = QFont( KGlobalSettings::generalFont().family(), KGlobalSettings::generalFont().pointSize(), QFont::Normal ); QFontMetrics fm = QFontMetrics( font ); int wrapWidth = lv->width(); for ( int i = 0 ; i < m_wrapColumn ; i++ ) wrapWidth -= ( width(fm, lv, i) + lv->itemMargin() ); if ( pixmap(c) ) wrapWidth -= ( pixmap( c )->width() + lv->itemMargin() ); QScrollBar *scrollBar = lv->verticalScrollBar(); if ( !scrollBar->isHidden() ) wrapWidth -= scrollBar->width(); QRect rect = QRect( 0, 0, wrapWidth - 20, -1 ); KWordWrap *wrap = KWordWrap::formatText( fm, rect, 0, m_origText ); setText( c, wrap->wrappedString() ); int lc = text(c).contains( QChar( '\n' ) ) + 1; setHeight( wrap->boundingRect().height() + lc*lv->itemMargin() ); widthChanged( c ); delete wrap; } void KWrappedListViewItem::init( QListView *parent, QString text, QString t2 ) { m_wrapColumn = 0; setMultiLinesEnabled( true ); parent->setResizeMode( QListView::LastColumn ); m_origText = text; if ( !t2.isNull() ) { setText( 0, text ); m_origText = t2; m_wrapColumn = 1; } else m_origText = text; wrapColumn( m_wrapColumn ); connect( parent->header(), SIGNAL(sizeChange(int, int, int)), this, SLOT(wrapColumn(int))); } #include "kwrappedlistviewitem.moc" --- NEW FILE: kwrappedlistviewitem.h --- // Copyright (c) 2004 Rob Kaper . All rights reserved. // // 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 AUTHOR AND CONTRIBUTORS `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 AUTHOR OR CONTRIBUTORS 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. #ifndef KWRAPPEDLISTVIEWITEM_H #define KWRAPPEDLISTVIEWITEM_H #include #include #include class KWordWrap; class KWrappedListViewItem : public QObject, public KListViewItem { Q_OBJECT public: KWrappedListViewItem( QListView *parent, QString text, QString=QString::null ); KWrappedListViewItem( QListView *parent, QListViewItem *after, QString text, QString=QString::null ); void setup(); // int width(const QFontMetrics& fm, const QListView* lv, int c) const; private slots: void wrapColumn( int c ); private: void init( QListView *parent, QString text, QString=QString::null ); QString m_origText; int m_wrapColumn; }; #endif _______________________________________________ atlantik-cvs mailing list atlantik-cvs@kde.org https://mail.kde.org/mailman/listinfo/atlantik-cvs