summaryrefslogtreecommitdiffstats
path: root/kdevdesigner/designer/listvieweditorimpl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kdevdesigner/designer/listvieweditorimpl.cpp')
-rw-r--r--kdevdesigner/designer/listvieweditorimpl.cpp650
1 files changed, 0 insertions, 650 deletions
diff --git a/kdevdesigner/designer/listvieweditorimpl.cpp b/kdevdesigner/designer/listvieweditorimpl.cpp
deleted file mode 100644
index c5ec7498..00000000
--- a/kdevdesigner/designer/listvieweditorimpl.cpp
+++ /dev/null
@@ -1,650 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2000 Trolltech AS. All rights reserved.
-**
-** This file is part of TQt Designer.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** Licensees holding valid TQt Enterprise Edition or TQt Professional Edition
-** licenses may use this file in accordance with the TQt Commercial License
-** Agreement provided with the Software.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
-** information about TQt Commercial License Agreements.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-
-#include "formwindow.h"
-#include "mainwindow.h"
-#include "listvieweditorimpl.h"
-#include "pixmapchooser.h"
-#include "command.h"
-#include "listviewdnd.h"
-#include "listboxdnd.h"
-#include "listboxrename.h"
-
-#include <tqlistview.h>
-#include <tqheader.h>
-#include <tqlistbox.h>
-#include <tqlineedit.h>
-#include <tqcheckbox.h>
-#include <tqlabel.h>
-#include <tqtabwidget.h>
-#include <tqspinbox.h>
-#include <tqpushbutton.h>
-#include <tqptrstack.h>
-
-#include <tdelocale.h>
-
-ListViewEditor::ListViewEditor( TQWidget *parent, TQListView *lv, FormWindow *fw )
- : ListViewEditorBase( parent, 0, TRUE ), listview( lv ), formwindow( fw )
-{
- connect( helpButton, TQT_SIGNAL( clicked() ), MainWindow::self, TQT_SLOT( showDialogHelp() ) );
- itemText->setEnabled( FALSE );
- itemChoosePixmap->setEnabled( FALSE );
- itemDeletePixmap->setEnabled( FALSE );
- itemColumn->setEnabled( FALSE );
-
- setupColumns();
- PopulateListViewCommand::transferItems( listview, itemsPreview );
- setupItems();
-
- itemsPreview->setShowSortIndicator( listview->showSortIndicator() );
- itemsPreview->setAllColumnsShowFocus( listview->allColumnsShowFocus() );
- itemsPreview->setRootIsDecorated( listview->rootIsDecorated() );
-
- if ( itemsPreview->firstChild() ) {
- itemsPreview->setCurrentItem( itemsPreview->firstChild() );
- itemsPreview->setSelected( itemsPreview->firstChild(), TRUE );
- }
-
- // Clamp on drag and drop to TQListView
- ListViewDnd *itemsDnd = new ListViewDnd( itemsPreview );
- itemsDnd->setDragMode( ListViewDnd::Internal | ListViewDnd::Move );
- TQObject::connect( itemsDnd, TQT_SIGNAL( dropped( TQListViewItem * ) ),
- itemsDnd, TQT_SLOT( confirmDrop( TQListViewItem * ) ) );
-
- // Enable rename for all TQListViewItems
- TQListViewItemIterator it = ((TQListView *)itemsPreview)->firstChild();
- for ( ; *it; it++ )
- (*it)->setRenameEnabled( 0, TRUE );
-
- // Connect listview signal to signal-relay
- TQObject::connect( itemsPreview,
- TQT_SIGNAL( itemRenamed( TQListViewItem*, int, const TQString & ) ),
- this,
- TQT_SLOT( emitItemRenamed(TQListViewItem*, int, const TQString&) ) );
-
- // Connect signal-relay to TQLineEdit "itemText"
- TQObjectList *l = parent->queryList( TQLINEEDIT_OBJECT_NAME_STRING, "itemText" );
- TQObject *obj;
- TQObjectListIt itemsLineEditIt( *l );
- while ( (obj = itemsLineEditIt.current()) != 0 ) {
- ++itemsLineEditIt;
- TQObject::connect( this,
- TQT_SIGNAL( itemRenamed( const TQString & ) ),
- obj,
- TQT_SLOT( setText( const TQString & ) ) );
- }
- delete l;
-
- // Clamp on drag and drop to TQListBox
- ListBoxDnd *columnsDnd = new ListBoxDnd( colPreview );
- columnsDnd->setDragMode( ListBoxDnd::Internal | ListBoxDnd::Move );
- TQObject::connect( columnsDnd, TQT_SIGNAL( dropped( TQListBoxItem * ) ),
- columnsDnd, TQT_SLOT( confirmDrop( TQListBoxItem * ) ) );
-
- // Clamp on rename to TQListBox
- ListBoxRename *columnsRename = new ListBoxRename( colPreview );
- TQObject::connect( columnsRename,
- TQT_SIGNAL( itemTextChanged( const TQString & ) ),
- this,
- TQT_SLOT( columnTextChanged( const TQString & ) ) );
-
- // Find TQLineEdit "colText" and connect
- l = parent->queryList( TQLINEEDIT_OBJECT_NAME_STRING, "colText" );
- TQObjectListIt columnsLineEditIt( *l );
- while ( (obj = columnsLineEditIt.current()) != 0 ) {
- ++columnsLineEditIt;
- TQObject::connect( columnsRename,
- TQT_SIGNAL( itemTextChanged( const TQString & ) ),
- obj,
- TQT_SLOT( setText( const TQString & ) ) );
- }
- delete l;
-}
-
-void ListViewEditor::applyClicked()
-{
- setupItems();
- PopulateListViewCommand *cmd = new PopulateListViewCommand( i18n( "Edit the Items and Columns of '%1'" ).arg( listview->name() ),
- formwindow, listview, itemsPreview );
- cmd->execute();
- formwindow->commandHistory()->addCommand( cmd );
-}
-
-void ListViewEditor::okClicked()
-{
- applyClicked();
- accept();
-}
-
-void ListViewEditor::columnClickable( bool b )
-{
- Column *c = findColumn( colPreview->item( colPreview->currentItem() ) );
- if ( !c )
- return;
- c->clickable = b;
-}
-
-void ListViewEditor::columnDownClicked()
-{
- if ( colPreview->currentItem() == -1 ||
- colPreview->currentItem() > (int)colPreview->count() - 2 )
- return;
-
- colPreview->clearSelection();
- TQListBoxItem *i = colPreview->item( colPreview->currentItem() );
- TQListBoxItem *below = i->next();
-
- colPreview->takeItem( i );
- colPreview->insertItem( i, below );
-
- colPreview->setCurrentItem( i );
- colPreview->setSelected( i, TRUE );
-}
-
-void ListViewEditor::columnPixmapChosen()
-{
- Column *c = findColumn( colPreview->item( colPreview->currentItem() ) );
- if ( !c )
- return;
-
- TQPixmap pix;
- if ( colPixmap->pixmap() )
- pix = qChoosePixmap( this, formwindow, *colPixmap->pixmap() );
- else
- pix = qChoosePixmap( this, formwindow, TQPixmap() );
-
- if ( pix.isNull() )
- return;
-
- c->pixmap = pix;
- colPreview->blockSignals( TRUE );
- if ( !c->pixmap.isNull() )
- colPreview->changeItem( c->pixmap, c->text, colPreview->index( c->item ) );
- else
- colPreview->changeItem( c->text, colPreview->index( c->item ) );
- c->item = colPreview->item( colPreview->currentItem() );
- colPixmap->setPixmap( c->pixmap );
- colPreview->blockSignals( FALSE );
- colDeletePixmap->setEnabled( TRUE );
-}
-
-void ListViewEditor::columnPixmapDeleted()
-{
- Column *c = findColumn( colPreview->item( colPreview->currentItem() ) );
- if ( !c )
- return;
-
- c->pixmap = TQPixmap();
- colPreview->blockSignals( TRUE );
- if ( !c->pixmap.isNull() )
- colPreview->changeItem( c->pixmap, c->text, colPreview->index( c->item ) );
- else
- colPreview->changeItem( c->text, colPreview->index( c->item ) );
- c->item = colPreview->item( colPreview->currentItem() );
- colPixmap->setText( "" );
- colPreview->blockSignals( FALSE );
- colDeletePixmap->setEnabled( FALSE );
-}
-
-void ListViewEditor::columnResizable( bool b )
-{
- Column *c = findColumn( colPreview->item( colPreview->currentItem() ) );
- if ( !c )
- return;
- c->resizable = b;
-}
-
-void ListViewEditor::columnTextChanged( const TQString &txt )
-{
- Column *c = findColumn( colPreview->item( colPreview->currentItem() ) );
- if ( !c )
- return;
-
- c->text = txt;
- colPreview->blockSignals( TRUE );
- if ( !c->pixmap.isNull() )
- colPreview->changeItem( c->pixmap, c->text, colPreview->index( c->item ) );
- else
- colPreview->changeItem( c->text, colPreview->index( c->item ) );
- c->item = colPreview->item( colPreview->currentItem() );
- colPreview->blockSignals( FALSE );
-}
-
-void ListViewEditor::columnUpClicked()
-{
- if ( colPreview->currentItem() <= 0 )
- return;
-
- colPreview->clearSelection();
- TQListBoxItem *i = colPreview->item( colPreview->currentItem() );
- TQListBoxItem *above = i->prev();
-
- colPreview->takeItem( above );
- colPreview->insertItem( above, i );
-
- colPreview->setCurrentItem( i );
- colPreview->setSelected( i, TRUE );
-}
-
-void ListViewEditor::currentColumnChanged( TQListBoxItem *i )
-{
- Column *c = findColumn( i );
- if ( !i || !c ) {
- colText->setEnabled( FALSE );
- colPixmap->setEnabled( FALSE );
- colDeletePixmap->setEnabled( FALSE );
- colText->blockSignals( TRUE );
- colText->setText( "" );
- colText->blockSignals( FALSE );
- colClickable->setEnabled( FALSE );
- colResizable->setEnabled( FALSE );
- return;
- }
-
- colText->setEnabled( TRUE );
- colPixmap->setEnabled( TRUE );
- colDeletePixmap->setEnabled( i->pixmap() && !i->pixmap()->isNull() );
- colClickable->setEnabled( TRUE );
- colResizable->setEnabled( TRUE );
-
- colText->blockSignals( TRUE );
- colText->setText( c->text );
- colText->blockSignals( FALSE );
- if ( !c->pixmap.isNull() )
- colPixmap->setPixmap( c->pixmap );
- else
- colPixmap->setText( "" );
- colClickable->setChecked( c->clickable );
- colResizable->setChecked( c->resizable );
-}
-
-void ListViewEditor::newColumnClicked()
-{
- Column col;
- col.text = i18n( "New Column" );
- col.pixmap = TQPixmap();
- col.clickable = TRUE;
- col.resizable = TRUE;
- if ( !col.pixmap.isNull() )
- col.item = new TQListBoxPixmap( colPreview, col.pixmap, col.text );
- else
- col.item = new TQListBoxText( colPreview, col.text );
- columns.append( col );
- colPreview->setCurrentItem( col.item );
- colPreview->setSelected( col.item, TRUE );
-}
-
-void ListViewEditor::deleteColumnClicked()
-{
- TQListBoxItem *i = colPreview->item( colPreview->currentItem() );
- if ( !i )
- return;
-
- for ( TQValueList<Column>::Iterator it = columns.begin(); it != columns.end(); ++it ) {
- if ( ( *it ).item == i ) {
- delete (*it).item;
- columns.remove( it );
- break;
- }
- }
-
- if ( colPreview->currentItem() != -1 )
- colPreview->setSelected( colPreview->currentItem(), TRUE );
-}
-
-void ListViewEditor::currentItemChanged( TQListViewItem *i )
-{
- if ( !i ) {
- itemText->setEnabled( FALSE );
- itemChoosePixmap->setEnabled( FALSE );
- itemDeletePixmap->setEnabled( FALSE );
- itemColumn->setEnabled( FALSE );
- return;
- }
-
- itemText->setEnabled( TRUE );
- itemChoosePixmap->setEnabled( TRUE );
- itemDeletePixmap->setEnabled( i->pixmap( itemColumn->value() ) &&
- !i->pixmap( itemColumn->value() )->isNull() );
- itemColumn->setEnabled( TRUE );
-
- displayItem( i, itemColumn->value() );
-}
-
-void ListViewEditor::displayItem( TQListViewItem *i, int col )
-{
- itemText->blockSignals( TRUE );
- itemText->setText( i->text( col ) );
- itemText->blockSignals( FALSE );
-
- itemPixmap->blockSignals( TRUE );
- if ( i->pixmap( col ) )
- itemPixmap->setPixmap( *i->pixmap( col ) );
- else
- itemPixmap->setText( "" );
- itemPixmap->blockSignals( FALSE );
-}
-
-void ListViewEditor::itemColChanged( int col )
-{
- TQListViewItem *i = itemsPreview->currentItem();
- if ( !i )
- return;
-
- displayItem( i, col );
- itemDeletePixmap->setEnabled( i->pixmap( col ) && !i->pixmap( col )->isNull() );
-}
-
-void ListViewEditor::itemDeleteClicked()
-{
- TQListViewItem *i = itemsPreview->currentItem();
- if ( !i )
- return;
-
- delete i;
- if ( itemsPreview->firstChild() ) {
- itemsPreview->setCurrentItem( itemsPreview->firstChild() );
- itemsPreview->setSelected( itemsPreview->firstChild(), TRUE );
- }
-}
-
-void ListViewEditor::itemDownClicked()
-{
- TQListViewItem *i = itemsPreview->currentItem();
- if ( !i )
- return;
-
- TQListViewItemIterator it( i );
- TQListViewItem *parent = i->parent();
- it++;
- while ( it.current() ) {
- if ( it.current()->parent() == parent )
- break;
- it++;
- }
-
- if ( !it.current() )
- return;
- TQListViewItem *other = it.current();
-
- i->moveItem( other );
-}
-
-void ListViewEditor::itemNewClicked()
-{
- TQListViewItem *item = new TQListViewItem( itemsPreview );
- item->setText( 0, i18n( "Item" ) );
- item->setRenameEnabled( 0, TRUE );
- itemsPreview->setCurrentItem( item );
- itemsPreview->setSelected( item, TRUE );
- itemText->setFocus();
- itemText->selectAll();
-}
-
-void ListViewEditor::itemNewSubClicked()
-{
- TQListViewItem *parent = itemsPreview->currentItem();
- TQListViewItem *item = 0;
- if ( parent ) {
- item = new TQListViewItem( parent );
- parent->setOpen( TRUE );
- } else {
- item = new TQListViewItem( itemsPreview );
- }
- item->setText( 0, i18n( "Subitem" ) );
- item->setRenameEnabled( 0, TRUE );
- itemsPreview->setCurrentItem( item );
- itemsPreview->setSelected( item, TRUE );
-}
-
-void ListViewEditor::itemPixmapChoosen()
-{
- TQListViewItem *i = itemsPreview->currentItem();
- if ( !i )
- return;
-
- TQPixmap pix;
- if ( itemPixmap->pixmap() )
- pix = qChoosePixmap( this, formwindow, *itemPixmap->pixmap() );
- else
- pix = qChoosePixmap( this, formwindow, TQPixmap() );
-
- if ( pix.isNull() )
- return;
-
- i->setPixmap( itemColumn->value(), TQPixmap( pix ) );
- itemPixmap->setPixmap( pix );
- itemDeletePixmap->setEnabled( TRUE );
-}
-
-void ListViewEditor::itemPixmapDeleted()
-{
- TQListViewItem *i = itemsPreview->currentItem();
- if ( !i )
- return;
-
- i->setPixmap( itemColumn->value(), TQPixmap() );
- itemPixmap->setText( "" );
- itemDeletePixmap->setEnabled( FALSE );
-}
-
-void ListViewEditor::itemTextChanged( const TQString &txt )
-{
- TQListViewItem *i = itemsPreview->currentItem();
- if ( !i )
- return;
- i->setText( itemColumn->value(), txt );
-}
-
-void ListViewEditor::itemUpClicked()
-{
- TQListViewItem *i = itemsPreview->currentItem();
- if ( !i )
- return;
-
- TQListViewItemIterator it( i );
- TQListViewItem *parent = i->parent();
- --it;
- while ( it.current() ) {
- if ( it.current()->parent() == parent )
- break;
- --it;
- }
-
- if ( !it.current() )
- return;
- TQListViewItem *other = it.current();
-
- other->moveItem( i );
-}
-
-void ListViewEditor::itemRightClicked()
-{
- TQListViewItem *i = itemsPreview->currentItem();
- if ( !i )
- return;
-
- TQListViewItemIterator it( i );
- TQListViewItem *parent = i->parent();
- parent = parent ? parent->firstChild() : itemsPreview->firstChild();
- if ( !parent )
- return;
- it++;
- while ( it.current() ) {
- if ( it.current()->parent() == parent )
- break;
- it++;
- }
-
- if ( !it.current() )
- return;
- TQListViewItem *other = it.current();
-
- for ( int c = 0; c < itemsPreview->columns(); ++c ) {
- TQString s = i->text( c );
- i->setText( c, other->text( c ) );
- other->setText( c, s );
- TQPixmap pix;
- if ( i->pixmap( c ) )
- pix = *i->pixmap( c );
- if ( other->pixmap( c ) )
- i->setPixmap( c, *other->pixmap( c ) );
- else
- i->setPixmap( c, TQPixmap() );
- other->setPixmap( c, pix );
- }
-
- itemsPreview->setCurrentItem( other );
- itemsPreview->setSelected( other, TRUE );
-}
-
-void ListViewEditor::itemLeftClicked()
-{
- TQListViewItem *i = itemsPreview->currentItem();
- if ( !i )
- return;
-
- TQListViewItemIterator it( i );
- TQListViewItem *parent = i->parent();
- if ( !parent )
- return;
- parent = parent->parent();
- --it;
- while ( it.current() ) {
- if ( it.current()->parent() == parent )
- break;
- --it;
- }
-
- if ( !it.current() )
- return;
- TQListViewItem *other = it.current();
-
- for ( int c = 0; c < itemsPreview->columns(); ++c ) {
- TQString s = i->text( c );
- i->setText( c, other->text( c ) );
- other->setText( c, s );
- TQPixmap pix;
- if ( i->pixmap( c ) )
- pix = *i->pixmap( c );
- if ( other->pixmap( c ) )
- i->setPixmap( c, *other->pixmap( c ) );
- else
- i->setPixmap( c, TQPixmap() );
- other->setPixmap( c, pix );
- }
-
- itemsPreview->setCurrentItem( other );
- itemsPreview->setSelected( other, TRUE );
-}
-
-void ListViewEditor::setupColumns()
-{
- TQHeader *h = listview->header();
- for ( int i = 0; i < (int)h->count(); ++i ) {
- Column col;
- col.text = h->label( i );
- col.pixmap = TQPixmap();
- if ( h->iconSet( i ) )
- col.pixmap = h->iconSet( i )->pixmap();
- col.clickable = h->isClickEnabled( i );
- col.resizable = h->isResizeEnabled( i );
- if ( !col.pixmap.isNull() )
- col.item = new TQListBoxPixmap( colPreview, col.pixmap, col.text );
- else
- col.item = new TQListBoxText( colPreview, col.text );
- columns.append( col );
- }
-
- colText->setEnabled( FALSE );
- colPixmap->setEnabled( FALSE );
- colClickable->setEnabled( FALSE );
- colResizable->setEnabled( FALSE );
-
- if ( colPreview->firstItem() )
- colPreview->setCurrentItem( colPreview->firstItem() );
- numColumns = colPreview->count();
-}
-
-void ListViewEditor::setupItems()
-{
- itemColumn->setMinValue( 0 );
- itemColumn->setMaxValue( TQMAX( numColumns - 1, 0 ) );
- int i = 0;
- TQHeader *header = itemsPreview->header();
- for ( TQListBoxItem *item = colPreview->firstItem(); item; item = item->next() ) {
- Column *col = findColumn( item );
- if ( !col )
- continue;
- if ( i >= itemsPreview->columns() )
- itemsPreview->addColumn( col->text );
- header->setLabel( i, col->pixmap, col->text );
- header->setResizeEnabled( col->resizable, i );
- header->setClickEnabled( col->clickable, i );
- ++i;
- }
- while ( itemsPreview->columns() > i )
- itemsPreview->removeColumn( i );
-
- itemColumn->setValue( TQMIN( numColumns - 1, itemColumn->value() ) );
-}
-
-ListViewEditor::Column *ListViewEditor::findColumn( TQListBoxItem *i )
-{
- if ( !i )
- return 0;
-
- for ( TQValueList<Column>::Iterator it = columns.begin(); it != columns.end(); ++it ) {
- if ( ( *it ).item == i )
- return &( *it );
- }
-
- return 0;
-}
-
-void ListViewEditor::initTabPage( const TQString &page )
-{
- numColumns = colPreview->count();
- if ( page == i18n( "&Items" ) ) {
- setupItems();
- if ( numColumns == 0 ) {
- itemNew->setEnabled( FALSE );
- itemNewSub->setEnabled( FALSE );
- itemText->setEnabled( FALSE );
- itemChoosePixmap->setEnabled( FALSE );
- itemDeletePixmap->setEnabled( FALSE );
- itemColumn->setEnabled( FALSE );
- } else {
- itemNew->setEnabled( TRUE );
- itemNewSub->setEnabled( TRUE );
- }
- }
-}
-
-void ListViewEditor::emitItemRenamed( TQListViewItem *, int, const TQString & text )
-{
- emit itemRenamed( text ); // Relay signal ( to TQLineEdit )
-}