summaryrefslogtreecommitdiffstats
path: root/kspread/dialogs/kspread_dlg_show.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kspread/dialogs/kspread_dlg_show.cpp')
-rw-r--r--kspread/dialogs/kspread_dlg_show.cpp112
1 files changed, 112 insertions, 0 deletions
diff --git a/kspread/dialogs/kspread_dlg_show.cpp b/kspread/dialogs/kspread_dlg_show.cpp
new file mode 100644
index 000000000..11f55e6d0
--- /dev/null
+++ b/kspread/dialogs/kspread_dlg_show.cpp
@@ -0,0 +1,112 @@
+/* This file is part of the KDE project
+ Copyright (C) 1999-2004 Laurent Montel <montel@kde.org>
+ (C) 2002-2004 Ariya Hidayat <ariya@kde.org>
+ (C) 2003 Norbert Andres <nandres@web.de>
+ (C) 2002 John Dailey <dailey@vt.edu>
+ (C) 2001-2002 Philipp Mueller <philipp.mueller@gmx.de>
+ (C) 1998-1999 Torben Weis <weis@kde.org>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library 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.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+*/
+
+#include <tqlayout.h>
+#include <tdelocale.h>
+#include <tqlistbox.h>
+#include <tqlabel.h>
+
+#include <kcommand.h>
+
+#include "kspread_view.h"
+#include "kspread_doc.h"
+#include "kspread_map.h"
+#include "commands.h"
+
+#include "kspread_dlg_show.h"
+
+using namespace KSpread;
+
+ShowDialog::ShowDialog( View* parent, const char* name )
+ : KDialogBase( parent, name,TRUE,i18n("Show Sheet"),Ok|Cancel )
+{
+ m_pView = parent;
+ TQWidget *page = new TQWidget( this );
+ setMainWidget(page);
+ TQVBoxLayout *lay1 = new TQVBoxLayout( page, 0, spacingHint() );
+
+ TQLabel *label = new TQLabel( i18n("Select hidden sheets to show:"), page );
+ lay1->addWidget( label );
+
+ list=new TQListBox(page);
+ lay1->addWidget( list );
+
+ list->setSelectionMode(TQListBox::Multi);
+ TQString text;
+ TQStringList::Iterator it;
+ TQStringList tabsList=m_pView->doc()->map()->hiddenSheets();
+ for ( it = tabsList.begin(); it != tabsList.end(); ++it )
+ {
+ text=*it;
+ list->insertItem(text);
+ }
+ if(!list->count())
+ enableButtonOK(false);
+ connect( this, TQT_SIGNAL( okClicked() ), this, TQT_SLOT( slotOk() ) );
+ connect( list, TQT_SIGNAL(doubleClicked(TQListBoxItem *)),this,TQT_SLOT(slotDoubleClicked(TQListBoxItem *)));
+ resize( 200, 150 );
+ setFocus();
+}
+
+void ShowDialog::slotDoubleClicked(TQListBoxItem *)
+{
+ slotOk();
+}
+
+
+
+void ShowDialog::slotOk()
+{
+ m_pView->doc()->emitBeginOperation( false );
+
+ TQStringList listSheet;
+
+ for (int i=0; i < list->numRows(); i++)
+ {
+ if (list->isSelected(i))
+ {
+ listSheet.append( list->text(i));
+ }
+ }
+
+ //m_pView->tabBar()->showSheet(listSheet);
+
+ if ( listSheet.count()==0 )
+ return;
+
+ Sheet *sheet;
+ KMacroCommand *macroUndo=new KMacroCommand( i18n("Show Sheet") );
+ for ( TQStringList::Iterator it = listSheet.begin(); it != listSheet.end(); ++it )
+ {
+ sheet=m_pView->doc()->map()->findSheet( *it );
+ KCommand* command = new ShowSheetCommand( sheet );
+ macroUndo->addCommand( command );
+ }
+ m_pView->doc()->addCommand( macroUndo );
+ macroUndo->execute();
+ m_pView->slotUpdateView( m_pView->activeSheet() );
+ accept();
+}
+
+#include "kspread_dlg_show.moc"