Hiya, One of the bigger points of discussions related to KDE's UI Style Guide is the layout and behaviour of the File-menu. The following text is intented to lead a discussion on this issue. Please note: * KDE prefers SDI above MDI. This is not open for discussion. * We need to discuss what the proper behaviour for KDE's SDI model is. I have listed two possible SDI models. Please consider the whole model when commenting on a model. * This is about "Document Oriented Applications". That means that this does not apply to e.g. kppp, kmahjong and CD Player since they are not document oriented. * Be nice. Cheers, Waldo --- Note to developers: When it reads "Application" think KTMainWindow instead of KApplication!!! When it reads "UNIX-Process" think KApplication!! See also http://developer.kde.org/documentation/standards/kde/style/basics/terminology.html --- File Document Oriented Applications This section describes the file menu for a document oriented application. An application is document oriented if it operates on a document of some sort. Examples of documents can be: Text Processing Documents, Images, Drawings, etc. A document always has a storage location associated with it. This is the location where the document is normally stored. The storage location can be undefined if the document has just been created. The storage location is often a filename or an URL. A typical File menu of a document oriented application would look like this: New Ctrl+N Open... Ctrl+O Open Recent --> Save Ctrl+S Save As... Close Ctrl+W Print... Ctrl+P Quit Ctrl+Q --- Not all menu items have to be present. If they are present, the items should have the following meaning: New ==== Opens a new empty document. If the application supports templates a sub-menu may be present from which a template can be choosen. In that case the menu item does not have a shortcut key combination assigned but a little arrow indicating that a submenu will be presented when selected. Open ===== Opens an existing document. A file selection dialog should popup to let the user choose which document to open. Open Recent =========== Offers a submenu with entries of the latest recently opened documents (the latest is on the top). Save ==== Saves document to its storage location. If the document does not have a storage location yet, this option is treated as if the Save As option from the file menu was selected. Save As... ======== Opens the standard-file-dialog to let the user select a storage location for the document. It then saves the document to this location. Close ===== Closes the document. Print... ===== Opens a dialog from where you can print the document. Quit ==== Closes the application. Note that the application is _NOT_ necaserrily the same as the UNIX Process. --- MDI implementations In MDI the application is represented by the application-window. The application-window can contain a number of document-windows which represent open documents. Each opened document is represented by a document-window. Starting up an MDI application without specifying a document to load will result in an application-window without any document windows. When a document is opened by selecting either New or Open in the File-menu, a new document-window appears. When the document is closed by selecting Close in the File-menu, the document-window is closed as well. Closing a document-window by selecting the X on the window border is equivalent with selecting Close in the File-menu. Closing the application by selecting Quit in the File-menu closes the application window as well as all document-windows and the documents with it. Closing the application-window by selecting the X on the window border is equivalent with selecting Quit in the File-menu. Open for discussion There are two solutions for SDI which are more or less consistent and complete. KDE should recommend one of them. The first one assumes a strict 1:1:1 relation between application:window:document. This means that a window _always_ contains a real document and that closing a document means closing the window and the application. The second one assumes a less strict 1:1:1* relation between application:window:document. This means that a window contains either a real or a dummy document. Closing a document will keep the window around and fill it with a dummy document instead. Now opening a new or an existing document will replace the dummy document. This allows the user to replace the contents of a window with a new document. SDI implementations (I) In SDI the application is represented by the document-window. Each document-window always contains a single document. Starting up an SDI application without specifying a document to load causes the application to pop up a dialog which asks the user whether he/she wants to open an existing document or whether he/she wants to create a new one. When a document is opened by selecting either New or Open in the File-menu, a new application is started in which the document is loaded. Please note that a single UNIX process may serve multiple application instances. Closing the document by selecting Close in the File-menu also closes the application. Closing the application by selecting Quit in the File-menu, closes the document-window and the document within it. Closing the document-window by selecting the X on the window border is equivalent with selecting Quit in the File-menu. Please note that closing the application does not necaserilly mean terminating the UNIX process, more applications instances may be served by the same UNIX process. They are unaffected! Since both Close and Quit will have the same effect in this version of SDI, only one of them should be present. This should be Close and it should be placed at the position in the file menu where the Quit would have been otherwise (At the bottom of the File-menu) The file-menu will then look like this: New Ctrl+N Open... Ctrl+O Open Recent --> Save Ctrl+S Save As... Print... Ctrl+P Close Ctrl+W SDI implementations (II) In SDI the application is represented by the document-window. Each document-window can contain a single document. Starting up an SDI application without specifying a document to load causes the application to start with a dummy document. Editing a dummy document turns it into a normal document. When a document is opened by selecting either New or Open in the File-menu, a new application is started in which the document is loaded. If a document is loaded while the application has a dummy document open, no new application is started but the document is loaded in the application itself, replacing the dummy document Please note that a single UNIX process may serve multiple application instances. Closing the document by selecting Close in the File-menu causes the application to show a dummy document. Closing the application by selecting Quit in the File-menu, closes the document-window and the document within it. Closing the document-window by selecting the X on the window border is equivalent with selecting Quit in the File-menu. Please note that closing the application does not necaserilly mean terminating the UNIX process, more applications instances may be served by the same UNIX process. They are unaffected!