Menu

#21 tab for each window, hiding in tray at close

Unstable (example)
open-rejected
nobody
None
5
2009-07-14
2009-07-14
No

If all opened windows are maximized we can switch between them only by using "Windows" menu. With patch all windows will be added to tabbar and we can switch between them by one click. Patch create 2 methods in DCConnectionManager - addTab(QWidget*, QString) and remTab(QWidget*). Chat windows don't use these methods.
Click at close button hides main window. Exit - from File->Quit or by rb-click at tray -> Quit.
Disablig/Enabling chat by rb-click at chat output and setting "Enable/Disable chat"

Discussion

  • Andrey Karlov

    Andrey Karlov - 2009-07-14

    patch

     
  • Edward Sheldrake

    If you want a hideously broken user interface design, can't you just use View mode -> Tabs ?

    It would be better to replace the QMdiArea with a QTabWidget rather than keep using the QMdiArea whilst always wishing it were a QTabWidget.

    Chat is an advantage the DC network has over other networks. I don't really see any advantage in having every other program live in the notification area. Currently the tray icon does almost nothing, and could be removed.

    I hope you've already read: http://wxdcgui.sourceforge.net/the-end.html and/or dclib/HACKING (yes that was a long time ago).

     
  • Andrey Karlov

    Andrey Karlov - 2009-07-14

    I dont think so. Just loook at http://pic.ipicture.ru/uploads/090714/ME1j7i2XkU.png
    It's a hideously broken user interface? No. If i have more then 5 opened windows then switching between them with old interface is awful and inconvenient.

    > I hope you've already read: http://wxdcgui.sourceforge.net/the-end.html and/or dclib/HACKING (yes that was a long time ago).

    Yes, I do.

     
  • Edward Sheldrake

    There aren't any maximized windows in that screenshot. You can switch between the windows by clicking on them!

    By "hideously broken interface" I was referring to all windows always maximized.

    What you first described, all windows maximized, is tabs mode. NB you can "break" tabs mode by restoring (un-maximizing) any window, you get to keep the tabs bar.

    http://wxdcgui.sourceforge.net/tabs-mode.png
    http://wxdcgui.sourceforge.net/broken-tabs-mode.png

     
  • Edward Sheldrake

    In tabs mode, you can hide the hubs tab bar.

    It's easier to switch between hubs if the hubs tab bar doesn't also contain filelist and search windows.

    Why do you need to reimplement a mousePressEvent to change the current tab and emit currentChanged, doesn't QTabBar do that anyway on left click? I see you've also added a quit button to the toolbar and also changed what happens when you double click text.

    Isn't the patch somewhat broken, the DCConnectionManager code relies on m_ClientsInTabOrder.indexOf(client) returning the correct tab index, you've added other tabs so this no longer holds, but only changed slotTabSelected to use your map, everything else that uses m_ClientsInTabOrder.indexOf(client) will be broken.

     
  • Edward Sheldrake

    • status: open --> open-rejected
     
  • Andrey Karlov

    Andrey Karlov - 2009-07-14

    > Why do you need to reimplement a mousePressEvent to change the current tab and emit currentChanged, doesn't QTabBar do that anyway on left click?

    Don't care about DCTabBar class and use QTabBar. I have created DCtabBar for adding new feature - moving tabs, but it experimental: i just forget to remove it.

    > I see you've also added a quit button to the toolbar and also changed what happens when you double click text.

    Quit button - useless for me, but useful for my friends. Double click at nick add to chat output "Nick: " - useful thing. isn't?

    > Isn't the patch somewhat broken, the DCConnectionManager code relies on m_ClientsInTabOrder.indexOf(client) returning the correct tab index, you've added other tabs so this no longer holds, but only changed slotTabSelected
    to use your map, everything else that uses m_ClientsInTabOrder.indexOf(client) will be broken.

    i'll fix this problem.

     
  • Andrey Karlov

    Andrey Karlov - 2009-07-14

    dependence from m_ClientsInTabOrder removed

     

Log in to post a comment.