Diff
Modified: freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/centralWidget.ui (14614 => 14615)
--- freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/centralWidget.ui 2009-08-24 03:08:22 UTC (rev 14614)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/centralWidget.ui 2009-08-24 06:02:56 UTC (rev 14615)
@@ -47,7 +47,7 @@
<x>0</x>
<y>0</y>
<width>673</width>
- <height>25</height>
+ <height>22</height>
</rect>
</property>
<widget class="QMenu" name="menu_Server">
@@ -63,6 +63,8 @@
<property name="title">
<string>&File</string>
</property>
+ <addaction name="action_Save_log"/>
+ <addaction name="separator"/>
<addaction name="action_Close"/>
</widget>
<widget class="QMenu" name="menu_Edit">
@@ -134,6 +136,11 @@
<string>Realtime &Statistics</string>
</property>
</action>
+ <action name="action_Save_log">
+ <property name="text">
+ <string>&Save log</string>
+ </property>
+ </action>
</widget>
<resources>
<include location="../../resources/resources.qrc"/>
Modified: freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/consoleplugin.cpp (14614 => 14615)
--- freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/consoleplugin.cpp 2009-08-24 03:08:22 UTC (rev 14614)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/consoleplugin.cpp 2009-08-24 06:02:56 UTC (rev 14615)
@@ -27,6 +27,8 @@
this, SLOT(disconnect()));
QObject::connect(consoleWindow->action_Clear, SIGNAL(triggered()),
this, SLOT(clearLogContents()));
+ QObject::connect(consoleWindow->action_Save_log, SIGNAL(triggered()),
+ this, SLOT(saveLogToFile()));
QObject::connect(consoleWindow->actionRealtime_Statistics, SIGNAL(triggered()),
this, SLOT(showRealtimeStats()));
}
@@ -165,6 +167,13 @@
tab->clearConsoleContents();
}
+void ConsolePlugin::saveLogToFile()
+{
+ ConsoleTabWidget *tab = qobject_cast<ConsoleTabWidget*>(consoleWindow->tabConsole->currentWidget());
+ if (tab)
+ tab->saveLogToFile();
+}
+
void ConsolePlugin::showRealtimeStats()
{
ConsoleTabWidget *tab = qobject_cast<ConsoleTabWidget*>(consoleWindow->tabConsole->currentWidget());
Modified: freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/consoleplugin.h (14614 => 14615)
--- freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/consoleplugin.h 2009-08-24 03:08:22 UTC (rev 14614)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/consoleplugin.h 2009-08-24 06:02:56 UTC (rev 14615)
@@ -75,6 +75,7 @@
void disconnect();
void newConnection();
void clearLogContents();
+ void saveLogToFile();
void showRealtimeStats();
void changeConsoleBackgroundColor();
void changeAlertBackgroundColor();
Modified: freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/consoletabwidget.cpp (14614 => 14615)
--- freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/consoletabwidget.cpp 2009-08-24 03:08:22 UTC (rev 14614)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/consoletabwidget.cpp 2009-08-24 06:02:56 UTC (rev 14615)
@@ -330,3 +330,27 @@
m_ui->filterSyntaxComboBox->setCurrentIndex(3);
m_ui->lineFilter->setText(uuid);
}
+
+void ConsoleTabWidget::saveLogToFile()
+{
+ QString fileName = QFileDialog::getSaveFileName(this);
+ if (fileName.isEmpty())
+ return;
+
+ QFile file(fileName);
+ if (!file.open(QFile::WriteOnly | QFile::Text)) {
+ QMessageBox::warning(this, tr("Application"),
+ tr("Cannot write file %1:\n%2.")
+ .arg(fileName)
+ .arg(file.errorString()));
+ return;
+ }
+
+ QTextStream out(&file);
+ QApplication::setOverrideCursor(Qt::WaitCursor);
+ foreach(QStandardItem *item, sourceModel->modelData())
+ {
+ out << item->data(Qt::DisplayRole).toString() << "\n";
+ }
+ QApplication::restoreOverrideCursor();
+}
Modified: freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/consoletabwidget.h (14614 => 14615)
--- freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/consoletabwidget.h 2009-08-24 03:08:22 UTC (rev 14614)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/consoletabwidget.h 2009-08-24 06:02:56 UTC (rev 14615)
@@ -62,6 +62,7 @@
public slots:
void clearConsoleContents();
void showRealtimeStats();
+ void saveLogToFile();
void filterLogUUID(QString);
protected:
Modified: freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/sortfilterproxymodel.h (14614 => 14615)
--- freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/sortfilterproxymodel.h 2009-08-24 03:08:22 UTC (rev 14614)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/sortfilterproxymodel.h 2009-08-24 06:02:56 UTC (rev 14615)
@@ -56,6 +56,7 @@
QVariant data ( const QModelIndex & index, int role = Qt::DisplayRole ) const;
void appendRow ( QStandardItem* item );
void clear();
+ QList<QStandardItem *> modelData() { return _listDisplayModel; }
enum {
LogLevelRole = Qt::UserRole,