[kde-doc-english] [kwave] /: bugfix: minimized windows were not migrated properly when switching GUI type
Thomas Eschenbacher
Thomas.Eschenbacher at gmx.de
Sat Mar 21 12:27:42 UTC 2015
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();
More information about the kde-doc-english
mailing list