diff options
Diffstat (limited to 'tdevdesigner/designer/mainwindowactions.cpp')
-rw-r--r-- | tdevdesigner/designer/mainwindowactions.cpp | 2067 |
1 files changed, 0 insertions, 2067 deletions
diff --git a/tdevdesigner/designer/mainwindowactions.cpp b/tdevdesigner/designer/mainwindowactions.cpp deleted file mode 100644 index b9d0b1b6..00000000 --- a/tdevdesigner/designer/mainwindowactions.cpp +++ /dev/null @@ -1,2067 +0,0 @@ -/********************************************************************** -** Copyright (C) 2000-2001 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 "mainwindow.h" - -#include <kiconloader.h> -#include <tdefiledialog.h> -#include <tdelocale.h> -#include <klineedit.h> - -#include <stdlib.h> -#include <tqaction.h> -#include <tqwhatsthis.h> -#include <tqpopupmenu.h> -#include <tqmenubar.h> -#include <tqtooltip.h> -#include <tqapplication.h> -#include <tqsignalmapper.h> -#include <tqstylefactory.h> -#include <tqworkspace.h> -#include <tqmessagebox.h> -#include <tqstatusbar.h> -#include <tqlistbox.h> -#include <tqclipboard.h> -#include <tqcombobox.h> -#include <tqspinbox.h> -#include <tqinputdialog.h> -#include <tqdatetimeedit.h> -#include <tqtextedit.h> - -#include "defs.h" -#include "project.h" -#include "widgetdatabase.h" -#include "widgetfactory.h" -#include "preferences.h" -#include "formwindow.h" -#include "newformimpl.h" -#include "resource.h" -#include "projectsettingsimpl.h" -#include "workspace.h" -#include "createtemplate.h" -#include "hierarchyview.h" -#include "editfunctionsimpl.h" -#include "finddialog.h" -#include "replacedialog.h" -#include "gotolinedialog.h" -#include "formsettingsimpl.h" -#include "pixmapcollectioneditor.h" -#include "styledbutton.h" -#include "customwidgeteditorimpl.h" -#ifndef TQT_NO_SQL -#include "dbconnectionsimpl.h" -#include "dbconnectionimpl.h" -#endif -#include "widgetaction.h" -#include <tqtoolbox.h> -#include "startdialogimpl.h" -#include "designerappiface.h" -#include "connectiondialog.h" -#include "configtoolboxdialog.h" -#include "designeraction.h" - -#include "tdevdesigner_part.h" - -static const char * whatsthis_image[] = { - "16 16 3 1", - " c None", - "o c #000000", - "a c #000080", - "o aaaaa ", - "oo aaa aaa ", - "ooo aaa aaa", - "oooo aa aa", - "ooooo aa aa", - "oooooo a aaa", - "ooooooo aaa ", - "oooooooo aaa ", - "ooooooooo aaa ", - "ooooo aaa ", - "oo ooo ", - "o ooo aaa ", - " ooo aaa ", - " ooo ", - " ooo ", - " ooo "}; - -const TQString toolbarHelp = "<p>Toolbars contain a number of buttons to " -"provide quick access to often used functions.%1" -"<br>Click on the toolbar handle to hide the toolbar, " -"or drag and place the toolbar to a different location.</p>"; - -static TQIconSet createIconSet( const TQString &name ) -{ - TQIconSet ic( BarIcon( "" + name, TDevDesignerPartFactory::instance() ) ); - TQString prefix = "designer_"; - int right = name.length() - prefix.length(); - ic.setPixmap( BarIcon( prefix + "d_" + name.right( right ), TDevDesignerPartFactory::instance() ), - TQIconSet::Small, TQIconSet::Disabled ); - return ic; -} - -void MainWindow::setupEditActions() -{ - actionEditUndo = new DesignerAction( i18n("Undo"), createIconSet( "designer_undo.png" ),i18n("&Undo: Not Available"), CTRL + Key_Z, TQT_TQOBJECT(this), 0 ); - actionEditUndo->setStatusTip( i18n( "Undoes the last action" ) ); - actionEditUndo->setWhatsThis( whatsThisFrom( "Edit|Undo" ) ); - connect( actionEditUndo, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( editUndo() ) ); - actionEditUndo->setEnabled( FALSE ); - - actionEditRedo = new DesignerAction( i18n( "Redo" ), createIconSet("designer_redo.png"), i18n( "&Redo: Not Available" ), CTRL + Key_Y, TQT_TQOBJECT(this), 0 ); - actionEditRedo->setStatusTip( i18n( "Redoes the last undone operation") ); - actionEditRedo->setWhatsThis( whatsThisFrom( "Edit|Redo" ) ); - connect( actionEditRedo, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( editRedo() ) ); - actionEditRedo->setEnabled( FALSE ); - - actionEditCut = new DesignerAction( i18n( "Cut" ), createIconSet("designer_editcut.png"), i18n( "Cu&t" ), CTRL + Key_X, TQT_TQOBJECT(this), 0 ); - actionEditCut->setStatusTip( i18n( "Cuts the selected widgets and puts them on the clipboard" ) ); - actionEditCut->setWhatsThis( whatsThisFrom( "Edit|Cut" ) ); - connect( actionEditCut, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( editCut() ) ); - actionEditCut->setEnabled( FALSE ); - - actionEditCopy = new DesignerAction( i18n( "Copy" ), createIconSet("designer_editcopy.png"), i18n( "&Copy" ), CTRL + Key_C, TQT_TQOBJECT(this), 0 ); - actionEditCopy->setStatusTip( i18n( "Copies the selected widgets to the clipboard" ) ); - actionEditCopy->setWhatsThis( whatsThisFrom( "Edit|Copy" ) ); - connect( actionEditCopy, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( editCopy() ) ); - actionEditCopy->setEnabled( FALSE ); - - actionEditPaste = new DesignerAction( i18n( "Paste" ), createIconSet("designer_editpaste.png"), i18n( "&Paste" ), CTRL + Key_V, TQT_TQOBJECT(this), 0 ); - actionEditPaste->setStatusTip( i18n( "Pastes the clipboard's contents" ) ); - actionEditPaste->setWhatsThis( whatsThisFrom( "Edit|Paste" ) ); - connect( actionEditPaste, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( editPaste() ) ); - actionEditPaste->setEnabled( FALSE ); - - actionEditDelete = new DesignerAction( i18n( "Delete" ), TQPixmap(), i18n( "&Delete" ), Key_Delete, TQT_TQOBJECT(this), 0 ); - actionEditDelete->setStatusTip( i18n( "Deletes the selected widgets" ) ); - actionEditDelete->setWhatsThis( whatsThisFrom( "Edit|Delete" ) ); - connect( actionEditDelete, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( editDelete() ) ); - actionEditDelete->setEnabled( FALSE ); -#ifdef TQ_WS_MAC - TQAction *macDelete = new DesignerAction( i18n( "Delete" ), TQPixmap(), i18n( "&Delete" ), Key_Backspace, TQT_TQOBJECT(this), 0 ); - connect( macDelete, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( editDelete() ) ); -#endif - - actionEditSelectAll = new DesignerAction( i18n( "Select All" ), TQPixmap(), i18n( "Select &All" ), CTRL + Key_A, TQT_TQOBJECT(this), 0 ); - actionEditSelectAll->setStatusTip( i18n( "Selects all widgets" ) ); - actionEditSelectAll->setWhatsThis( whatsThisFrom( "Edit|Select All" ) ); - connect( actionEditSelectAll, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( editSelectAll() ) ); - actionEditSelectAll->setEnabled( TRUE ); - - actionEditRaise = new DesignerAction( i18n( "Bring to Front" ), createIconSet("designer_editraise.png"), i18n( "Bring to &Front" ), 0, TQT_TQOBJECT(this), 0 ); - actionEditRaise->setStatusTip( i18n( "Raises the selected widgets" ) ); - actionEditRaise->setWhatsThis( i18n( "Raises the selected widgets" ) ); - connect( actionEditRaise, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( editRaise() ) ); - actionEditRaise->setEnabled( FALSE ); - - actionEditLower = new DesignerAction( i18n( "Send to Back" ), createIconSet("designer_editlower.png"), i18n( "Send to &Back" ), 0, TQT_TQOBJECT(this), 0 ); - actionEditLower->setStatusTip( i18n( "Lowers the selected widgets" ) ); - actionEditLower->setWhatsThis( i18n( "Lowers the selected widgets" ) ); - connect( actionEditLower, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( editLower() ) ); - actionEditLower->setEnabled( FALSE ); - - actionEditAccels = new DesignerAction( i18n( "Check Accelerators" ), TQPixmap(), - i18n( "Chec&k Accelerators" ), ALT + Key_R, TQT_TQOBJECT(this), 0 ); - actionEditAccels->setStatusTip( i18n("Checks if the accelerators used in the form are unique") ); - actionEditAccels->setWhatsThis( whatsThisFrom( "Edit|Check Accelerator" ) ); - connect( actionEditAccels, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( editAccels() ) ); - connect( this, TQT_SIGNAL( hasActiveForm(bool) ), actionEditAccels, TQT_SLOT( setEnabled(bool) ) ); - - actionEditFunctions = new DesignerAction( i18n( "Slots" ), createIconSet("designer_editslots.png"), - i18n( "S&lots..." ), 0, TQT_TQOBJECT(this), 0 ); - actionEditFunctions->setStatusTip( i18n("Opens a dialog for editing slots") ); - actionEditFunctions->setWhatsThis( whatsThisFrom( "Edit|Slots" ) ); - connect( actionEditFunctions, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( editFunctions() ) ); - connect( this, TQT_SIGNAL( hasActiveForm(bool) ), actionEditFunctions, TQT_SLOT( setEnabled(bool) ) ); - - actionEditConnections = new DesignerAction( i18n( "Connections" ), createIconSet("designer_connecttool.png"), - i18n( "Co&nnections..." ), 0, TQT_TQOBJECT(this), 0 ); - actionEditConnections->setStatusTip( i18n("Opens a dialog for editing connections") ); - actionEditConnections->setWhatsThis( whatsThisFrom( "Edit|Connections" ) ); - connect( actionEditConnections, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( editConnections() ) ); - connect( this, TQT_SIGNAL( hasActiveForm(bool) ), actionEditConnections, TQT_SLOT( setEnabled(bool) ) ); - - actionEditSource = new DesignerAction( i18n( "Source" ), TQIconSet(), - i18n( "&Source..." ), CTRL + Key_E, TQT_TQOBJECT(this), 0 ); - actionEditSource->setStatusTip( i18n("Opens an editor to edit the form's source code") ); - actionEditSource->setWhatsThis( whatsThisFrom( "Edit|Source" ) ); - connect( actionEditSource, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( editSource() ) ); - connect( this, TQT_SIGNAL( hasActiveForm(bool) ), actionEditSource, TQT_SLOT( setEnabled(bool) ) ); - - actionEditFormSettings = new DesignerAction( i18n( "Form Settings" ), TQPixmap(), - i18n( "&Form Settings..." ), 0, TQT_TQOBJECT(this), 0 ); - actionEditFormSettings->setStatusTip( i18n("Opens a dialog to change the form's settings") ); - actionEditFormSettings->setWhatsThis( whatsThisFrom( "Edit|Form Settings" ) ); - connect( actionEditFormSettings, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( editFormSettings() ) ); - connect( this, TQT_SIGNAL( hasActiveForm(bool) ), actionEditFormSettings, TQT_SLOT( setEnabled(bool) ) ); - - actionEditPreferences = new DesignerAction( i18n( "Preferences" ), TQPixmap(), - i18n( "Preferences..." ), 0, TQT_TQOBJECT(this), 0 ); - actionEditPreferences->setStatusTip( i18n("Opens a dialog to change preferences") ); - actionEditPreferences->setWhatsThis( whatsThisFrom( "Edit|Preferences" ) ); - connect( actionEditPreferences, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( editPreferences() ) ); - -/* TQToolBar *tb = new TQToolBar( this, "Edit" ); - tb->setCloseMode( TQDockWindow::Undocked ); - TQWhatsThis::add( tb, i18n( "<b>The Edit toolbar</b>%1").arg(i18n(toolbarHelp).arg("")) ); - addToolBar( tb, i18n( "Edit" ) ); - actionEditUndo->addTo( tb ); - actionEditRedo->addTo( tb ); - tb->addSeparator(); - actionEditCut->addTo( tb ); - actionEditCopy->addTo( tb ); - actionEditPaste->addTo( tb );*/ -#if 0 - tb->addSeparator(); - actionEditLower->addTo( tb ); - actionEditRaise->addTo( tb ); -#endif - - TQPopupMenu *menu = new TQPopupMenu( this, "Edit" ); - connect( menu, TQT_SIGNAL( aboutToShow() ), TQT_TQOBJECT(this), TQT_SLOT( updateEditorUndoRedo() ) ); - menubar->insertItem( i18n( "&Edit" ), menu ); - actionEditUndo->addTo( menu ); - actionEditRedo->addTo( menu ); - menu->insertSeparator(); - actionEditCut->addTo( menu ); - actionEditCopy->addTo( menu ); - actionEditPaste->addTo( menu ); - actionEditDelete->addTo( menu ); - actionEditSelectAll->addTo( menu ); - actionEditAccels->addTo( menu ); -#if 0 - menu->insertSeparator(); - actionEditLower->addTo( menu ); - actionEditRaise->addTo( menu ); -#endif - menu->insertSeparator(); - if ( !singleProjectMode() ) { - actionEditFunctions->addTo( menu ); - actionEditConnections->addTo( menu ); - } - actionEditFormSettings->addTo( menu ); - menu->insertSeparator(); - actionEditPreferences->addTo( menu ); -} - -void MainWindow::setupSearchActions() -{ - actionSearchFind = new DesignerAction( i18n( "Find" ), createIconSet( "designer_searchfind.png" ), - i18n( "&Find..." ), CTRL + Key_F, TQT_TQOBJECT(this), 0 ); - connect( actionSearchFind, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( searchFind() ) ); - actionSearchFind->setEnabled( FALSE ); - actionSearchFind->setWhatsThis( whatsThisFrom( "Search|Find" ) ); - - actionSearchIncremetal = new DesignerAction( i18n( "Find Incremental" ), TQIconSet(), - i18n( "Find &Incremental" ), ALT + Key_I, TQT_TQOBJECT(this), 0 ); - connect( actionSearchIncremetal, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( searchIncremetalFindMenu() ) ); - actionSearchIncremetal->setEnabled( FALSE ); - actionSearchIncremetal->setWhatsThis( whatsThisFrom( "Search|Find Incremental" ) ); - - actionSearchReplace = new DesignerAction( i18n( "Replace" ), TQIconSet(), - i18n( "&Replace..." ), CTRL + Key_R, TQT_TQOBJECT(this), 0 ); - connect( actionSearchReplace, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( searchReplace() ) ); - actionSearchReplace->setEnabled( FALSE ); - actionSearchReplace->setWhatsThis( whatsThisFrom( "Search|Replace" ) ); - - actionSearchGotoLine = new DesignerAction( i18n( "Goto Line" ), TQIconSet(), - i18n( "&Goto Line..." ), ALT + Key_G, TQT_TQOBJECT(this), 0 ); - connect( actionSearchGotoLine, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( searchGotoLine() ) ); - actionSearchGotoLine->setEnabled( FALSE ); - actionSearchGotoLine->setWhatsThis( whatsThisFrom( "Search|Goto line" ) ); - -/* TQToolBar *tb = new TQToolBar( this, "Search" ); - tb->setCloseMode( TQDockWindow::Undocked ); - addToolBar( tb, i18n( "Search" ) ); - - actionSearchFind->addTo( tb );*/ - incrementalSearch = new TQLineEdit( 0 ); - incrementalSearch->hide(); - TQToolTip::add( incrementalSearch, i18n( "Incremental search (Alt+I)" ) ); - connect( incrementalSearch, TQT_SIGNAL( textChanged( const TQString & ) ), - this, TQT_SLOT( searchIncremetalFind() ) ); - connect( incrementalSearch, TQT_SIGNAL( returnPressed() ), - this, TQT_SLOT( searchIncremetalFindNext() ) ); - incrementalSearch->setEnabled( FALSE ); - - TQPopupMenu *menu = new TQPopupMenu( this, "Search" ); - menubar->insertItem( i18n( "&Search" ), menu ); - actionSearchFind->addTo( menu ); - actionSearchIncremetal->addTo( menu ); - actionSearchReplace->addTo( menu ); - menu->insertSeparator(); - actionSearchGotoLine->addTo( menu ); -} - -void MainWindow::setupLayoutActions() -{ - if ( !actionGroupTools ) { - actionGroupTools = new TQActionGroup( this ); - actionGroupTools->setExclusive( TRUE ); - connect( actionGroupTools, TQT_SIGNAL( selected(TQAction*) ), TQT_TQOBJECT(this), TQT_SLOT( toolSelected(TQAction*) ) ); - } - - actionEditAdjustSize = new DesignerAction( i18n( "Adjust Size" ), createIconSet("designer_adjustsize.png"), - i18n( "Adjust &Size" ), CTRL + Key_J, TQT_TQOBJECT(this), 0 ); - actionEditAdjustSize->setStatusTip(i18n("Adjusts the size of the selected widget") ); - actionEditAdjustSize->setWhatsThis( whatsThisFrom( "Layout|Adjust Size" ) ); - connect( actionEditAdjustSize, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( editAdjustSize() ) ); - actionEditAdjustSize->setEnabled( FALSE ); - - actionEditHLayout = new DesignerAction( i18n( "Lay OutQt::Horizontally" ), createIconSet("designer_edithlayout.png"), - i18n( "Lay Out &Horizontally" ), CTRL + Key_H, TQT_TQOBJECT(this), 0 ); - actionEditHLayout->setStatusTip(i18n("Lays out the selected widgets horizontally") ); - actionEditHLayout->setWhatsThis( whatsThisFrom( "Layout|Lay OutQt::Horizontally" ) ); - connect( actionEditHLayout, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( editLayoutHorizontal() ) ); - actionEditHLayout->setEnabled( FALSE ); - - actionEditVLayout = new DesignerAction( i18n( "Lay OutQt::Vertically" ), createIconSet("designer_editvlayout.png"), - i18n( "Lay Out &Vertically" ), CTRL + Key_L, TQT_TQOBJECT(this), 0 ); - actionEditVLayout->setStatusTip(i18n("Lays out the selected widgets vertically") ); - actionEditVLayout->setWhatsThis( whatsThisFrom( "Layout|Lay OutQt::Vertically" ) ); - connect( actionEditVLayout, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( editLayoutVertical() ) ); - actionEditVLayout->setEnabled( FALSE ); - - actionEditGridLayout = new DesignerAction( i18n( "Lay Out in a Grid" ), createIconSet("designer_editgrid.png"), - i18n( "Lay Out in a &Grid" ), CTRL + Key_G, TQT_TQOBJECT(this), 0 ); - actionEditGridLayout->setStatusTip(i18n("Lays out the selected widgets in a grid") ); - actionEditGridLayout->setWhatsThis( whatsThisFrom( "Layout|Lay Out in a Grid" ) ); - connect( actionEditGridLayout, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( editLayoutGrid() ) ); - actionEditGridLayout->setEnabled( FALSE ); - - actionEditSplitHorizontal = new DesignerAction( i18n( "Lay OutQt::Horizontally (in Splitter)" ), createIconSet("designer_editvlayoutsplit.png"), - i18n( "Lay OutQt::Horizontally (in S&plitter)" ), 0, TQT_TQOBJECT(this), 0 ); - actionEditSplitHorizontal->setStatusTip(i18n("Lays out the selected widgets horizontally in a splitter") ); - actionEditSplitHorizontal->setWhatsThis( whatsThisFrom( "Layout|Lay OutQt::Horizontally (in Splitter)" ) ); - connect( actionEditSplitHorizontal, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( editLayoutHorizontalSplit() ) ); - actionEditSplitHorizontal->setEnabled( FALSE ); - - actionEditSplitVertical = new DesignerAction( i18n( "Lay OutQt::Vertically (in Splitter)" ), createIconSet("designer_edithlayoutsplit.png"), - i18n( "Lay OutQt::Vertically (in Sp&litter)" ), 0, TQT_TQOBJECT(this), 0 ); - actionEditSplitVertical->setStatusTip(i18n("Lays out the selected widgets vertically in a splitter") ); - actionEditSplitVertical->setWhatsThis( whatsThisFrom( "Layout|Lay OutQt::Vertically (in Splitter)" ) ); - connect( actionEditSplitVertical, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( editLayoutVerticalSplit() ) ); - actionEditSplitVertical->setEnabled( FALSE ); - - actionEditBreakLayout = new DesignerAction( i18n( "Break Layout" ), createIconSet("designer_editbreaklayout.png"), - i18n( "&Break Layout" ), CTRL + Key_B, TQT_TQOBJECT(this), 0 ); - actionEditBreakLayout->setStatusTip(i18n("Breaks the selected layout") ); - actionEditBreakLayout->setWhatsThis( whatsThisFrom( "Layout|Break Layout" ) ); - connect( actionEditBreakLayout, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( editBreakLayout() ) ); - actionEditBreakLayout->setEnabled( FALSE ); - - int id = WidgetDatabase::idFromClassName( "Spacer" ); - actionInsertSpacer = new WidgetAction( i18n( "Layout" ), actionGroupTools, TQString::number( id ).latin1() ); - actionInsertSpacer->setToggleAction( TRUE ); - actionInsertSpacer->setText( WidgetDatabase::className( id ) ); - actionInsertSpacer->setMenuText( i18n( "Add %1").arg( WidgetDatabase::className( id ) ) ); - actionInsertSpacer->setIconSet( WidgetDatabase::iconSet( id ) ); - actionInsertSpacer->setToolTip( WidgetDatabase::toolTip( id ) ); - actionInsertSpacer->setStatusTip( i18n( "Insert a %1").arg(WidgetDatabase::toolTip( id )) ); - actionInsertSpacer->setWhatsThis( i18n("<b>A %1</b><p>%2</p>" - "<p>Click to insert a single %3," - "or double click to keep the tool selected.") - .arg(WidgetDatabase::toolTip( id )) - .arg(WidgetDatabase::whatsThis( id )) - .arg(WidgetDatabase::toolTip( id ) )); - - actionInsertSpacer->addTo( commonWidgetsToolBar ); - commonWidgetsPage.append( actionInsertSpacer ); - TQWidget *w; - commonWidgetsToolBar->setStretchableWidget( ( w = new TQWidget( commonWidgetsToolBar ) ) ); - w->setBackgroundMode( commonWidgetsToolBar->backgroundMode() ); - TQWhatsThis::add( layoutToolBar, i18n( "<b>The Layout toolbar</b>%1" ).arg(i18n(toolbarHelp).arg("")) ); - actionEditAdjustSize->addTo( layoutToolBar ); - layoutToolBar->addSeparator(); - actionEditHLayout->addTo( layoutToolBar ); - actionEditVLayout->addTo( layoutToolBar ); - actionEditGridLayout->addTo( layoutToolBar ); - actionEditSplitHorizontal->addTo( layoutToolBar ); - actionEditSplitVertical->addTo( layoutToolBar ); - actionEditBreakLayout->addTo( layoutToolBar ); - layoutToolBar->addSeparator(); - actionInsertSpacer->addTo( layoutToolBar ); - - TQPopupMenu *menu = new TQPopupMenu( this, "Layout" ); - layoutMenu = menu; - menubar->insertItem( i18n( "&Layout" ), menu, toolsMenuId + 1 ); - actionEditAdjustSize->addTo( menu ); - menu->insertSeparator(); - actionEditHLayout->addTo( menu ); - actionEditVLayout->addTo( menu ); - actionEditGridLayout->addTo( menu ); - actionEditSplitHorizontal->addTo( menu ); - actionEditSplitVertical->addTo( menu ); - actionEditBreakLayout->addTo( menu ); - menu->insertSeparator(); - actionInsertSpacer->addTo( menu ); -} - -void MainWindow::setupToolActions() -{ - if ( !actionGroupTools ) { - actionGroupTools = new TQActionGroup( this ); - actionGroupTools->setExclusive( TRUE ); - connect( actionGroupTools, TQT_SIGNAL( selected(TQAction*) ), - this, TQT_SLOT( toolSelected(TQAction*) ) ); - } - - actionPointerTool = new DesignerAction( i18n("Pointer"), createIconSet("designer_pointer.png"), - i18n("&Pointer"), Key_F2, - actionGroupTools, - TQString::number(POINTER_TOOL).latin1(), TRUE ); - actionPointerTool->setStatusTip( i18n("Selects the pointer tool") ); - actionPointerTool->setWhatsThis( whatsThisFrom( "Tools|Pointer" ) ); - - actionConnectTool = new DesignerAction( i18n("Connect Signal/Slots"), - createIconSet("designer_connecttool.png"), - i18n("&Connect Signal/Slots"), - singleProjectMode() ? 0 : Key_F3, - actionGroupTools, - TQString::number(CONNECT_TOOL).latin1(), TRUE ); - actionConnectTool->setStatusTip( i18n("Selects the connection tool") ); - actionConnectTool->setWhatsThis( whatsThisFrom( "Tools|Connect Signals and Slots" ) ); - - actionOrderTool = new DesignerAction( i18n("Tab Order"), createIconSet("designer_ordertool.png"), - i18n("Tab &Order"), Key_F4, - actionGroupTools, - TQString::number(ORDER_TOOL).latin1(), TRUE ); - actionOrderTool->setStatusTip( i18n("Selects the tab order tool") ); - actionOrderTool->setWhatsThis( whatsThisFrom( "Tools|Tab Order" ) ); - - actionBuddyTool = new DesignerAction( i18n( "Set Buddy" ), createIconSet( "designer_setbuddy.png" ), - i18n( "Set &Buddy" ), Key_F12, - actionGroupTools, TQString::number( BUDDY_TOOL ).latin1(), - TRUE ); - actionBuddyTool->setStatusTip( i18n( "Sets a buddy to a label" ) ); - actionBuddyTool->setWhatsThis( whatsThisFrom( "Tools|Set Buddy" ) ); - - TQToolBar *tb = new TQToolBar( this, "Tools" ); - tb->setCloseMode( TQDockWindow::Undocked ); - toolsToolBar = tb; - TQWhatsThis::add( tb, i18n( "<b>The Tools toolbar</b>%1" ).arg(i18n(toolbarHelp).arg("")) ); - - addToolBar( tb, i18n( "Tools" ), TQMainWindow::DockTop, FALSE ); - actionPointerTool->addTo( tb ); - if ( !singleProjectMode() ) - actionConnectTool->addTo( tb ); - actionOrderTool->addTo( tb ); - actionBuddyTool->addTo( tb ); - - TQPopupMenu *mmenu = new TQPopupMenu( this, "Tools" ); - toolsMenu = mmenu; - toolsMenuId = 100; - menubar->insertItem( i18n( "&Tools" ), mmenu, toolsMenuId ); - toolsMenuIndex = menubar->indexOf( toolsMenuId ); - actionPointerTool->addTo( mmenu ); - if ( !singleProjectMode() ) - actionConnectTool->addTo( mmenu ); - actionOrderTool->addTo( mmenu ); - actionBuddyTool->addTo( mmenu ); - mmenu->insertSeparator(); - - customWidgetToolBar = 0; - customWidgetMenu = 0; - - actionToolsCustomWidget = new DesignerAction( i18n("Custom Widgets"), - createIconSet( "designer_customwidget.png" ), - i18n("Edit &Custom Widgets..."), 0, TQT_TQOBJECT(this), 0 ); - actionToolsCustomWidget->setStatusTip( i18n("Opens a dialog to add and change " - "custom widgets") ); - actionToolsCustomWidget->setWhatsThis( whatsThisFrom( "Tools|Custom|Edit Custom" - "Widgets" ) ); - connect( actionToolsCustomWidget, TQT_SIGNAL( activated() ), - this, TQT_SLOT( toolsCustomWidget() ) ); - - for ( int j = 0; j < WidgetDatabase::numWidgetGroups(); ++j ) { - TQString grp = WidgetDatabase::widgetGroup( j ); - if ( !WidgetDatabase::isGroupVisible( grp ) || - WidgetDatabase::isGroupEmpty( grp ) ) - continue; - TQToolBar *tb = new TQToolBar( this, grp.latin1() ); - tb->setCloseMode( TQDockWindow::Undocked ); - widgetToolBars.append( tb ); - bool plural = grp[(int)grp.length()-1] == 's'; - if ( plural ) { - TQWhatsThis::add( tb, i18n( "<b>The %1</b>%2" ).arg(grp).arg(i18n(toolbarHelp). - arg( i18n(" Click on a button to insert a single widget, " - "or double click to insert multiple %1.") ).arg(grp)) ); - } else { - TQWhatsThis::add( tb, i18n( "<b>The %1 Widgets</b>%2" ).arg(grp).arg(i18n(toolbarHelp). - arg( i18n(" Click on a button to insert a single %1 widget, " - "or double click to insert multiple widgets.") ).arg(grp)) ); - } - addToolBar( tb, grp ); - tb->hide(); - TQPopupMenu *menu = new TQPopupMenu( this, grp.latin1() ); - mmenu->insertItem( grp, menu ); - - TQToolBar *tb2 = new TQToolBar( grp, 0, toolBox, FALSE, grp.latin1() ); - tb2->setFrameStyle( TQFrame::NoFrame ); - tb2->setOrientation( Qt::Vertical ); - tb2->setBackgroundMode( PaletteBase ); - toolBox->addItem( tb2, grp ); - - if ( grp == "Custom" ) { - if ( !customWidgetMenu ) - actionToolsCustomWidget->addTo( menu ); - else - menu->insertSeparator(); - customWidgetMenu = menu; - customWidgetToolBar = tb; - } - - for ( int i = 0; i < WidgetDatabase::count(); ++i ) { - if ( WidgetDatabase::group( i ) != grp ) - continue; // only widgets, i.e. not forms and temp stuff - WidgetAction* a = - new WidgetAction( grp, actionGroupTools, TQString::number( i ).latin1() ); - a->setToggleAction( TRUE ); - TQString atext = WidgetDatabase::className( i ); - if ( atext[0] == 'Q' ) - atext = atext.mid(1); - while ( atext.length() && atext[0] >= 'a' && atext[0] <= 'z' ) - atext = atext.mid(1); - if ( atext.isEmpty() ) - atext = WidgetDatabase::className( i ); - a->setText( atext ); - TQString ttip = WidgetDatabase::toolTip( i ); - a->setIconSet( WidgetDatabase::iconSet( i ) ); - a->setToolTip( ttip ); - if ( !WidgetDatabase::isWhatsThisLoaded() ) - WidgetDatabase::loadWhatsThis( documentationPath() ); - a->setStatusTip( i18n( "Insert a %1").arg(WidgetDatabase::className( i )) ); - - TQString whats = i18n("<b>A %1</b>").arg( WidgetDatabase::className( i ) ); - if ( !WidgetDatabase::whatsThis( i ).isEmpty() ) - whats += TQString("<p>%1</p>").arg(WidgetDatabase::whatsThis( i )); - a->setWhatsThis( whats+ i18n("<p>Double click on this tool to keep it selected.</p>") ); - - if ( grp != "KDE" ) - a->addTo( tb ); - a->addTo( menu ); - a->addTo( tb2 ); - if ( WidgetDatabase::isCommon( i ) ) { - a->addTo( commonWidgetsToolBar ); - commonWidgetsPage.append( a ); - } - } - TQWidget *w; - tb2->setStretchableWidget( ( w = new TQWidget( tb2 ) ) ); - w->setBackgroundMode( tb2->backgroundMode() ); - } - - if ( !customWidgetToolBar ) { - TQToolBar *tb = new TQToolBar( this, "Custom Widgets" ); - tb->setCloseMode( TQDockWindow::Undocked ); - TQWhatsThis::add( tb, i18n( "<b>The Custom Widgets toolbar</b>%1" - "<p>Click <b>Edit Custom Widgets...</b>" - "in the <b>Tools|Custom</b> menu to " - "add and change custom widgets</p>" ). - arg(i18n(toolbarHelp). - arg( i18n(" Click on the buttons to insert a single widget, " - "or double click to insert multiple widgets.") )) ); - addToolBar( tb, i18n( "Custom" ) ); - tb->hide(); - widgetToolBars.append( tb ); - customWidgetToolBar = tb; - TQPopupMenu *menu = new TQPopupMenu( this, "Custom Widgets" ); - mmenu->insertItem( "Custom", menu ); - customWidgetMenu = menu; - customWidgetToolBar->hide(); - actionToolsCustomWidget->addTo( customWidgetMenu ); - customWidgetMenu->insertSeparator(); - TQToolBar *tb2 = new TQToolBar( "Custom Widgets", 0, - toolBox, FALSE, "Custom Widgets" ); - tb2->setBackgroundMode(PaletteBase); - tb2->setOrientation( Qt::Vertical ); - tb2->setFrameStyle( TQFrame::NoFrame ); - toolBox->addItem( tb2, "Custom Widgets" ); - customWidgetToolBar2 = tb2; - } - - TQAction *a = new DesignerAction( i18n( "Configure Toolbox" ), i18n( "Configure Toolbox..." ), 0, TQT_TQOBJECT(this) ); - a->setStatusTip( i18n( "Opens a dialog to configure the common " - "widgets page of the toolbox") ); - connect( a, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( toolsConfigure() ) ); - mmenu->insertSeparator(); - a->addTo( mmenu ); - resetTool(); -} - -void MainWindow::setupFileActions() -{ - TQToolBar* tb = new TQToolBar( this, "File" ); - tb->setCloseMode( TQDockWindow::Undocked ); - projectToolBar = tb; - - TQWhatsThis::add( tb, i18n( "<b>The File toolbar</b>%1" ).arg(i18n(toolbarHelp).arg("")) ); - addToolBar( tb, i18n( "File" ) ); - fileMenu = new TQPopupMenu( this, "File" ); - menubar->insertItem( i18n( "&File" ), fileMenu ); - - DesignerAction *a = 0; - - if ( !singleProject ) { - DesignerAction *a = new DesignerAction( TQT_TQOBJECT(this), 0 ); - a->setText( i18n( "New" ) ); - a->setToolTip( i18n( "New dialog or file" ) ); - a->setMenuText( i18n( "&New..." ) ); - a->setIconSet( createIconSet("designer_filenew.png") ); - a->setAccel( CTRL + Key_N ); - a->setStatusTip( i18n( "Creates a new project, form or source file." ) ); - a->setWhatsThis( whatsThisFrom( "File|New" ) ); - connect( a, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( fileNew() ) ); - a->addTo( tb ); - a->addTo( fileMenu ); - actionNewFile = a; - } else { - actionGroupNew = new TQActionGroup( this, 0, FALSE ); - TQActionGroup* a = actionGroupNew; - ( (TQActionGroup*)a )->setUsesDropDown( TRUE ); - a->setText( i18n( "New" ) ); - a->setMenuText( i18n( "&New..." ) ); - a->setIconSet( createIconSet("designer_form.png") ); - a->setStatusTip( i18n( "Creates a new dialog or file" ) ); - a->setWhatsThis( whatsThisFrom( "File|New" ) ); - - TQAction *newForm = new DesignerAction( a, 0 ); - newForm->setText( i18n( "New Dialog" ) ); - newForm->setMenuText( i18n( "&Dialog..." ) ); - newForm->setIconSet( createIconSet("designer_form.png") ); - newForm->setAccel( CTRL + Key_N ); - newForm->setStatusTip( i18n( "Creates a new dialog." ) ); - connect( newForm, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( fileNewDialog() ) ); - - DesignerAction *newFile = new DesignerAction( TQT_TQOBJECT(a), 0 ); - newFile->setText( i18n( "New File" ) ); - newFile->setMenuText( i18n( "&File..." ) ); - newFile->setIconSet( createIconSet("designer_filenew.png") ); - newFile->setAccel( ALT + Key_N ); - newFile->setStatusTip( i18n( "Creates a new file." ) ); - connect( newFile, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( fileNewFile() ) ); - actionNewFile = newFile; - - a->addTo( tb ); - a->addTo( fileMenu ); - - fileMenu->insertSeparator(); - } - - a = new DesignerAction( TQT_TQOBJECT(this), 0 ); - a->setText( i18n( "Open" ) ); - a->setMenuText( i18n( "&Open..." ) ); - a->setIconSet( createIconSet("designer_fileopen.png") ); - a->setAccel( CTRL + Key_O ); - a->setStatusTip( i18n( "Opens an existing project, form or source file ") ); - a->setWhatsThis( whatsThisFrom( "File|Open" ) ); - connect( a, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( fileOpen() ) ); - if ( !singleProject ) { - a->addTo( tb ); - a->addTo( fileMenu ); - fileMenu->insertSeparator(); - } - - - a = new DesignerAction( TQT_TQOBJECT(this), 0 ); - actionFileClose = a; - a->setText( i18n( "Close" ) ); - a->setMenuText( i18n( "&Close" ) ); - a->setStatusTip( i18n( "Closes the current project or document" ) ); - a->setWhatsThis(whatsThisFrom( "File|Close" ) ); - connect( a, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( fileClose() ) ); - connect( this, TQT_SIGNAL( hasActiveWindowOrProject(bool) ), a, TQT_SLOT( setEnabled(bool) ) ); - if ( !singleProject ) { - a->addTo( fileMenu ); - fileMenu->insertSeparator(); - } - - a = new DesignerAction( TQT_TQOBJECT(this), 0 ); - actionFileSave = a; - a->setText( i18n( "Save" ) ); - a->setMenuText( i18n( "&Save" ) ); - a->setIconSet( createIconSet("designer_filesave.png") ); - a->setAccel( CTRL + Key_S ); - a->setStatusTip( i18n( "Saves the current project or document" ) ); - a->setWhatsThis(whatsThisFrom( "File|Save" ) ); - connect( a, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( fileSave() ) ); - connect( this, TQT_SIGNAL( hasActiveWindowOrProject(bool) ), a, TQT_SLOT( setEnabled(bool) ) ); - a->addTo( tb ); - a->addTo( fileMenu ); - - a = new DesignerAction( TQT_TQOBJECT(this), 0 ); - actionFileSaveAs = a; - a->setText( i18n( "Save As" ) ); - a->setMenuText( i18n( "Save &As..." ) ); - a->setStatusTip( i18n( "Saves the current form with a new filename" ) ); - a->setWhatsThis( whatsThisFrom( "File|Save As" ) ); - connect( a, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( fileSaveAs() ) ); - connect( this, TQT_SIGNAL( hasActiveWindow(bool) ), a, TQT_SLOT( setEnabled(bool) ) ); - if ( !singleProject ) - a->addTo( fileMenu ); - - a = new DesignerAction( TQT_TQOBJECT(this), 0 ); - actionFileSaveAll = a; - a->setText( i18n( "Save All" ) ); - a->setMenuText( i18n( "Sa&ve All" ) ); - a->setStatusTip( i18n( "Saves all open documents" ) ); - a->setWhatsThis( whatsThisFrom( "File|Save All" ) ); - connect( a, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( fileSaveAll() ) ); - connect( this, TQT_SIGNAL( hasActiveWindowOrProject(bool) ), a, TQT_SLOT( setEnabled(bool) ) ); - if ( !singleProject ) { - a->addTo( fileMenu ); - fileMenu->insertSeparator(); - } - - a = new DesignerAction( TQT_TQOBJECT(this), 0 ); - a->setText( i18n( "Create Template" ) ); - a->setMenuText( i18n( "Create &Template..." ) ); - a->setStatusTip( i18n( "Creates a new template" ) ); - a->setWhatsThis( whatsThisFrom( "File|Create Template" ) ); - connect( a, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( fileCreateTemplate() ) ); - if ( !singleProject ) - a->addTo( fileMenu ); - - if ( !singleProject ) - fileMenu->insertSeparator(); - - recentlyFilesMenu = new TQPopupMenu( this ); - recentlyProjectsMenu = new TQPopupMenu( this ); - - if ( !singleProject ) { - fileMenu->insertItem( i18n( "Recently Opened Files " ), recentlyFilesMenu ); - fileMenu->insertItem( i18n( "Recently Opened Projects" ), recentlyProjectsMenu ); - } - - connect( recentlyFilesMenu, TQT_SIGNAL( aboutToShow() ), - this, TQT_SLOT( setupRecentlyFilesMenu() ) ); - connect( recentlyProjectsMenu, TQT_SIGNAL( aboutToShow() ), - this, TQT_SLOT( setupRecentlyProjectsMenu() ) ); - connect( recentlyFilesMenu, TQT_SIGNAL( activated( int ) ), - this, TQT_SLOT( recentlyFilesMenuActivated( int ) ) ); - connect( recentlyProjectsMenu, TQT_SIGNAL( activated( int ) ), - this, TQT_SLOT( recentlyProjectsMenuActivated( int ) ) ); - - if ( !singleProject ) - fileMenu->insertSeparator(); - - a = new DesignerAction( TQT_TQOBJECT(this), 0 ); - actionFileExit = a; - if ( !singleProjectMode() ) { - a->setText( i18n( "Exit" ) ); - a->setMenuText( i18n( "E&xit" ) ); - a->setStatusTip( i18n( "Quits the application and prompts to save any changed forms, source files or project settings" ) ); - a->setWhatsThis( whatsThisFrom( "File|Exit" ) ); - } else { - a->setText( i18n( "Close" ) ); - a->setMenuText( i18n( "&Close" ) ); - } - connect( a, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( fileQuit() ) ); - a->addTo( fileMenu ); -} - -void MainWindow::setupProjectActions() -{ - projectMenu = new TQPopupMenu( this, "Project" ); - menubar->insertItem( i18n( "Pr&oject" ), projectMenu ); - - TQActionGroup *ag = new TQActionGroup( this, 0 ); - ag->setText( i18n( "Active Project" ) ); - ag->setMenuText( i18n( "Active Project" ) ); - ag->setExclusive( TRUE ); - ag->setUsesDropDown( TRUE ); - connect( ag, TQT_SIGNAL( selected( TQAction * ) ), TQT_TQOBJECT(this), TQT_SLOT( projectSelected( TQAction * ) ) ); - connect( ag, TQT_SIGNAL( selected( TQAction * ) ), TQT_TQOBJECT(this), TQT_SIGNAL( projectChanged() ) ); - DesignerAction *a = new DesignerAction( i18n( "<No Project>" ), i18n( "<No Project>" ), 0, ag, 0, TRUE ); - eProject = new Project( "", i18n( "<No Project>" ), projectSettingsPluginManager, TRUE ); - projects.insert( a, eProject ); - a->setOn( TRUE ); - ag->addTo( projectMenu ); - ag->addTo( projectToolBar ); - actionGroupProjects = ag; - - if ( !singleProject ) - projectMenu->insertSeparator(); - - a = new DesignerAction( i18n( "Add File" ), TQPixmap(), i18n( "&Add File..." ), 0, TQT_TQOBJECT(this), 0 ); - actionProjectAddFile = a; - a->setStatusTip( i18n("Adds a file to the current project") ); - a->setWhatsThis( whatsThisFrom( "Project|Add File" ) ); - connect( a, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( projectInsertFile() ) ); - a->setEnabled( FALSE ); - connect( this, TQT_SIGNAL( hasNonDummyProject(bool) ), a, TQT_SLOT( setEnabled(bool) ) ); - if ( !singleProject ) - a->addTo( projectMenu ); - - actionEditPixmapCollection = new DesignerAction( i18n( "Image Collection..." ), TQPixmap(), - i18n( "&Image Collection..." ), 0, TQT_TQOBJECT(this), 0 ); - actionEditPixmapCollection->setStatusTip( i18n("Opens a dialog for editing the current project's image collection") ); - actionEditPixmapCollection->setWhatsThis( whatsThisFrom( "Project|Image Collection" ) ); - connect( actionEditPixmapCollection, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( editPixmapCollection() ) ); - actionEditPixmapCollection->setEnabled( FALSE ); - connect( this, TQT_SIGNAL( hasNonDummyProject(bool) ), actionEditPixmapCollection, TQT_SLOT( setEnabled(bool) ) ); - actionEditPixmapCollection->addTo( projectMenu ); - -#ifndef TQT_NO_SQL - actionEditDatabaseConnections = new DesignerAction( i18n( "Database Connections..." ), TQPixmap(), - i18n( "&Database Connections..." ), 0, TQT_TQOBJECT(this), 0 ); - actionEditDatabaseConnections->setStatusTip( i18n("Opens a dialog for editing the current project's database connections") ); - actionEditDatabaseConnections->setWhatsThis( whatsThisFrom( "Project|Database Connections" ) ); - connect( actionEditDatabaseConnections, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( editDatabaseConnections() ) ); - //actionEditDatabaseConnections->setEnabled( FALSE ); - //connect( this, TQT_SIGNAL( hasNonDummyProject(bool) ), actionEditDatabaseConnections, TQT_SLOT( setEnabled(bool) ) ); - if ( !singleProject ) - actionEditDatabaseConnections->addTo( projectMenu ); -#endif - - actionEditProjectSettings = new DesignerAction( i18n( "Project Settings..." ), TQPixmap(), - i18n( "&Project Settings..." ), 0, TQT_TQOBJECT(this), 0 ); - actionEditProjectSettings->setStatusTip( i18n("Opens a dialog to change the project's settings") ); - actionEditProjectSettings->setWhatsThis( whatsThisFrom( "Project|Project Settings" ) ); - connect( actionEditProjectSettings, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( editProjectSettings() ) ); - actionEditProjectSettings->setEnabled( FALSE ); - connect( this, TQT_SIGNAL( hasNonDummyProject(bool) ), actionEditProjectSettings, TQT_SLOT( setEnabled(bool) ) ); - actionEditProjectSettings->addTo( projectMenu ); - -} - -void MainWindow::setupPreviewActions() -{ - DesignerAction* a = 0; - TQPopupMenu *menu = new TQPopupMenu( this, "Preview" ); - layoutMenu = menu; - menubar->insertItem( i18n( "&Preview" ), menu, toolsMenuId + 2 ); - - a = new DesignerAction( i18n( "Preview Form" ), TQPixmap(), i18n( "Preview &Form" ), 0, TQT_TQOBJECT(this), 0 ); - actionPreview = a; - a->setAccel( CTRL + Key_T ); - a->setStatusTip( i18n("Opens a preview") ); - a->setWhatsThis( whatsThisFrom( "Preview|Preview Form" ) ); - connect( a, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( previewForm() ) ); - connect( this, TQT_SIGNAL( hasActiveForm(bool) ), a, TQT_SLOT( setEnabled(bool) ) ); - a->addTo( menu ); - - menu->insertSeparator(); - - TQSignalMapper *mapper = new TQSignalMapper( TQT_TQOBJECT(this) ); - connect( mapper, TQT_SIGNAL(mapped(const TQString&)), TQT_TQOBJECT(this), TQT_SLOT(previewForm(const TQString&)) ); - TQStringList styles = TQStyleFactory::keys(); - for ( TQStringList::Iterator it = styles.begin(); it != styles.end(); ++it ) { - TQString info; - if ( *it == "Motif" ) - info = i18n( "The preview will use the Motif look and feel which is used as the default style on most UNIX systems." ); - else if ( *it == "Windows" ) - info = i18n( "The preview will use the Windows look and feel." ); - else if ( *it == "Platinum" ) - info = i18n( "The preview will use the Platinum look and feel which is similar to the Macintosh GUI style." ); - else if ( *it == "CDE" ) - info = i18n( "The preview will use the CDE look and feel which is similar to some versions of the Common Desktop Environment." ); - else if ( *it == "SGI" ) - info = i18n( "The preview will use the Motif look and feel which is used as the default style on SGI systems." ); - else if ( *it == "MotifPlus" ) - info = i18n( "The preview will use the advanced Motif look and feel used by the GIMP toolkit (GTK) on Linux." ); - - a = new DesignerAction( i18n( "Preview Form in %1 Style" ).arg( *it ), TQPixmap(), - i18n( "... in %1 Style" ).arg( *it ), 0, TQT_TQOBJECT(this), 0 ); - a->setStatusTip( i18n("Opens a preview in %1 style").arg( *it ) ); - a->setWhatsThis( i18n("<b>Open a preview in %1 style.</b>" - "<p>Use the preview to test the design and " - "signal-slot connections of the current form. %2</p>").arg( *it ).arg( info ) ); - mapper->setMapping( a, *it ); - connect( a, TQT_SIGNAL(activated()), mapper, TQT_SLOT(map()) ); - connect( this, TQT_SIGNAL( hasActiveForm(bool) ), a, TQT_SLOT( setEnabled(bool) ) ); - a->addTo( menu ); - } -} - -void MainWindow::setupWindowActions() -{ -/* static bool windowActionsSetup = FALSE; - if ( !windowActionsSetup ) { - windowActionsSetup = TRUE; -*/ - actionWindowTile = new DesignerAction( i18n( "Tile" ), i18n( "&Tile" ), 0, TQT_TQOBJECT(this) ); - actionWindowTile->setStatusTip( i18n("Tiles the windows so that they are all visible") ); - actionWindowTile->setWhatsThis( whatsThisFrom( "Window|Tile" ) ); - connect( actionWindowTile, TQT_SIGNAL( activated() ), qworkspace, TQT_SLOT( tile() ) ); - actionWindowCascade = new DesignerAction( i18n( "Cascade" ), i18n( "&Cascade" ), 0, TQT_TQOBJECT(this) ); - actionWindowCascade->setStatusTip( i18n("Cascades the windows so that all their title bars are visible") ); - actionWindowCascade->setWhatsThis( whatsThisFrom( "Window|Cascade" ) ); - connect( actionWindowCascade, TQT_SIGNAL( activated() ), qworkspace, TQT_SLOT( cascade() ) ); - - actionWindowClose = new DesignerAction( i18n( "Close" ), i18n( "Cl&ose" ), CTRL + Key_F4, TQT_TQOBJECT(this) ); - actionWindowClose->setStatusTip( i18n( "Closes the active window") ); - actionWindowClose->setWhatsThis( whatsThisFrom( "Window|Close" ) ); - connect( actionWindowClose, TQT_SIGNAL( activated() ), qworkspace, TQT_SLOT( closeActiveWindow() ) ); - - actionWindowCloseAll = new DesignerAction( i18n( "Close All" ), i18n( "Close Al&l" ), 0, TQT_TQOBJECT(this) ); - actionWindowCloseAll->setStatusTip( i18n( "Closes all form windows") ); - actionWindowCloseAll->setWhatsThis( whatsThisFrom( "Window|Close All" ) ); - connect( actionWindowCloseAll, TQT_SIGNAL( activated() ), qworkspace, TQT_SLOT( closeAllWindows() ) ); - - actionWindowNext = new DesignerAction( i18n( "Next" ), i18n( "Ne&xt" ), CTRL + Key_F6, TQT_TQOBJECT(this) ); - actionWindowNext->setStatusTip( i18n( "Activates the next window" ) ); - actionWindowNext->setWhatsThis( whatsThisFrom( "Window|Next" ) ); - connect( actionWindowNext, TQT_SIGNAL( activated() ), qworkspace, TQT_SLOT( activateNextWindow() ) ); - - actionWindowPrevious = new DesignerAction( i18n( "Previous" ), i18n( "Pre&vious" ), CTRL + SHIFT + Key_F6, TQT_TQOBJECT(this) ); - actionWindowPrevious->setStatusTip( i18n( "Activates the previous window" ) ); - actionWindowPrevious->setWhatsThis( whatsThisFrom( "Window|Previous" ) ); - connect( actionWindowPrevious, TQT_SIGNAL( activated() ), qworkspace, TQT_SLOT( activatePreviousWindow() ) ); - // } - - if ( !windowMenu ) { - windowMenu = new TQPopupMenu( this, "Window" ); - menubar->insertItem( i18n( "&Window" ), windowMenu ); - connect( windowMenu, TQT_SIGNAL( aboutToShow() ), - this, TQT_SLOT( setupWindowActions() ) ); - } else { - windowMenu->clear(); - } - - actionWindowClose->addTo( windowMenu ); - actionWindowCloseAll->addTo( windowMenu ); - windowMenu->insertSeparator(); - actionWindowNext->addTo( windowMenu ); - actionWindowPrevious->addTo( windowMenu ); - windowMenu->insertSeparator(); - actionWindowTile->addTo( windowMenu ); - actionWindowCascade->addTo( windowMenu ); - windowMenu->insertSeparator(); - windowMenu->insertItem( i18n( "Vie&ws" ), createDockWindowMenu( NoToolBars ) ); - windowMenu->insertItem( i18n( "Tool&bars" ), createDockWindowMenu( OnlyToolBars ) ); - TQWidgetList windows = qworkspace->windowList(); - if ( windows.count() && formWindow() ) - windowMenu->insertSeparator(); - int j = 0; - for ( int i = 0; i < int( windows.count() ); ++i ) { - TQWidget *w = windows.at( i ); - if ( !::tqqt_cast<FormWindow*>(w) && !::tqqt_cast<SourceEditor*>(w) ) - continue; - if ( ::tqqt_cast<FormWindow*>(w) && ( ( (FormWindow*)w )->isFake() ) ) - continue; - j++; - TQString itemText; - if ( j < 10 ) - itemText = TQString("&%1 ").arg( j ); - if ( ::tqqt_cast<FormWindow*>(w) ) - itemText += w->name(); - else - itemText += w->caption(); - - int id = windowMenu->insertItem( itemText, TQT_TQOBJECT(this), TQT_SLOT( windowsMenuActivated( int ) ) ); - windowMenu->setItemParameter( id, i ); - windowMenu->setItemChecked( id, qworkspace->activeWindow() == windows.at( i ) ); - } -} - -void MainWindow::setupHelpActions() -{ - actionHelpContents = new DesignerAction( i18n( "Contents" ), i18n( "&Contents" ), Key_F1, TQT_TQOBJECT(this), 0 ); - actionHelpContents->setStatusTip( i18n("Opens the online help") ); - actionHelpContents->setWhatsThis( whatsThisFrom( "Help|Contents" ) ); - connect( actionHelpContents, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( helpContents() ) ); - - actionHelpManual = new DesignerAction( i18n( "Manual" ), i18n( "&Manual" ), CTRL + Key_M, TQT_TQOBJECT(this), 0 ); - actionHelpManual->setStatusTip( i18n("Opens the TQt Designer manual") ); - actionHelpManual->setWhatsThis( whatsThisFrom( "Help|Manual" ) ); - connect( actionHelpManual, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( helpManual() ) ); - - actionHelpAbout = new DesignerAction( i18n("About"), TQPixmap(), i18n("&About"), 0, TQT_TQOBJECT(this), 0 ); - actionHelpAbout->setStatusTip( i18n("Displays information about TQt Designer") ); - actionHelpAbout->setWhatsThis( whatsThisFrom( "Help|About" ) ); - connect( actionHelpAbout, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( helpAbout() ) ); - - actionHelpAboutTQt = new DesignerAction( i18n("About TQt"), TQPixmap(), i18n("About &TQt"), 0, TQT_TQOBJECT(this), 0 ); - actionHelpAboutTQt->setStatusTip( i18n("Displays information about the TQt Toolkit") ); - actionHelpAboutTQt->setWhatsThis( whatsThisFrom( "Help|About TQt" ) ); - connect( actionHelpAboutTQt, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( helpAboutTQt() ) ); - -#if 0 //defined(TQT_NON_COMMERCIAL) - // ### not used anymore -- should be deleted? - actionHelpRegister = new DesignerAction( i18n("Register TQt"), TQPixmap(), i18n("&Register TQt..."), 0, TQT_TQOBJECT(this), 0 ); - actionHelpRegister->setStatusTip( i18n("Opens a web browser at the evaluation form on www.trolltech.com") ); - actionHelpRegister->setWhatsThis( i18n("Register with Trolltech") ); - connect( actionHelpRegister, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( helpRegister() ) ); -#endif - - actionHelpWhatsThis = new DesignerAction( i18n("What's This?"), TQIconSet( whatsthis_image, whatsthis_image ), - i18n("What's This?"), SHIFT + Key_F1, TQT_TQOBJECT(this), 0 ); - actionHelpWhatsThis->setStatusTip( i18n("\"What's This?\" context sensitive help") ); - actionHelpWhatsThis->setWhatsThis( whatsThisFrom( "Help|What's This?" ) ); - connect( actionHelpWhatsThis, TQT_SIGNAL( activated() ), TQT_TQOBJECT(this), TQT_SLOT( whatsThis() ) ); - -/* TQToolBar *tb = new TQToolBar( this, "Help" ); - tb->setCloseMode( TQDockWindow::Undocked ); - TQWhatsThis::add( tb, i18n( "<b>The Help toolbar</b>%1" ).arg(i18n(toolbarHelp).arg("") )); - addToolBar( tb, i18n( "Help" ) ); - actionHelpWhatsThis->addTo( tb );*/ - - TQPopupMenu *menu = new TQPopupMenu( this, "Help" ); - menubar->insertSeparator(); - menubar->insertItem( i18n( "&Help" ), menu ); - actionHelpContents->addTo( menu ); - actionHelpManual->addTo( menu ); - menu->insertSeparator(); - actionHelpAbout->addTo( menu ); - actionHelpAboutTQt->addTo( menu ); -#if 0 //defined(TQT_NON_COMMERCIAL) - // ### not used anymore -- should be deleted? - actionHelpRegister->addTo( menu ); -#endif - - menu->insertSeparator(); - actionHelpWhatsThis->addTo( menu ); -} - -void MainWindow::fileNew() -{ - statusMessage( i18n( "Create a new project, form or source file...") ); - NewForm dlg( this, projectNames(), currentProject->projectName(), templatePath() ); - dlg.exec(); - statusBar()->clear(); -} - -void MainWindow::fileNewDialog() -{ - static int forms = 0; - TQString n = "Dialog" + TQString::number( ++forms ); - while ( currentProject->findFormFile( n + ".ui" ) ) - n = "Dialog" + TQString::number( ++forms ); - FormWindow *fw = 0; - FormFile *ff = new FormFile( n + ".ui", FALSE, currentProject ); - fw = new FormWindow( ff, MainWindow::self, MainWindow::self->qWorkspace(), n ); - ff->setModified( TRUE ); - currentProject->setModified( TRUE ); - workspace()->update(); - fw->setProject( currentProject ); - MetaDataBase::addEntry( TQT_TQOBJECT(fw) ); - TQWidget *w = WidgetFactory::create( WidgetDatabase::idFromClassName( TQDIALOG_OBJECT_NAME_STRING ), fw, n.latin1() ); - fw->setMainContainer( w ); - fw->setCaption( n ); - fw->resize( 600, 480 ); - insertFormWindow( fw ); - fw->killAccels( TQT_TQOBJECT(fw) ); - fw->project()->setModified( TRUE ); - fw->setFocus(); - fw->setSavePixmapInProject( TRUE ); - fw->setSavePixmapInline( FALSE ); -} - -void MainWindow::fileNewFile() -{ - TQString name = TQInputDialog::getText( i18n( "Name of File" ), i18n( "Enter the name of the new source file:" ) ); - if ( name.isEmpty() ) - return; - if ( name.right( 3 ) != ".qs" ) - name += ".qs"; - SourceFile *f = new SourceFile( name, FALSE, currentProject ); - MainWindow::self->editSource( f ); - f->setModified( TRUE ); - currentProject->setModified( TRUE ); - workspace()->update(); -} - -void MainWindow::fileQuit() -{ - close(); - if ( !singleProjectMode() ) - tqApp->closeAllWindows(); -} - -void MainWindow::fileClose() -{ - if ( !currentProject->isDummy() ) { - fileCloseProject(); - } else { - TQWidget *w = qworkspace->activeWindow(); - if ( w ) { - if ( ::tqqt_cast<FormWindow*>(w) ) - ( (FormWindow*)w )->formFile()->close(); - else if ( ::tqqt_cast<SourceEditor*>(w) ) - ( (SourceEditor*)w )->close(); - } - } -} - - -void MainWindow::fileCloseProject() -{ - if ( currentProject->isDummy() ) - return; - Project *pro = currentProject; - TQAction* a = 0; - TQAction* lastValid = 0; - for ( TQMap<TQAction*, Project* >::Iterator it = projects.begin(); it != projects.end(); ++it ) { - if ( it.data() == pro ) { - a = it.key(); - if ( lastValid ) - break; - } - lastValid = it.key(); - } - if ( a ) { - if ( pro->isModified() ) { - switch ( TQMessageBox::warning( this, i18n( "Save Project Settings" ), - i18n( "Save changes to '%1'?" ).arg( pro->fileName() ), - i18n( "&Yes" ), i18n( "&No" ), i18n( "&Cancel" ), 0, 2 ) ) { - case 0: // save - pro->save(); - break; - case 1: // don't save - break; - case 2: // cancel - return; - default: - break; - } - } - - TQWidgetList windows = qWorkspace()->windowList(); - qWorkspace()->blockSignals( TRUE ); - TQWidgetListIt wit( windows ); - while ( wit.current() ) { - TQWidget *w = wit.current(); - ++wit; - if ( ::tqqt_cast<FormWindow*>(w) ) { - if ( ( (FormWindow*)w )->project() == pro ) { - if ( ( (FormWindow*)w )->formFile()->editor() ) - windows.removeRef( ( (FormWindow*)w )->formFile()->editor() ); - if ( !( (FormWindow*)w )->formFile()->close() ) - return; - } - } else if ( ::tqqt_cast<SourceEditor*>(w) ) { - if ( !( (SourceEditor*)w )->close() ) - return; - } - } - hierarchyView->clear(); - windows = qWorkspace()->windowList(); - qWorkspace()->blockSignals( FALSE ); - actionGroupProjects->removeChild( a ); - projects.remove( a ); - delete a; - currentProject = 0; - if ( lastValid ) { - projectSelected( lastValid ); - statusMessage( i18n( "Selected project '%1'" ).arg( currentProject->projectName() ) ); - } - if ( !windows.isEmpty() ) { - for ( TQWidget *w = windows.first(); w; w = windows.next() ) { - if ( !::tqqt_cast<FormWindow*>(w) ) - continue; - w->setFocus(); - activeWindowChanged( w ); - break; - } - } else { - emit hasActiveWindow( FALSE ); - emit hasActiveForm( FALSE ); - updateUndoRedo( FALSE, FALSE, TQString(), TQString() ); - } - } -} - -void MainWindow::fileOpen() // as called by the menu -{ - fileOpen( "", "", "", FALSE ); -} - -void MainWindow::projectInsertFile() -{ - fileOpen( "", "" ); -} - -void MainWindow::fileOpen( const TQString &filter, const TQString &extension, const TQString &fn, bool inProject ) -{ - statusMessage( i18n( "Open a file...") ); - - TQPluginManager<ImportFilterInterface> manager( IID_ImportFilter, TQApplication::libraryPaths(), pluginDirectory() ); - - Project* project = inProject ? currentProject : eProject; - - TQStringList additionalSources; - - { - TQStringList filterlist; - if ( filter.isEmpty() ) { - if ( !inProject ) - filterlist << i18n( "*.ui *.pro|Designer Files" ); - filterlist << i18n( "*.ui|TQt User-Interface Files" ); - if ( !inProject ) - filterlist << i18n( "*.pro|TQMAKE Project Files" ); - TQStringList list = manager.featureList(); - for ( TQStringList::Iterator it = list.begin(); it != list.end(); ++it ) - filterlist << *it; - LanguageInterface *iface = MetaDataBase::languageInterface( project->language() ); - if ( iface ) { - filterlist += iface->fileFilterList(); - additionalSources += iface->fileExtensionList(); - } - filterlist << i18n( "*|All Files" ); - } else { - filterlist << filter; - } - - TQString filters = filterlist.join( "\n" ); - - TQStringList filenames; - if ( fn.isEmpty() ) { - if ( !inProject ) { - TQString f = KFileDialog::getOpenFileName( TQString(), filters, this, /*0,*/ - i18n("Open" )/*, &lastOpenFilter */); - filenames << f; - } else { - filenames = KFileDialog::getOpenFileNames( TQString(), filters, this, /*0,*/ - i18n("Add")/*, &lastOpenFilter */); - } - } else { - filenames << fn; - } - - for ( TQStringList::Iterator fit = filenames.begin(); fit != filenames.end(); ++fit ) { - TQString filename = *fit; - if ( !filename.isEmpty() ) { - TQFileInfo fi( filename ); - - if ( fi.extension( FALSE ) == "pro" && ( extension.isEmpty() || extension.find( ";pro" ) != -1 ) ) { - addRecentlyOpened( filename, recentlyProjects ); - openProject( filename ); - } else if ( fi.extension( FALSE ) == "ui" && ( extension.isEmpty() || extension.find( ";ui" ) != -1 ) ) { - if ( !inProject ) - setCurrentProject( eProject ); - openFormWindow( filename ); - addRecentlyOpened( filename, recentlyFiles ); - } else if ( !extension.isEmpty() && extension.find( ";" + fi.extension( FALSE ) ) != -1 || - additionalSources.find( fi.extension( FALSE ) ) != additionalSources.end() ) { - SourceFile *sf = project->findSourceFile( project->makeRelative( filename ) ); - if ( !sf ) - sf = new SourceFile( project->makeRelative( filename ), FALSE, project ); - editSource( sf ); - } else if ( extension.isEmpty() ) { - TQString filter; - for ( TQStringList::Iterator it2 = filterlist.begin(); it2 != filterlist.end(); ++it2 ) { - if ( (*it2).contains( "." + fi.extension( FALSE ), FALSE ) ) { - filter = *it2; - break; - } - } - - ImportFilterInterface* iface = 0; - manager.queryInterface( filter, &iface ); - if ( !iface ) { - statusMessage( i18n( "No import filter is available to import '%1'"). - arg( filename )/*, 3000*/ ); - return; - } - statusMessage( i18n( "Importing '%1' using import filter ...").arg( filename ) ); - TQStringList list = iface->import( filter, filename ); - iface->release(); - if ( list.isEmpty() ) { - statusMessage( i18n( "Nothing to load in '%1'").arg( filename )/*, 3000*/ ); - return; - } - if ( !inProject ) - setCurrentProject( eProject ); - addRecentlyOpened( filename, recentlyFiles ); - for ( TQStringList::Iterator it = list.begin(); it != list.end(); ++it ) { - openFormWindow( *it, FALSE ); - TQFile::remove( *it ); - } - statusBar()->clear(); - } - } - } - } -} - -FormWindow *MainWindow::openFormWindow( const TQString &filename, bool validFileName, FormFile *ff ) -{ - if ( filename.isEmpty() ) - return 0; - - bool makeNew = FALSE; - - if ( !TQFile::exists( filename ) ) { - makeNew = TRUE; - } else { - TQFile f( filename ); - f.open( IO_ReadOnly ); - TQTextStream ts( &f ); - makeNew = ts.read().length() < 2; - } - if ( makeNew ) { - fileNew(); - if ( formWindow() ) - formWindow()->setFileName( filename ); - return formWindow(); - } - - statusMessage( i18n( "Reading file '%1'...").arg( filename ) ); - FormFile *ff2 = currentProject->findFormFile( currentProject->makeRelative(filename) ); - if ( ff2 && ff2->formWindow() ) { - ff2->formWindow()->setFocus(); - return ff2->formWindow(); - } - - if ( ff2 ) - ff = ff2; - TQApplication::setOverrideCursor( WaitCursor ); - Resource resource( this ); - if ( !ff ) - ff = new FormFile( currentProject->makeRelative( filename ), FALSE, currentProject ); - bool b = resource.load( ff ) && (FormWindow*)resource.widget(); - if ( !validFileName && resource.widget() ) - ( (FormWindow*)resource.widget() )->setFileName( TQString() ); - TQApplication::restoreOverrideCursor(); - if ( b ) { - rebuildCustomWidgetGUI(); - statusMessage( i18n( "Loaded file '%1'").arg( filename )/*, 3000 */); - } else { - statusMessage( i18n( "Failed to load file '%1'").arg( filename )/*, 5000 */); - TQMessageBox::information( this, i18n("Load File"), i18n("Could not load file '%1'.").arg( filename ) ); - delete ff; - } - return (FormWindow*)resource.widget(); -} - -bool MainWindow::fileSave() -{ - - if ( !currentProject->isDummy() ) - return fileSaveProject(); - return fileSaveForm(); -} - -bool MainWindow::fileSaveForm() -{ - for ( SourceEditor *e = sourceEditors.first(); e; e = sourceEditors.next() ) { - if ( TQT_BASE_OBJECT(e->object()) == formWindow() || e == qWorkspace()->activeWindow() ) { - e->save(); - } - } - - FormWindow *fw = 0; - - TQWidget *w = qWorkspace()->activeWindow(); - if ( w ) { - if ( ::tqqt_cast<SourceEditor*>(w) ) { - SourceEditor *se = (SourceEditor*)w; - if ( se->formWindow() ) - fw = se->formWindow(); - else if ( se->sourceFile() ) { - se->sourceFile()->save(); - return TRUE; - } - } - } - - if ( !fw ) - fw = formWindow(); - if ( !fw || !fw->formFile()->save() ) - return FALSE; - TQApplication::restoreOverrideCursor(); - return TRUE; -} - -bool MainWindow::fileSaveProject() -{ - currentProject->save(); - statusMessage( i18n( "Project '%1' saved.").arg( currentProject->projectName() )/*, 3000 */); - return TRUE; -} - -bool MainWindow::fileSaveAs() -{ - statusMessage( i18n( "Enter a filename..." ) ); - - TQWidget *w = qworkspace->activeWindow(); - if ( !w ) - return TRUE; - if ( ::tqqt_cast<FormWindow*>(w) ) - return ( (FormWindow*)w )->formFile()->saveAs(); - else if ( ::tqqt_cast<SourceEditor*>(w) ) - return ( (SourceEditor*)w )->saveAs(); - return FALSE; -} - -void MainWindow::fileSaveAll() -{ - for ( TQMap<TQAction*, Project* >::Iterator it = projects.begin(); it != projects.end(); ++it ) - (*it)->save(); -} - -void MainWindow::fileCreateTemplate() -{ - CreateTemplate dia( this, 0, TRUE ); - - int i = 0; - for ( i = 0; i < WidgetDatabase::count(); ++i ) { - if ( WidgetDatabase::isForm( i ) && WidgetDatabase::group( i ) != "Temp") { - dia.listClass->insertItem( WidgetDatabase::className( i ) ); - } - } - for ( i = 0; i < WidgetDatabase::count(); ++i ) { - if ( WidgetDatabase::isContainer( i ) && !WidgetDatabase::isForm(i) && - WidgetDatabase::className( i ) != TQTABWIDGET_OBJECT_NAME_STRING && WidgetDatabase::group( i ) != "Temp" ) { - dia.listClass->insertItem( WidgetDatabase::className( i ) ); - } - } - - TQPtrList<MetaDataBase::CustomWidget> *lst = MetaDataBase::customWidgets(); - for ( MetaDataBase::CustomWidget *w = lst->first(); w; w = lst->next() ) { - if ( w->isContainer ) - dia.listClass->insertItem( w->className ); - } - - dia.editName->setText( i18n( "NewTemplate" ) ); - connect( dia.buttonCreate, TQT_SIGNAL( clicked() ), - this, TQT_SLOT( createNewTemplate() ) ); - dia.exec(); -} - -void MainWindow::createNewTemplate() -{ - CreateTemplate *dia = (CreateTemplate*)TQT_TQOBJECT(const_cast<TQT_BASE_OBJECT_NAME*>(sender()))->parent(); - TQString fn = dia->editName->text(); - TQString cn = dia->listClass->currentText(); - if ( fn.isEmpty() || cn.isEmpty() ) { - TQMessageBox::information( this, i18n( "Create Template" ), i18n( "Could not create the template." ) ); - return; - } - - TQStringList templRoots; - const char *qtdir = getenv( "QTDIR" ); - if(qtdir) - templRoots << qtdir; - templRoots << tqInstallPathData(); - if(qtdir) //try the tools/designer directory last! - templRoots << (TQString(qtdir) + "/tools/designer"); - TQFile f; - for ( TQStringList::Iterator it = templRoots.begin(); it != templRoots.end(); ++it ) { - if ( TQFile::exists( (*it) + "/templates/" )) { - TQString tmpfn = (*it) + "/templates/" + fn + ".ui"; - f.setName(tmpfn); - if(f.open(IO_WriteOnly)) - break; - } - } - if ( !f.isOpen() ) { - TQMessageBox::information( this, i18n( "Create Template" ), i18n( "Could not create the template." ) ); - return; - } - TQTextStream ts( &f ); - - ts << "<!DOCTYPE UI><UI>" << endl; - ts << "<widget>" << endl; - ts << "<class>" << cn << "</class>" << endl; - ts << "<property stdset=\"1\">" << endl; - ts << " <name>name</name>" << endl; - ts << " <cstring>" << cn << "Form</cstring>" << endl; - ts << "</property>" << endl; - ts << "<property stdset=\"1\">" << endl; - ts << " <name>geometry</name>" << endl; - ts << " <rect>" << endl; - ts << " <width>300</width>" << endl; - ts << " <height>400</height>" << endl; - ts << " </rect>" << endl; - ts << "</property>" << endl; - ts << "</widget>" << endl; - ts << "</UI>" << endl; - - dia->editName->setText( i18n( "NewTemplate" ) ); - - f.close(); -} - -void MainWindow::editUndo() -{ - if ( qWorkspace()->activeWindow() && - ::tqqt_cast<SourceEditor*>(qWorkspace()->activeWindow()) ) { - ( (SourceEditor*)qWorkspace()->activeWindow() )->editUndo(); - return; - } - if ( formWindow() ) - formWindow()->undo(); -} - -void MainWindow::editRedo() -{ - if ( qWorkspace()->activeWindow() && - ::tqqt_cast<SourceEditor*>(qWorkspace()->activeWindow()) ) { - ( (SourceEditor*)qWorkspace()->activeWindow() )->editRedo(); - return; - } - if ( formWindow() ) - formWindow()->redo(); -} - -void MainWindow::editCut() -{ - if ( qWorkspace()->activeWindow() && - ::tqqt_cast<SourceEditor*>(qWorkspace()->activeWindow()) ) { - ( (SourceEditor*)qWorkspace()->activeWindow() )->editCut(); - return; - } - editCopy(); - editDelete(); -} - -void MainWindow::editCopy() -{ - if ( qWorkspace()->activeWindow() && - ::tqqt_cast<SourceEditor*>(qWorkspace()->activeWindow()) ) { - ( (SourceEditor*)qWorkspace()->activeWindow() )->editCopy(); - return; - } - if ( formWindow() ) - tqApp->clipboard()->setText( formWindow()->copy() ); -} - -void MainWindow::editPaste() -{ - if ( qWorkspace()->activeWindow() && - ::tqqt_cast<SourceEditor*>(qWorkspace()->activeWindow()) ) { - ( (SourceEditor*)qWorkspace()->activeWindow() )->editPaste(); - return; - } - if ( !formWindow() ) - return; - - TQWidget *w = formWindow()->mainContainer(); - TQWidgetList l( formWindow()->selectedWidgets() ); - if ( l.count() == 1 ) { - w = l.first(); - if ( WidgetFactory::layoutType( w ) != WidgetFactory::NoLayout || - ( !WidgetDatabase::isContainer( WidgetDatabase::idFromClassName( WidgetFactory::classNameOf( TQT_TQOBJECT(w) ) ) ) && - w != formWindow()->mainContainer() ) ) - w = formWindow()->mainContainer(); - } - - if ( w && WidgetFactory::layoutType( w ) == WidgetFactory::NoLayout ) { - formWindow()->paste( tqApp->clipboard()->text(), WidgetFactory::containerOfWidget( w ) ); - hierarchyView->widgetInserted( 0 ); - formWindow()->commandHistory()->setModified( TRUE ); - } else { - TQMessageBox::information( this, i18n( "Paste Error" ), - i18n( "Cannot paste widgets. Designer could not find a container\n" - "to paste into which does not contain a layout. Break the layout\n" - "of the container you want to paste into and select this container\n" - "and then paste again." ) ); - } -} - -void MainWindow::editDelete() -{ - if ( formWindow() ) - formWindow()->deleteWidgets(); -} - -void MainWindow::editSelectAll() -{ - if ( qWorkspace()->activeWindow() && - ::tqqt_cast<SourceEditor*>(qWorkspace()->activeWindow()) ) { - ( (SourceEditor*)qWorkspace()->activeWindow() )->editSelectAll(); - return; - } - if ( formWindow() ) - formWindow()->selectAll(); -} - - -void MainWindow::editLower() -{ - if ( formWindow() ) - formWindow()->lowerWidgets(); -} - -void MainWindow::editRaise() -{ - if ( formWindow() ) - formWindow()->raiseWidgets(); -} - -void MainWindow::editAdjustSize() -{ - if ( formWindow() ) - formWindow()->editAdjustSize(); -} - -void MainWindow::editLayoutHorizontal() -{ - if ( layoutChilds ) - editLayoutContainerHorizontal(); - else if ( layoutSelected && formWindow() ) - formWindow()->layoutHorizontal(); -} - -void MainWindow::editLayoutVertical() -{ - if ( layoutChilds ) - editLayoutContainerVertical(); - else if ( layoutSelected && formWindow() ) - formWindow()->layoutVertical(); -} - -void MainWindow::editLayoutHorizontalSplit() -{ - if ( layoutChilds ) - ; // no way to do that - else if ( layoutSelected && formWindow() ) - formWindow()->layoutHorizontalSplit(); -} - -void MainWindow::editLayoutVerticalSplit() -{ - if ( layoutChilds ) - ; // no way to do that - else if ( layoutSelected && formWindow() ) - formWindow()->layoutVerticalSplit(); -} - -void MainWindow::editLayoutGrid() -{ - if ( layoutChilds ) - editLayoutContainerGrid(); - else if ( layoutSelected && formWindow() ) - formWindow()->layoutGrid(); -} - -void MainWindow::editLayoutContainerVertical() -{ - if ( !formWindow() ) - return; - TQWidget *w = formWindow()->mainContainer(); - TQWidgetList l( formWindow()->selectedWidgets() ); - if ( l.count() == 1 ) - w = l.first(); - if ( w ) - formWindow()->layoutVerticalContainer( w ); -} - -void MainWindow::editLayoutContainerHorizontal() -{ - if ( !formWindow() ) - return; - TQWidget *w = formWindow()->mainContainer(); - TQWidgetList l( formWindow()->selectedWidgets() ); - if ( l.count() == 1 ) - w = l.first(); - if ( w ) - formWindow()->layoutHorizontalContainer( w ); -} - -void MainWindow::editLayoutContainerGrid() -{ - if ( !formWindow() ) - return; - TQWidget *w = formWindow()->mainContainer(); - TQWidgetList l( formWindow()->selectedWidgets() ); - if ( l.count() == 1 ) - w = l.first(); - if ( w ) - formWindow()->layoutGridContainer( w ); -} - -void MainWindow::editBreakLayout() -{ - if ( !formWindow() || !breakLayout ) - return; - TQWidget *w = formWindow()->mainContainer(); - if ( formWindow()->currentWidget() ) - w = formWindow()->currentWidget(); - if ( WidgetFactory::layoutType( w ) != WidgetFactory::NoLayout || - w->parentWidget() && WidgetFactory::layoutType( w->parentWidget() ) != WidgetFactory::NoLayout ) { - formWindow()->breakLayout( w ); - return; - } else { - TQWidgetList widgets = formWindow()->selectedWidgets(); - for ( w = widgets.first(); w; w = widgets.next() ) { - if ( WidgetFactory::layoutType( w ) != WidgetFactory::NoLayout || - w->parentWidget() && WidgetFactory::layoutType( w->parentWidget() ) != WidgetFactory::NoLayout ) - break; - } - if ( w ) { - formWindow()->breakLayout( w ); - return; - } - } - - w = formWindow()->mainContainer(); - if ( WidgetFactory::layoutType( w ) != WidgetFactory::NoLayout || - w->parentWidget() && WidgetFactory::layoutType( w->parentWidget() ) != WidgetFactory::NoLayout ) - formWindow()->breakLayout( w ); -} - -void MainWindow::editAccels() -{ - if ( !formWindow() ) - return; - formWindow()->checkAccels(); -} - -void MainWindow::editFunctions() -{ - if ( !formWindow() ) - return; - - statusMessage( i18n( "Edit the current form's slots..." ) ); - EditFunctions dlg( this, formWindow(), TRUE ); - dlg.exec(); - statusBar()->clear(); -} - -void MainWindow::editConnections() -{ - if ( !formWindow() ) - return; - - statusMessage( i18n( "Edit the current form's connections..." ) ); - ConnectionDialog dlg( this ); - dlg.exec(); - - statusBar()->clear(); -} - -SourceEditor *MainWindow::editSource() -{ - if ( !formWindow() ) - return 0; - return formWindow()->formFile()->showEditor(); -} - -SourceEditor *MainWindow::openSourceEditor() -{ - if ( !formWindow() ) - return 0; - - TQString lang = currentProject->language(); - if ( !MetaDataBase::hasEditor( lang ) ) { - TQMessageBox::information( this, i18n( "Edit Source" ), - i18n( "There is no plugin for editing %1 code installed.\n" - "Note: Plugins are not available in static TQt configurations." ).arg( lang ) ); - return 0; - } - - SourceEditor *editor = 0; - for ( SourceEditor *e = sourceEditors.first(); e; e = sourceEditors.next() ) { - if ( e->language() == lang && e->formWindow() == formWindow() ) { - editor = e; - break; - } - } - - if ( !editor ) -editor = createSourceEditor( TQT_TQOBJECT(formWindow()), formWindow()->project(), lang ); - return editor; -} - -SourceEditor *MainWindow::editSource( SourceFile *f ) -{ - TQString lang = currentProject->language(); - if ( !MetaDataBase::hasEditor( lang ) ) { - TQMessageBox::information( this, i18n( "Edit Source" ), - i18n( "There is no plugin for editing %1 code installed.\n" - "Note: Plugins are not available in static TQt configurations." ).arg( lang ) ); - return 0; - } - - SourceEditor *editor = 0; - if ( f ) - editor = f->editor(); - if ( !editor ) - editor = createSourceEditor( f, currentProject, lang ); - editor->setActiveWindow(); - editor->setFocus(); - return editor; -} - -SourceEditor *MainWindow::createSourceEditor( TQObject *object, Project *project, - const TQString &lang, const TQString &func, - bool rereadSource ) -{ - SourceEditor *editor = 0; - EditorInterface *eIface = 0; - editorPluginManager->queryInterface( lang, &eIface ); - if ( !eIface ) - return 0; - LanguageInterface *lIface = MetaDataBase::languageInterface( lang ); - if ( !lIface ) - return 0; - TQApplication::setOverrideCursor( WaitCursor ); - editor = new SourceEditor( qWorkspace(), eIface, lIface ); - eIface->release(); - lIface->release(); - - editor->setLanguage( lang ); - sourceEditors.append( editor ); - TQApplication::restoreOverrideCursor(); - - if ( editor->object() != object ) - editor->setObject( object, project ); - else if ( rereadSource ) - editor->refresh( FALSE ); - - editor->show(); - editor->setFocus(); - if ( !func.isEmpty() ) - editor->setFunction( func ); - emit editorChanged(); - - return editor; -} - -void MainWindow::editFormSettings() -{ - if ( !formWindow() ) - return; - - statusMessage( i18n( "Edit the current form's settings..." ) ); - FormSettings dlg( this, formWindow() ); - dlg.exec(); - statusBar()->clear(); -} - -void MainWindow::editProjectSettings() -{ - openProjectSettings( currentProject ); - wspace->setCurrentProject( currentProject ); -} - -void MainWindow::editPixmapCollection() -{ - PixmapCollectionEditor dia( this, 0, TRUE ); - dia.setProject( currentProject ); - dia.exec(); -} - -void MainWindow::editDatabaseConnections() -{ -#ifndef TQT_NO_SQL - DatabaseConnectionsEditor dia( currentProject, this, 0, TRUE ); - dia.exec(); -#endif -} - -void MainWindow::editPreferences() -{ - statusMessage( i18n( "Edit preferences..." ) ); - Preferences *dia = new Preferences( this, 0, TRUE ); - prefDia = dia; - connect( dia->helpButton, TQT_SIGNAL( clicked() ), MainWindow::self, TQT_SLOT( showDialogHelp() ) ); - dia->buttonColor->setEditor( StyledButton::ColorEditor ); - dia->buttonPixmap->setEditor( StyledButton::PixmapEditor ); - dia->groupBoxGrid->setChecked( sGrid ); - dia->checkBoxSnapGrid->setChecked( snGrid ); - dia->spinGridX->setValue( grid().x() ); - dia->spinGridY->setValue( grid().y() ); - dia->checkBoxWorkspace->setChecked( restoreConfig ); - dia->checkBoxTextLabels->setChecked( usesTextLabel() ); - dia->buttonColor->setColor( qworkspace->backgroundColor() ); - TQString pluginPaths = TQApplication::libraryPaths().join("\n"); - dia->textEditPluginPaths->setText(pluginPaths); - if ( qworkspace->backgroundPixmap() ) - dia->buttonPixmap->setPixmap( *qworkspace->backgroundPixmap() ); - if ( backPix ) - dia->radioPixmap->setChecked( TRUE ); - else - dia->radioColor->setChecked( TRUE ); - dia->checkBoxSplash->setChecked( splashScreen ); - dia->checkAutoEdit->setChecked( !databaseAutoEdit ); - dia->checkBoxStartDialog->setChecked( shStartDialog ); - dia->checkBoxAutoSave->setChecked( autoSaveEnabled ); - int h = autoSaveInterval / 3600; - int m = ( autoSaveInterval - h * 3600 ) / 60; - int s = autoSaveInterval - ( h * 3600 + m * 60 ); - TQTime t( h, m, s ); - dia->timeEditAutoSave->setTime( t ); - - SenderObject *senderObject = new SenderObject( designerInterface() ); - TQValueList<Tab>::Iterator it; - for ( it = preferenceTabs.begin(); it != preferenceTabs.end(); ++it ) { - Tab t = *it; - dia->tabWidget->addTab( t.w, t.title ); - if ( t.receiver ) { - connect( dia->buttonOk, TQT_SIGNAL( clicked() ), senderObject, TQT_SLOT( emitAcceptSignal() ) ); - connect( senderObject, TQT_SIGNAL( acceptSignal( TQUnknownInterface * ) ), t.receiver, t.accept_slot ); - connect( senderObject, TQT_SIGNAL( initSignal( TQUnknownInterface * ) ), t.receiver, t.init_slot ); - senderObject->emitInitSignal(); - disconnect( senderObject, TQT_SIGNAL( initSignal( TQUnknownInterface * ) ), t.receiver, t.init_slot ); - } - } - - if ( dia->exec() == TQDialog::Accepted ) { - setSnapGrid( dia->checkBoxSnapGrid->isChecked() ); - setShowGrid( dia->groupBoxGrid->isChecked() ); - setGrid( TQPoint( dia->spinGridX->value(), - dia->spinGridY->value() ) ); - restoreConfig = dia->checkBoxWorkspace->isChecked(); - setUsesTextLabel( dia->checkBoxTextLabels->isChecked() ); - if (dia->textEditPluginPaths->isModified()) { - pluginPaths = dia->textEditPluginPaths->text(); - TQApplication::setLibraryPaths(TQStringList::split("\n", pluginPaths)); - savePluginPaths = TRUE; - } - - if ( dia->radioPixmap->isChecked() && dia->buttonPixmap->pixmap() ) { - qworkspace->setBackgroundPixmap( *dia->buttonPixmap->pixmap() ); - backPix = TRUE; - } else { - qworkspace->setBackgroundColor( dia->buttonColor->color() ); - backPix = FALSE; - } - splashScreen = dia->checkBoxSplash->isChecked(); - databaseAutoEdit = !dia->checkAutoEdit->isChecked(); - shStartDialog = dia->checkBoxStartDialog->isChecked(); - autoSaveEnabled = dia->checkBoxAutoSave->isChecked(); - TQTime time = dia->timeEditAutoSave->time(); - autoSaveInterval = time.hour() * 3600 + time.minute() * 60 + time.second(); - if ( autoSaveEnabled ) - autoSaveTimer->start( autoSaveInterval * 1000 ); - else - autoSaveTimer->stop(); - } - delete senderObject; - for ( it = preferenceTabs.begin(); it != preferenceTabs.end(); ++it ) { - Tab t = *it; - dia->tabWidget->removePage( t.w ); - t.w->reparent( 0, TQPoint(0,0), FALSE ); - } - - for ( SourceEditor *e = sourceEditors.first(); e; e = sourceEditors.next() ) - e->configChanged(); - - delete dia; - prefDia = 0; - statusBar()->clear(); -} - -void MainWindow::searchFind() -{ - if ( !qWorkspace()->activeWindow() || - !::tqqt_cast<SourceEditor*>(qWorkspace()->activeWindow()) ) - return; - - if ( !findDialog ) - findDialog = new FindDialog( this, 0, FALSE ); - findDialog->show(); - findDialog->raise(); - findDialog->setEditor( ( (SourceEditor*)qWorkspace()->activeWindow() )->editorInterface(), - ( (SourceEditor*)qWorkspace()->activeWindow() )->object() ); - findDialog->comboFind->setFocus(); - findDialog->comboFind->lineEdit()->selectAll(); -} - -void MainWindow::searchIncremetalFindMenu() -{ - incrementalSearch->selectAll(); - incrementalSearch->setFocus(); -} - -void MainWindow::searchIncremetalFind() -{ - if ( !qWorkspace()->activeWindow() || - !::tqqt_cast<SourceEditor*>(qWorkspace()->activeWindow()) ) - return; - - ( (SourceEditor*)qWorkspace()->activeWindow() )->editorInterface()->find( incrementalSearch->text(), - FALSE, FALSE, TRUE, FALSE ); -} - -void MainWindow::searchIncremetalFindNext() -{ - if ( !qWorkspace()->activeWindow() || - !::tqqt_cast<SourceEditor*>(qWorkspace()->activeWindow()) ) - return; - - ( (SourceEditor*)qWorkspace()->activeWindow() )->editorInterface()->find( incrementalSearch->text(), - FALSE, FALSE, TRUE, TRUE ); -} - -void MainWindow::searchReplace() -{ - if ( !qWorkspace()->activeWindow() || - !::tqqt_cast<SourceEditor*>(qWorkspace()->activeWindow()) ) - return; - - if ( !replaceDialog ) - replaceDialog = new ReplaceDialog( this, 0, FALSE ); - replaceDialog->show(); - replaceDialog->raise(); - replaceDialog->setEditor( ( (SourceEditor*)qWorkspace()->activeWindow() )->editorInterface(), - ( (SourceEditor*)qWorkspace()->activeWindow() )->object() ); - replaceDialog->comboFind->setFocus(); - replaceDialog->comboFind->lineEdit()->selectAll(); -} - -void MainWindow::searchGotoLine() -{ - if ( !qWorkspace()->activeWindow() || - !::tqqt_cast<SourceEditor*>(qWorkspace()->activeWindow()) ) - return; - - if ( !gotoLineDialog ) - gotoLineDialog = new GotoLineDialog( this, 0, FALSE ); - gotoLineDialog->show(); - gotoLineDialog->raise(); - gotoLineDialog->setEditor( ( (SourceEditor*)qWorkspace()->activeWindow() )->editorInterface() ); - gotoLineDialog->spinLine->setFocus(); - gotoLineDialog->spinLine->setMinValue( 1 ); - gotoLineDialog->spinLine->setMaxValue( ( (SourceEditor*)qWorkspace()->activeWindow() )->numLines() ); - gotoLineDialog->spinLine->selectAll(); -} - -void MainWindow::toolsCustomWidget() -{ - statusMessage( i18n( "Edit custom widgets..." ) ); - CustomWidgetEditor edit( this, this ); - edit.exec(); - rebuildCustomWidgetGUI(); - statusBar()->clear(); -} - -void MainWindow::toolsConfigure() -{ - ConfigToolboxDialog dlg( this ); - if ( dlg.exec() != TQDialog::Accepted ) - return; - rebuildCommonWidgetsToolBoxPage(); -} - -void MainWindow::showStartDialog() -{ - if ( singleProjectMode() ) - return; - for ( int i = 1; i < tqApp->argc(); ++i ) { - TQString arg = tqApp->argv()[i]; - if ( arg[0] != '-' ) - return; - } - StartDialog *sd = new StartDialog( this, templatePath() ); - sd->setRecentlyFiles( recentlyFiles ); - sd->setRecentlyProjects( recentlyProjects ); - sd->exec(); - shStartDialog = sd->showDialogInFuture(); -} |