From f31a541925033c2ef5e27b85c099d47791b50121 Mon Sep 17 00:00:00 2001 From: Holger Freyther Date: Wed, 29 Nov 2006 00:02:19 +0000 Subject: Make it (almost) possible to have more than one Dolphin KMainWindow Create a DolphinApplication, holding DolphinMainWindows and update the code to use the DolphinView to get the MainWindow, or get a ptr to the MainWindow directly. Or if all windows are effected go through the DolphinApplication to update every mainwindow. The UndowManager and ProgressIndicator have a rather strange relationship and will need some more attention but as UndoManager will be killed anyway I have skipped this. More cleanup, debugging and thinking is needed. svn path=/trunk/playground/utils/dolphin/; revision=608945 --- src/THOUGHTS.zecke | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/THOUGHTS.zecke (limited to 'src/THOUGHTS.zecke') diff --git a/src/THOUGHTS.zecke b/src/THOUGHTS.zecke new file mode 100644 index 000000000..3b9f383fc --- /dev/null +++ b/src/THOUGHTS.zecke @@ -0,0 +1,36 @@ +Zecke's Implementation Thoughts + + +Task: Kill the Dolphin Singleton +Reasoning: Have more than one Dolphin TLW +Approach: + 1. Create DolphinApplication to hold all TLW's. + 2. Make dolphin.h dolphomainwindow.h + 3. Change the Views to have a DolphinMainWindow + parameter + +Reasoning: + I find it more natural that the DolphinApplication + holds and controls the list of managed MainWindows and + will control the life time of them, specially deleting + them on exit. + The downside is that DolphinApplication and DolphinMainWindow + need to work together but this is managable + + Making DolphinView::mainWindow() public. Most users of the + current Dolphin::mainView have a pointer to the current view + already. We could pass a second pointer for the mainwindow each + time but the same can be achieved by using the appropriate + DolphinView::mainWindow. + Another approach would be to ask the DolphinView to execute + actions on the MainWindow like it is done with declareViewActive + in DolphinView. I'm not entirely sure which one wins but currently + using mainWindow() does not show any negative impact. + + 2 times Dolphin::mainWin was used to check if the view is current. + this can be made a method of of the view + + 1 time we want the viewChanged signal of our mainwindow to update, + the UrlNavigator could connect a signal to a signal to allow this + + 12 times this was used to access the actionCollection -- cgit v1.3.1