Ameba Ownd

アプリで簡単、無料ホームページ作成

Multiple document interface file manager

2022.01.16 00:41




















In the MainWindow constructor, we create a QWorkspace widget and make it the central widget. We connect the QWorkspace 's windowActivated signal to two private slots. These slots ensure that the menus and the status bar always reflect the state of the currently active child window. The newFile slot corresponds to the File New menu option.


It depends on the createEditor private function to create a child Editor window. The createEditor function creates an Editor widget and sets up two signalslot connections. The first connection ensures that Edit Cut and Edit Copy are enabled or disabled depending on whether there is any selected text. The second connection ensures that the MOD indicator in the status bar is always up to date.


Because we are using MDI, it is possible that there will be multiple Editor widgets in use. This is a concern since we are only interested in responding to the copyAvailable bool and modificationChanged signals from the active Editor window, not from the others.


But these signals can only ever be emitted by the active window, so this isn't really a problem. The open function corresponds to File Open. It creates a new Editor for the new document and calls open on the Editor. It makes more sense to implement the file operations in the Editor class than in the MainWindow class, because each Editor needs to maintain its own independent state.


If the open fails, we simply close the editor since the user will have already been notified of the error. The save slot calls save on the active editor, if there is one. Again, the code that performs the real work is located in the Editor class. The activeEditor private function returns the active child window as an Editor pointer. The cut slot calls cut on the active editor. The copy , paste , and del slots follow the same pattern.


The updateMenus slot is called whenever a window is activated or when the last window is closed to update the menu system, thanks to the signalslot connection we put in the MainWindow constructor. This can cause all sorts of headaches for some addins when weird things happen. This isn't MDI, it is just using the same process for multiple toplevel windows.


The defining characteristic of MDI is that the toplevel windows has subwindows inside that you can move and resize around almost like toplevel windows. My mistake then.


This is where you will create and open databases, manage settings that apply to the entire database, access the Help Center, etc. The Project Manager allows you to manage the projects within the current database and, for many Synthesis applications, it also allows you to manage all of the folios, diagrams, reports, attachments, etc. This panel is docked on the left side of the MDI and pinned by default.


My Portal provides access to messages between users, actions that need to be performed, a list of users who are currently logged in to the same database and context-sensitive notes about the feature your are currently using.


A sleek Terminal window has been integrated in the program that runs commands over selected file, current folder or location without launching Mac OS X Terminal separately. In addition to this, Moroshka File Manager permits you to bookmark your favorite locations to access them instantly whenever required thereby averting laborious file or folder search method.


To render much simpler and organized search, the program supports wild-card entries.