diff options
Diffstat (limited to 'kdejava/koala/examples/kscribble/KScribbleApp.java')
-rw-r--r-- | kdejava/koala/examples/kscribble/KScribbleApp.java | 1039 |
1 files changed, 0 insertions, 1039 deletions
diff --git a/kdejava/koala/examples/kscribble/KScribbleApp.java b/kdejava/koala/examples/kscribble/KScribbleApp.java deleted file mode 100644 index 00be368e..00000000 --- a/kdejava/koala/examples/kscribble/KScribbleApp.java +++ /dev/null @@ -1,1039 +0,0 @@ -import java.util.*; -import org.kde.qt.*; -import org.kde.koala.*; - -/** - * The base class for KScribble application windows. It sets up the main - * window and reads the config file as well as providing a menubar, toolbar - * and statusbar. In initView(), your main view is created as the MDI child window manager. - * Child windows are created in createClient(), which gets a document instance as it's document to - * display whereby one document can have several views.The MDI child is an instance of KScribbleView, - * the document an instance of KScribbleDoc. - * KScribbleApp reimplements the methods that TDEMainWindow provides for main window handling and supports - * full session management as well as keyboard accelerator configuration by using TDEAccel. - * @see TDEMainWindow - * @see TDEApplication - * @see TDEConfig - * @see TDEAccel - * - * @author Source Framework Automatically Generated by KDevelop, (c) The KDevelop Team. - * @version KDevelop version 1.1 code generation - */ -public class KScribbleApp extends TDEMainWindow implements Resource { - - /** the configuration object of the application */ - private TDEConfig config; - /** view is the main widget which represents your working area. The View - * class should handle all events of the view widget. It is kept empty so - * you can create your view according to your application's needs by - * changing the view class. - */ - private KScribbleView view; - /** doc represents your actual document and is created only once. It keeps - * information such as filename and does the serialization of your files. - */ - private KScribbleDoc doc; - - /** contains the recently used filenames */ - ArrayList recentFiles = null; - - // menus - private TQPopupMenu pFileMenu; - private TQPopupMenu pEditMenu; - private TQPopupMenu pPenMenu; - private TQPopupMenu pViewMenu; - private TQPopupMenu pWindowMenu; - private TQPopupMenu pHelpMenu; - private TQPopupMenu pRecentFileMenu; - - private TQWorkspace pWorkspace; - private TQPrinter printer; - private int untitledCount = 0; - private ArrayList pDocList; - private TDEApplication kapp; - private TDEIconLoader k = new TDEIconLoader(); - - /** construtor of KScribbleApp, calls all init functions to create the application. - */ - public KScribbleApp(TQWidget parent, String name) { - super(parent,name, 0); - kapp = TDEApplication.kApplication(); - config=kapp.config(); - - printer = new TQPrinter(); - untitledCount=0; - pDocList = new ArrayList(); - setAcceptDrops(true); - /////////////////////////////////////////////////////////////////// - // call inits to invoke all other construction parts - initMenuBar(); - initToolBar(); - initStatusBar(); - initKeyAccel(); - initView(); - - readOptions(); - - /////////////////////////////////////////////////////////////////// - // disable menu and toolbar items at startup - disableCommand(ID_EDIT_UNDO); - - } - - public KScribbleApp() { - this(null, null); - } - - /** initializes the TDEActions of the application */ - protected void initKeyAccel() { - - TDEAccel keyAccel = new TDEAccel(this); - - // fileMenu accelerators - keyAccel.insert(TDEStdAccel.New, this, SLOT("slotFileNew()")); - keyAccel.insert(TDEStdAccel.Open, this, SLOT("slotFileOpen()")); - keyAccel.insert(TDEStdAccel.Save, this, SLOT("slotFileSave()")); - keyAccel.insert(TDEStdAccel.Close, this, SLOT("slotFileClose()")); - keyAccel.insert(TDEStdAccel.Print, this, SLOT("slotFilePrint()")); - keyAccel.insert(TDEStdAccel.Quit, this, SLOT("slotFileQuit()")); - - // editMenu accelerators - keyAccel.insert(TDEStdAccel.Cut, this, SLOT("slotEditCut()")); - keyAccel.insert(TDEStdAccel.Copy, this, SLOT("slotEditCopy()")); - keyAccel.insert(TDEStdAccel.Paste, this, SLOT("slotEditPaste()")); - - // help accelerator - keyAccel.insert(TDEStdAccel.Help, this, SLOT("appHelpActivated()")); - - keyAccel.readSettings(); - - } - - - void initMenuBar() { - /////////////////////////////////////////////////////////////////// - // MENUBAR - - pRecentFileMenu = new TQPopupMenu(this); - connect(pRecentFileMenu, SIGNAL("activated(int)"), SLOT("slotFileOpenRecent(int)")); - - - /////////////////////////////////////////////////////////////////// - // menuBar entry file-Menu - pFileMenu = new TQPopupMenu(this); - - - pFileMenu.insertItem(KDE.BarIconSet("filenew"),i18n("&New"), ID_FILE_NEW,-1); - pFileMenu.insertItem(KDE.BarIconSet("fileopen"),i18n("&Open..."), ID_FILE_OPEN,-1); - pFileMenu.insertItem(i18n("Open &recent"), pRecentFileMenu, ID_FILE_OPEN_RECENT,-1); - - pFileMenu.insertItem(i18n("&Close"), ID_FILE_CLOSE,-1); - pFileMenu.insertSeparator(); - pFileMenu.insertItem(KDE.BarIconSet("filefloppy") ,i18n("&Save"), ID_FILE_SAVE,-1); - pFileMenu.insertItem(i18n("Save &As..."), ID_FILE_SAVE_AS,-1); - pFileMenu.insertSeparator(); - pFileMenu.insertItem(KDE.BarIconSet("fileprint"), i18n("&Print..."), ID_FILE_PRINT,-1); - pFileMenu.insertSeparator(); - pFileMenu.insertItem(i18n("E&xit"), ID_FILE_QUIT,-1); - - /////////////////////////////////////////////////////////////////// - // menuBar entry edit-Menu - pEditMenu = new TQPopupMenu(this); - pEditMenu.insertItem(KDE.BarIconSet("undo"), i18n("&Undo"), ID_EDIT_UNDO,-1); - pEditMenu.insertSeparator(); - pEditMenu.insertItem(KDE.BarIconSet("editcut"), i18n("Cu&t"), ID_EDIT_CUT,-1); - pEditMenu.insertItem(KDE.BarIconSet("editcopy"), i18n("&Copy"), ID_EDIT_COPY,-1); - pEditMenu.insertItem(KDE.BarIconSet("editpaste"), i18n("&Paste"), ID_EDIT_PASTE,-1); - pEditMenu.insertItem(KDE.BarIconSet("delete"),i18n("&Clear All"), ID_EDIT_CLEAR_ALL,-1); - - /////////////////////////////////////////////////////////////////// - // menuBar entry pen-Menu - pPenMenu = new TQPopupMenu(); - pPenMenu.insertItem(i18n("&Color"), ID_PEN_COLOR,-1); - pPenMenu.insertItem(i18n("&Brush"), ID_PEN_BRUSH,-1); - - /////////////////////////////////////////////////////////////////// - // menuBar entry view-Menu - pViewMenu = new TQPopupMenu(this); - pViewMenu.setCheckable(true); - pViewMenu.insertItem(i18n("&Toolbar"), ID_VIEW_TOOLBAR,-1); - pViewMenu.insertItem(i18n("&Statusbar"), ID_VIEW_STATUSBAR,-1); - - /////////////////////////////////////////////////////////////////// - // menuBar entry window-Menu - pWindowMenu = new TQPopupMenu(this); - pWindowMenu.setCheckable(true); - - - /////////////////////////////////////////////////////////////////// - // menuBar entry helpMenu - - TQPopupMenu pHelpMenu = helpMenu(i18n("Java KScribble " + Main.VERSION + "\n\n(c) 2002 by\n" + - "Ralf Nolden\nRalf.Nolden@post.rwth-aachen.de"),true); - - /////////////////////////////////////////////////////////////////// - // MENUBAR CONFIGURATION - // insert your popup menus with the according menubar entries in the order - // they will appear later from left to right - menuBar().insertItem(i18n("&File"), pFileMenu); - menuBar().insertItem(i18n("&Edit"), pEditMenu); - menuBar().insertItem(i18n("&Pen"), pPenMenu); - menuBar().insertItem(i18n("&View"), pViewMenu); - menuBar().insertItem(i18n("&Window"), pWindowMenu ); - menuBar().insertItem(i18n("&Help"), pHelpMenu); - - /////////////////////////////////////////////////////////////////// - // CONNECT THE MENU SLOTS WITH SIGNALS - // for execution slots and statusbar messages - connect(pFileMenu, SIGNAL("activated(int)"), SLOT("commandCallback(int)")); - connect(pFileMenu, SIGNAL("highlighted(int)"), SLOT("statusCallback(int)")); - - connect(pEditMenu, SIGNAL("activated(int)"), SLOT("commandCallback(int)")); - connect(pEditMenu, SIGNAL("highlighted(int)"), SLOT("statusCallback(int)")); - - connect(pPenMenu, SIGNAL("activated(int)"), SLOT("commandCallback(int)")); - connect(pPenMenu, SIGNAL("highlighted(int)"), SLOT("statusCallback(int)")); - - connect(pViewMenu, SIGNAL("activated(int)"), SLOT("commandCallback(int)")); - connect(pViewMenu, SIGNAL("highlighted(int)"), SLOT("statusCallback(int)")); - - connect(pWindowMenu, SIGNAL("aboutToShow()" ), SLOT( "windowMenuAboutToShow()" ) ); - connect(pWindowMenu, SIGNAL("activated(int)"), SLOT("commandCallback(int)")); - connect(pWindowMenu, SIGNAL("highlighted(int)"), SLOT("statusCallback(int)")); - - } - - - private void initToolBar() { - - /////////////////////////////////////////////////////////////////// - // TOOLBAR - - toolBar().insertButton(KDE.BarIcon("filenew"), ID_FILE_NEW, true, i18n("New File"),-1); - toolBar().insertButton(KDE.BarIcon("fileopen"), ID_FILE_OPEN, true, i18n("Open File"),-1); - toolBar().insertButton(KDE.BarIcon("filefloppy"), ID_FILE_SAVE, true, i18n("Save File"),-1); - toolBar().insertButton(KDE.BarIcon("fileprint"), ID_FILE_PRINT, true, i18n("Print"),-1); - toolBar().insertSeparator(); - toolBar().insertButton(KDE.BarIcon("editcut"), ID_EDIT_CUT, true, i18n("Cut"),-1); - toolBar().insertButton(KDE.BarIcon("editcopy"), ID_EDIT_COPY, true, i18n("Copy"),-1); - toolBar().insertButton(KDE.BarIcon("editpaste"), ID_EDIT_PASTE, true, i18n("Paste"),-1); - toolBar().insertSeparator(); - toolBar().insertButton(KDE.BarIcon("pencolor"), ID_PEN_COLOR, true, i18n("Color"),-1 ); - toolBar().insertButton(KDE.BarIcon("penwidth"), ID_PEN_BRUSH, true, i18n("Width"),-1 ); - toolBar().insertSeparator(); - toolBar().insertButton(KDE.BarIcon("help"), ID_HELP_CONTENTS, SIGNAL("clicked()"), - this, SLOT("appHelpActivated()"), true,i18n("Help"),-1); - - TQToolButton btnwhat = TQWhatsThis.whatsThisButton(toolBar()); - TQToolTip.add(btnwhat, i18n("What's this...?")); - toolBar().insertWidget(ID_HELP_WHATS_THIS, btnwhat.sizeHint().width(), btnwhat); - - /////////////////////////////////////////////////////////////////// - // INSERT YOUR APPLICATION SPECIFIC TOOLBARS HERE WITH toolBar(n) - - - /////////////////////////////////////////////////////////////////// - // CONNECT THE TOOLBAR SLOTS WITH SIGNALS - add new created toolbars by their according number - // connect for invoking the slot actions - connect(toolBar(), SIGNAL("clicked(int)"), SLOT("commandCallback(int)")); - // connect for the status help on holing icons pressed with the mouse button - connect(toolBar(), SIGNAL("pressed(int)"), SLOT("statusCallback(int)")); - - } - - - /** sets up the kstatusBar for the main window by initialzing a statuslabel. - */ - protected void initStatusBar() { - /////////////////////////////////////////////////////////////////// - // STATUSBAR - // TODO: add your own items you need for displaying current application status. - kstatusBar().insertItem(i18n("Ready."), ID_STATUS_MSG); - } - - /** creates the centerwidget of the KTMainWindow instance and sets it as the view - */ - protected void initView() { - - //////////////////////////////////////////////////////////////////// - // here the main view of the KTMainWindow is created by a background box and - // the TQWorkspace instance for MDI view. - TQVBox view_back = new TQVBox( this ); - view_back.setFrameStyle( TQFrame.StyledPanel | TQFrame.Sunken ); - pWorkspace = new TQWorkspace( view_back, "" ); - connect(pWorkspace, SIGNAL("windowActivated(TQWidget)"), this, SLOT("setWndTitle(TQWidget)")); -// setView(view_back); - setCentralWidget(view_back); - } - - void createClient(KScribbleDoc doc) { - KScribbleView w = new KScribbleView(doc, pWorkspace,null,WDestructiveClose); - w.installEventFilter(this); - doc.addView(w); - w.setIcon(kapp.miniIcon()); - if ( pWorkspace.windowList().isEmpty() ) // show the very first window in maximized mode - w.showMaximized(); - else - w.show(); - } - - void addRecentFile(String file) { - - - if(recentFiles != null && recentFiles.contains(file)) - return; // it's already there - - if( recentFiles.size() < 5) - recentFiles.add(0,file); - else{ - recentFiles.remove(recentFiles.remove(recentFiles.size()-1)); - recentFiles.add(0,file); - } - - pRecentFileMenu.clear(); - - Iterator it = recentFiles.iterator(); - while (it.hasNext()) { - pRecentFileMenu.insertItem((String)it.next()); - } - - } - - /** opens a file specified by commandline option - */ - public void openDocumentFile(KURL url) { - slotStatusMsg(i18n("Opening file...")); - - KScribbleDoc doc; - String file = url.directory(false,true) + url.fileName(); - - Iterator it = pDocList.iterator(); - - while (it.hasNext()) { - - doc = (KScribbleDoc)it.next(); - // check, if document already open. If yes, set the focus to the first view - if(doc.pathName().equals(file)) { - - KScribbleView view=doc.firstView(); - view.setFocus(); - return; - } - } - doc = new KScribbleDoc(); - pDocList.add(doc); - doc.newDocument(); - // Creates an untitled window if file is 0 - if(file == null || file.length() == 0) { - untitledCount+=1; - String fileName= i18n("Untitled" +untitledCount); - doc.setPathName(fileName); - doc.setTitle(fileName); - } - // Open the file - else { - - String format= TQImageIO.imageFormat(file); - if(!doc.openDocument(file,format)) - KMessageBox.error (this,i18n("Could not open document !"), i18n("Error !"),KMessageBox.Notify); - addRecentFile(file); - } - // create the window - createClient(doc); - slotStatusMsg(i18n("Ready.")); - - } - - - public void openDocumentFile() { - openDocumentFile(new KURL()); - return; - } - - void windowMenuAboutToShow() { - pWindowMenu.clear(); - - pWindowMenu.insertItem(i18n("&New Window"), ID_WINDOW_NEW_WINDOW); - pWindowMenu.insertItem(i18n("&Cascade"), - pWorkspace, SLOT("cascade()" ),new TQKeySequence(0) , ID_WINDOW_CASCADE ); - pWindowMenu.insertItem(i18n("&Tile"), - pWorkspace, SLOT("tile()" ),new TQKeySequence(0) , ID_WINDOW_TILE ); - - if ( pWorkspace.windowList().isEmpty() ) { - - disableCommand(ID_WINDOW_NEW_WINDOW); - disableCommand(ID_WINDOW_CASCADE); - disableCommand(ID_WINDOW_TILE); - } - - pWindowMenu.insertSeparator(); - - ArrayList windows = pWorkspace.windowList(); - - for ( int i = 0; i < windows.size(); ++i ) { - int id = pWindowMenu.insertItem((i+1)+ ((TQWidget)windows.get(i)).caption(), - this, SLOT( "windowMenuActivated( int )" ) ); - pWindowMenu.setItemParameter( id, i ); - pWindowMenu.setItemChecked( id, pWorkspace.activeWindow() == (TQWidget)windows.get(i) ); - } - } - - void windowMenuActivated( int id ) { - TQWidget w = (TQWidget)pWorkspace.windowList().get( id ); - if ( w != null ) - w.setFocus(); - } - - void setWndTitle(TQWidget qw){ - setCaption(pWorkspace.activeWindow() != null ? pWorkspace.activeWindow().caption() : ""); - } - - void enableCommand(int id_) { - /////////////////////////////////////////////////////////////////// - // enable menu and toolbar functions by their ID's - menuBar().setItemEnabled(id_, true); - toolBar().setItemEnabled(id_, true); - } - - void disableCommand(int id_) { - /////////////////////////////////////////////////////////////////// - // disable menu and toolbar functions by their ID's - menuBar().setItemEnabled(id_, false); - toolBar().setItemEnabled(id_, false); - } - - void commandCallback(int id_) { - switch (id_) { - case ID_FILE_NEW: - slotFileNew(); - break; - - case ID_FILE_OPEN: - slotFileOpen(); - break; - - case ID_FILE_SAVE: - slotFileSave(); - break; - - case ID_FILE_SAVE_AS: - slotFileSaveAs(); - break; - - case ID_FILE_CLOSE: - slotFileClose(); - break; - - case ID_FILE_PRINT: - slotFilePrint(); - break; - - case ID_FILE_QUIT: - slotFileQuit(); - break; - - case ID_EDIT_CUT: - slotEditCut(); - break; - - case ID_EDIT_COPY: - slotEditCopy(); - break; - - case ID_EDIT_PASTE: - slotEditPaste(); - break; - - case ID_EDIT_CLEAR_ALL: - slotEditClearAll(); - break; - - case ID_PEN_BRUSH: - slotPenBrush(); - break; - - case ID_PEN_COLOR: - slotPenColor(); - break; - - case ID_VIEW_TOOLBAR: - slotViewToolBar(); - break; - - case ID_VIEW_STATUSBAR: - slotViewStatusBar(); - break; - - case ID_WINDOW_NEW_WINDOW: - slotWindowNewWindow(); - break; - - default: - break; - } - } - - void statusCallback(int id_) { - switch (id_) { - case ID_FILE_NEW: - slotStatusHelpMsg(i18n("Creates a new document")); - break; - - case ID_FILE_OPEN: - slotStatusHelpMsg(i18n("Opens an existing document")); - break; - - case ID_FILE_OPEN_RECENT: - slotStatusHelpMsg(i18n("Opens a recently used file")); - break; - - case ID_FILE_SAVE: - slotStatusHelpMsg(i18n("Saves the currently active document")); - break; - - case ID_FILE_SAVE_AS: - slotStatusHelpMsg(i18n("Saves the currently active document as under a new filename")); - break; - - case ID_FILE_CLOSE: - slotStatusHelpMsg(i18n("Closes the currently active document")); - break; - - case ID_FILE_PRINT: - slotStatusHelpMsg(i18n("Prints out the actual document")); - break; - - case ID_FILE_QUIT: - slotStatusHelpMsg(i18n("Quits the application")); - break; - - case ID_EDIT_UNDO: - slotStatusHelpMsg(i18n("Reverts the last editing action")); - break; - - case ID_EDIT_CUT: - slotStatusHelpMsg(i18n("Cuts the selected section and puts it to the clipboard")); - break; - - case ID_EDIT_COPY: - slotStatusHelpMsg(i18n("Copies the selected section to the clipboard")); - break; - - case ID_EDIT_PASTE: - slotStatusHelpMsg(i18n("Pastes the clipboard contents to actual position")); - break; - - case ID_EDIT_CLEAR_ALL: - slotStatusHelpMsg(i18n("Clears the document contents")); - break; - - case ID_PEN_BRUSH: - slotStatusHelpMsg(i18n("Sets the pen width")); - break; - - case ID_PEN_COLOR: - slotStatusHelpMsg(i18n("Sets the current pen color")); - break; - - case ID_VIEW_TOOLBAR: - slotStatusHelpMsg(i18n("Enables/disables the toolbar")); - break; - - case ID_VIEW_STATUSBAR: - slotStatusHelpMsg(i18n("Enables/disables the statusbar")); - break; - - case ID_WINDOW_NEW_WINDOW: - slotStatusHelpMsg(i18n("Opens a new view for the current document")); - break; - - case ID_WINDOW_CASCADE: - slotStatusHelpMsg(i18n("Cascades all windows")); - break; - - case ID_WINDOW_TILE: - slotStatusHelpMsg(i18n("Tiles all windows")); - break; - - default: - break; - } - } - - void slotStatusHelpMsg(String text) { - /////////////////////////////////////////////////////////////////// - // change status message of whole statusbar temporary (text, msec) - statusBar().message(text, 2000); - } - - - /** returns a pointer to the current document connected to the KTMainWindow instance and is used by - * the View class to access the document object's methods - */ - public KScribbleDoc getDocument() { - return doc; - } - - /** save general Options like all bar positions and status as well as the geometry and the recent file list to the configuration - * file - */ - protected void saveOptions() { - config.setGroup("General Options"); - config.writeEntry("Geometry", size()); - config.writeEntry("Show Toolbar", toolBar().isVisible()); - config.writeEntry("Show Statusbar",statusBar().isVisible()); - config.writeEntry("ToolBarPos", (int) toolBar().barPos()); - String[] rf = new String[recentFiles.size()]; - rf = (String[]) recentFiles.toArray(rf); - if (rf != null) - config.writeEntry("Recent Files", rf); - } - - - - /** read general Options again and initialize all variables like the recent file list - */ - private void readOptions() { - - config.setGroup("General Options"); - - // bar status settings - boolean bViewToolbar = config.readBoolEntry("Show Toolbar", true); - menuBar().setItemChecked(ID_VIEW_TOOLBAR, bViewToolbar); - if(!bViewToolbar) { - toolBar("mainToolBar").hide(); - } - - boolean bViewStatusbar = config.readBoolEntry("Show Statusbar", true); - menuBar().setItemChecked(ID_VIEW_STATUSBAR, bViewStatusbar); - if(!bViewStatusbar) { - toolBar("mainToolBar").hide(); - } - - // bar position settings - int toolBarPos = TDEToolBar.Top; - toolBarPos = config.readUnsignedNumEntry("ToolBarPos", TDEToolBar.Top); - toolBar().setBarPos(toolBarPos); - - // initialize the recent file list - // commented out until fix is applied. - recentFiles = config.readListEntry("Recent Files"); - Iterator it = recentFiles.iterator(); - while (it.hasNext()) { - pRecentFileMenu.insertItem((String) it.next()); - } - - // Read the size information and resize from settings. - TQSize size = new TQSize(); - config.readSizeEntry("Geometry",size); - if(!size.isEmpty()) { - resize(size); - } - else - resize(400,350); - - } - - /** saves the window properties for each open window during session end to the session config file, including saving the currently - * opened file by a temporary filename provided by TDEApplication. - * @see KTMainWindow#saveProperties - */ - protected void saveProperties(TDEConfig _cfg) { - - } - - - /** reads the session config file and restores the application's state including the last opened files and documents by reading the - * temporary files saved by saveProperties() - * @see KTMainWindow#readProperties - */ - protected void readProperties(TDEConfig _cfg) { - } - - /** queryClose is called by KTMainWindow on each closeEvent of a window. Against the - * default implementation (only returns true), this calles saveModified() on the document object to ask if the document shall - * be saved if Modified; on cancel the closeEvent is rejected. - * @see KTMainWindow#queryClose - * @see KTMainWindow#closeEvent - */ - protected boolean queryClose() { - - ArrayList saveFiles = new ArrayList(); - KScribbleDoc doc; - - if(pDocList.isEmpty()) - return true; - - Iterator it = pDocList.iterator(); - - while (it.hasNext()) { - doc = (KScribbleDoc)it.next(); - if(doc.isModified()) - saveFiles.add(doc.title()); - - } - - if(saveFiles.isEmpty()) - return true; - - // lets load up a String array with the documents to save. - String[] sf = new String[saveFiles.size()]; - for (int x = 0; x < saveFiles.size(); x++) { - sf[x] = (String)saveFiles.get(x); - } - switch (KMessageBox.questionYesNoList(this, - i18n("One or more documents have been modified.\nSave changes before exiting?"),sf)) - { - case KMessageBox.Yes: - - Iterator itr = pDocList.iterator(); - - while (itr.hasNext()) { - doc = (KScribbleDoc)itr.next(); - if(doc.title().indexOf(i18n("Untitled")) > 0) { - - slotFileSaveAs(); - } - else { - if(!doc.saveDocument(doc.pathName())){ - KMessageBox.error (this,i18n("Could not save the current document !"), i18n("I/O Error !"),KMessageBox.Notify); - return false; - } - - } - - - } - return true; - case KMessageBox.No: - default: - return true; - } - - } - - /** queryExit is called by KTMainWindow when the last window of the application is going to be closed during the closeEvent(). - * Against the default implementation that just returns true, this calls saveOptions() to save the settings of the last window's - * properties. - * @see KTMainWindow#queryExit - * @see KTMainWindow#closeEvent - */ - protected boolean queryExit() { - saveOptions(); - return true; - } - -///////////////////////////////////////////////////////////////////// -// SLOT IMPLEMENTATION -///////////////////////////////////////////////////////////////////// - - - void slotFileNew() { - slotStatusMsg(i18n("Creating new document...")); - - openDocumentFile(); - - slotStatusMsg(i18n("Ready.")); - } - - void slotFileOpen() { - slotStatusMsg(i18n("Opening file...")); - - String fileToOpen=KFileDialog.getOpenFileName(TQDir.currentDirPath(), - KImageIO.pattern(KImageIO.Reading), this, i18n("Open File...")); - if(fileToOpen != null && fileToOpen.length() > 0) { - openDocumentFile(new KURL(fileToOpen)); - } - - slotStatusMsg(i18n("Ready.")); - } - - - void slotFileSave() { - slotStatusMsg(i18n("Saving file...")); - KScribbleView m = (KScribbleView)pWorkspace.activeWindow(); - if( m != null) { - KScribbleDoc doc = m.getDocument(); - if(doc.title().indexOf(i18n("Untitled")) > 0) - slotFileSaveAs(); - else - if(!doc.saveDocument(doc.pathName())) - KMessageBox.error (this,i18n("Could not save the current document !"), i18n("I/O Error !"),KMessageBox.Notify); } - - - slotStatusMsg(i18n("Ready.")); - } - - void slotFileSaveAs() { - slotStatusMsg(i18n("Saving file with a new filename...")); - - String newName=KFileDialog.getSaveFileName(TQDir.currentDirPath(), - KImageIO.pattern(KImageIO.Writing), this, i18n("Save as...")); - - if(newName != null) { - KScribbleView m = (KScribbleView)pWorkspace.activeWindow(); - if( m != null ) { - KScribbleDoc doc = m.getDocument(); - - String format=new TQFileInfo(newName).extension(); - format=format.toUpperCase(); - - if(!doc.saveDocument(newName,format)) { - KMessageBox.error (this,i18n("Could not save the current document !"), i18n("I/O Error !"),KMessageBox.Notify); - return; - } - doc.changedViewList(); - setWndTitle(m); - } - - } - - slotStatusMsg(i18n("Ready.")); - } - - void slotFileClose() { - slotStatusMsg(i18n("Closing file...")); - - KScribbleView m = (KScribbleView)pWorkspace.activeWindow(); - if( m != null ) { - KScribbleDoc doc=m.getDocument(); - doc.closeDocument(); - } - - - slotStatusMsg(i18n("Ready.")); - } - - void slotFilePrint() { - slotStatusMsg(i18n("Printing...")); - - KScribbleView m = (KScribbleView) pWorkspace.activeWindow(); - if ( m != null) - m.print( printer ); - - slotStatusMsg(i18n("Ready.")); - } - - void slotFileQuit() { - slotStatusMsg(i18n("Exiting...")); - saveOptions(); - // close the first window, the list makes the next one the first again. - // This ensures that queryClose() is called on each window to ask for closing - TDEMainWindow w; - - ArrayList memberlist = memberList(); - if(memberlist != null) { - Iterator it = memberlist.iterator(); - while (it.hasNext()) { - w = (TDEMainWindow)it.next(); - // only close the window if the closeEvent is accepted. If the user - // presses Cancel on the saveModified() dialog, - // the window and the application stay open. - if(!w.close()) - break; - } - } - slotStatusMsg(i18n("Ready.")); - } - - void slotFileOpenRecent(int id_) { - slotStatusMsg(i18n("Opening file...")); - - KURL kurl = new KURL(pRecentFileMenu.text(id_)); -// openDocumentFile(pRecentFileMenu.text(id_)); - openDocumentFile(kurl); - slotStatusMsg(i18n("Ready.")); - } - - void slotEditClearAll() { - slotStatusMsg(i18n("Clearing the document contents...")); - - KScribbleView m = (KScribbleView) pWorkspace.activeWindow(); - if ( m != null ){ - KScribbleDoc pDoc = m.getDocument(); - pDoc.editClearAll(); - } - slotStatusMsg(i18n("Ready.")); - } - - void slotPenBrush() { - slotStatusMsg(i18n("Setting brush width...")); - - // get one window with document for a current pen width - ArrayList windows = pWorkspace.windowList(); - KScribbleView m = (KScribbleView)windows.get(0); - KScribbleDoc pDoc = m.getDocument(); - int curr_width=pDoc.penWidth(); - - // create the dialog, get the new width and set the pen width for all documents - KPenBrushDlg dlg= new KPenBrushDlg(curr_width,this,""); - if(dlg.exec() > 0){ - int width=dlg.getPenWidth(); - for ( int i = 0; i < windows.size(); ++i ) { - m = (KScribbleView)windows.get(i); - if ( m != null ) { - pDoc = m.getDocument(); - pDoc.setPenWidth(width); - } - } - } - slotStatusMsg(i18n("Ready.")); - } - - void slotPenColor() { - slotStatusMsg(i18n("Selecting pen color...")); - - TQColor myColor = new TQColor(); - int result = KColorDialog.getColor( myColor, this ); - if ( result == KColorDialog.Accepted ) - { - ArrayList windows = pWorkspace.windowList(); - KScribbleDoc pDoc; - KScribbleView m; - for ( int i = 0; i < windows.size(); ++i ) { - m = (KScribbleView)windows.get(i); - if ( m != null) { - pDoc = m.getDocument(); - pDoc.setPenColor(myColor); - } - } - } - slotStatusMsg(i18n("Ready.")); - } - - void slotEditUndo() { - slotStatusMsg(i18n("Reverting last action...")); - - KScribbleView m = (KScribbleView) pWorkspace.activeWindow(); -// if ( m != null ) -// m.undo(); - - slotStatusMsg(i18n("Ready.")); - } - - /** put the marked object into the clipboard and remove - * it from the document - */ - void slotEditCut() { - slotStatusMsg(i18n("Cutting selection...")); - - KScribbleView m = (KScribbleView) pWorkspace.activeWindow(); - if ( m != null ) - m.cutSelection(); - - slotStatusMsg(i18n("Ready.")); - } - - /** put the marked text/object into the clipboard - */ - public void slotEditCopy() { - slotStatusMsg(i18n("Copying selection to clipboard...")); - - KScribbleView m = (KScribbleView) pWorkspace.activeWindow(); - if ( m != null) - m.copySelection(); - - slotStatusMsg(i18n("Ready.")); - } - - /** paste the clipboard into the document - */ - public void slotEditPaste() { - slotStatusMsg(i18n("Inserting clipboard contents...")); - - KScribbleView m = (KScribbleView) pWorkspace.activeWindow(); - if ( m != null ) { - m.pasteSelection(); - } - slotStatusMsg(i18n("Ready.")); - } - - /** toggles the toolbar - */ - - void slotViewToolBar() { - slotStatusMsg(i18n("Toggle the toolbar...")); - /////////////////////////////////////////////////////////////////// - // turn Toolbar on or off - if( menuBar().isItemChecked(ID_VIEW_TOOLBAR)) { - menuBar().setItemChecked(ID_VIEW_TOOLBAR, false); - toolBar("mainToolBar").hide(); - - } - else { - menuBar().setItemChecked(ID_VIEW_TOOLBAR, true); - toolBar("mainToolBar").show(); - } - - slotStatusMsg(i18n("Ready.")); - } - - /** toggles the statusbar - */ - void slotViewStatusBar() { - slotStatusMsg(i18n("Toggle the statusbar...")); - /////////////////////////////////////////////////////////////////// - //turn Statusbar on or off - if( menuBar().isItemChecked(ID_VIEW_STATUSBAR)) { - menuBar().setItemChecked(ID_VIEW_STATUSBAR, false); - kstatusBar().hide(); - - } - else { - menuBar().setItemChecked(ID_VIEW_STATUSBAR, true); - kstatusBar().show(); - } - - slotStatusMsg(i18n("Ready.")); - } - - void slotWindowNewWindow() { - slotStatusMsg(i18n("Opening a new application window...")); - - KScribbleView m = (KScribbleView) pWorkspace.activeWindow(); - if ( m != null ){ - KScribbleDoc doc = m.getDocument(); - createClient(doc); - } - - slotStatusMsg(i18n("Ready.")); - } - - /** changes the statusbar contents for the standard label permanently, used to indicate current actions. - * @param text the text that is displayed in the statusbar - */ - public void slotStatusMsg(String text) { - /////////////////////////////////////////////////////////////////// - // change status message permanently - kstatusBar().clear(); - kstatusBar().changeItem(text, ID_STATUS_MSG); - } - - /** accepts drops and opens a new document - for each drop */ - protected void dropEvent( TQDropEvent e){ - TQImage img = new TQImage(); - if ( TQImageDrag.decode(e, img) ) { - KScribbleDoc doc = new KScribbleDoc(); - untitledCount+=1; - String fileName= i18n("Untitled") + untitledCount; - doc.setPathName(fileName); - doc.setTitle(fileName); - doc.newDocument(); - pDocList.add(doc); - KPixmap tmp = new KPixmap(); - tmp.resize(img.size()); - tmp.convertFromImage(img); - doc.setPixmap(tmp); - doc.resizeDocument(tmp.size()); - doc.setModified(); - createClient(doc); - } - } - /** accepts drag events for images */ - protected void dragEnterEvent( TQDragEnterEvent e){ - e.accept(TQImageDrag.canDecode(e)); - } - - -} |