Git commit 3e9cd29c6f3f42931c08fdaf8000155b2f41d94e by Thomas Eschenbacher. Committed on 21/03/2015 at 12:25. Pushed by eschenbacher into branch 'master'.
bugfix: minimized windows were not migrated properly when switching GUI type new command: window:minimize minor EBN fix in stringenter dialog M +2 -0 CHANGES M +13 -0 doc/en/index.docbook M +33 -8 kwave/TopWidget.cpp M +4 -2 libkwave/SignalManager.cpp M +1 -1 plugins/stringenter/StringEnterDialog.h http://commits.kde.org/kwave/3e9cd29c6f3f42931c08fdaf8000155b2f41d94e diff --git a/CHANGES b/CHANGES index ce410d8..a2a78f3 100644 --- a/CHANGES +++ b/CHANGES @@ -16,6 +16,8 @@ * file info dialog: MPEG settings were not handled properly * bugfix: assert/numeric overflow in selectnextlabels() at end of file * new plugin: stringenter + * bugfix: minimized windows were not migrated properly when switching GUI type + * new command: window:minimize 0.8.99-2 [2015-01-02] diff --git a/doc/en/index.docbook b/doc/en/index.docbook index d82cd71..25bc3c2 100644 --- a/doc/en/index.docbook +++ b/doc/en/index.docbook @@ -125,6 +125,7 @@ <!ENTITY no-i18n-cmd_window_cascade "window:cascade"> <!ENTITY no-i18n-cmd_window_click "window:click"> <!ENTITY no-i18n-cmd_window_close "window:close"> + <!ENTITY no-i18n-cmd_window_minimize "window:minimize"> <!ENTITY no-i18n-cmd_window_mousemove "window:mousemove"> <!ENTITY no-i18n-cmd_window_next_sub "window:next_sub"> <!ENTITY no-i18n-cmd_window_prev_sub "window:prev_sub"> @@ -3127,6 +3128,7 @@ <indexentry><primaryie><link linkend="cmd_sect_window_cascade" endterm="cmd_title_window_cascade"/></primaryie></indexentry> <indexentry><primaryie><link linkend="cmd_sect_window_click" endterm="cmd_title_window_click"/></primaryie></indexentry> <indexentry><primaryie><link linkend="cmd_sect_window_close" endterm="cmd_title_window_close"/></primaryie></indexentry> + <indexentry><primaryie><link linkend="cmd_sect_window_minimize" endterm="cmd_title_window_minimize"/></primaryie></indexentry> <indexentry><primaryie><link linkend="cmd_sect_window_mousemove" endterm="cmd_title_window_mousemove"/></primaryie></indexentry> <indexentry><primaryie><link linkend="cmd_sect_window_next_sub" endterm="cmd_title_window_next_sub"/></primaryie></indexentry> <indexentry><primaryie><link linkend="cmd_sect_window_prev_sub" endterm="cmd_title_window_prev_sub"/></primaryie></indexentry> @@ -4828,6 +4830,17 @@ </tbody></tgroup></informaltable></simplesect> </sect2> + <!-- @COMMAND@ window:minimize() --> + <sect2 id="cmd_sect_window_minimize"><title id="cmd_title_window_minimize">&no-i18n-cmd_window_minimize;</title> + <simplesect> + <title>&i18n-cmd_syntax;<command>&no-i18n-cmd_window_minimize;</command></title> + <para> + Minimizes the currently active sub window when in MDI mode or + the current toplevel window when in SDI or Tab mode. + </para> + </simplesect> + </sect2> + <!-- @COMMAND@ window:mousemove(class,x,y) --> <sect2 id="cmd_sect_window_mousemove"><title id="cmd_title_window_mousemove">&no-i18n-cmd_window_mousemove;</title> <simplesect> diff --git a/kwave/TopWidget.cpp b/kwave/TopWidget.cpp index ac5b77e..eda032a 100644 --- a/kwave/TopWidget.cpp +++ b/kwave/TopWidget.cpp @@ -531,8 +531,17 @@ QList<Kwave::FileContext *> Kwave::TopWidget::detachAllContexts() // remove the entry from the map to prevent damage i.remove(); - // detach the main widget from the MDI sub window if (sub) { + // leave the "minimized" state before migration + Qt::WindowStates state = sub->windowState(); + if (state & Qt::WindowMinimized) + { + state &= ~Qt::WindowMinimized; + sub->setWindowState(state); + sub->showNormal(); + } + + // detach the main widget from the MDI sub window sub->setWidget(0); delete sub; } @@ -662,20 +671,18 @@ void Kwave::TopWidget::insertContext(Kwave::FileContext *context) // single sub window, switching to tab mode shows a tab + // a sub window with frame and title (not maximized within // the mdi area) + Qt::WindowStates state = sub->windowState(); if (m_application.guiType() == Kwave::App::GUI_TAB) { - sub->setWindowState( - sub->windowState() | Qt::WindowMaximized - ); + state |= Qt::WindowMaximized; + sub->setWindowState(state); sub->show(); } else { - sub->setWindowState( - sub->windowState() & ~Qt::WindowMaximized - ); + state &= ~Qt::WindowMaximized; + sub->setWindowState(state); sub->showNormal(); - } m_mdi_area->setActiveSubWindow(sub); @@ -774,14 +781,31 @@ int Kwave::TopWidget::executeCommand(const QString &line) { KMessageBox::enableAllMessages(); } + CASE_COMMAND("window:minimize") + if (m_application.guiType() == Kwave::App::GUI_MDI) { + // in case of MDI mode: minimize the current sub window + if (m_mdi_area) { + QMdiSubWindow *sub = m_mdi_area->activeSubWindow(); + if (!sub) return -1; + sub->setWindowState(windowState() | Qt::WindowMinimized); + } + } else { + // in case of TAB or SDI mode: minimize the toplevel window + setWindowState(windowState() | Qt::WindowMinimized); + } + return 0; CASE_COMMAND("window:next_sub") if (m_mdi_area) m_mdi_area->activateNextSubWindow(); + return 0; CASE_COMMAND("window:prev_sub") if (m_mdi_area) m_mdi_area->activatePreviousSubWindow(); + return 0; CASE_COMMAND("window:cascade") if (m_mdi_area) m_mdi_area->cascadeSubWindows(); + return 0; CASE_COMMAND("window:tile") if (m_mdi_area) m_mdi_area->tileSubWindows(); + return 0; CASE_COMMAND("window:tile_vertical") if (!m_mdi_area) return 0; @@ -806,6 +830,7 @@ int Kwave::TopWidget::executeCommand(const QString &line) sub->move(0, y); y += increment; } + return 0; CASE_COMMAND("window:activate") if (m_mdi_area) { diff --git a/libkwave/SignalManager.cpp b/libkwave/SignalManager.cpp index b788af1..60d5325 100644 --- a/libkwave/SignalManager.cpp +++ b/libkwave/SignalManager.cpp @@ -894,9 +894,11 @@ int Kwave::SignalManager::executeCommand(const QString &command) } } - if (found) + if (found) { m_meta_data.replace(Kwave::MetaDataList(info)); - else + // we now have new meta data + emit sigMetaDataChanged(m_meta_data); + } else return -EINVAL; CASE_COMMAND("dump_metadata") qDebug("DUMP OF META DATA => %s", DBG(parser.firstParam())); diff --git a/plugins/stringenter/StringEnterDialog.h b/plugins/stringenter/StringEnterDialog.h index 443cc42..127d874 100644 --- a/plugins/stringenter/StringEnterDialog.h +++ b/plugins/stringenter/StringEnterDialog.h @@ -39,7 +39,7 @@ namespace Kwave * Constructor. * @param parent the parent widget the dialog belongs to */ - StringEnterDialog(QWidget *parent); + explicit StringEnterDialog(QWidget *parent); /** Destructor */ virtual ~StringEnterDialog();
