Diff
Modified: freeswitch/trunk/contrib/jmesquita/fsgui/fsgui.pro (14314 => 14315)
--- freeswitch/trunk/contrib/jmesquita/fsgui/fsgui.pro 2009-07-22 00:15:36 UTC (rev 14314)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/fsgui.pro 2009-07-22 03:40:40 UTC (rev 14315)
@@ -13,7 +13,8 @@
src/consolepage.cpp \
src/preferencesdialog.cpp \
src/completers.cpp \
- src/pastebindialog.cpp
+ src/pastebindialog.cpp \
+ src/finddialog.cpp
INCLUDEPATH += ../../../libs/esl/src/include \
src/include
HEADERS += src/include/fs_gui.h \
@@ -23,12 +24,14 @@
src/include/global_defines.h \
src/include/preferencesdialog.h \
src/include/completers.h \
- src/include/pastebindialog.h
+ src/include/pastebindialog.h \
+ src/include/finddialog.h
FORMS += resources/fs_gui.ui \
resources/server_manager.ui \
resources/consolepage.ui \
resources/preferencesdialog.ui \
- resources/pastebindialog.ui
+ resources/pastebindialog.ui \
+ resources/finddialog.ui
LIBS += -L../../../libs/esl \
-lesl
RESOURCES += resources/resources.qrc
Added: freeswitch/trunk/contrib/jmesquita/fsgui/resources/finddialog.ui (0 => 14315)
--- freeswitch/trunk/contrib/jmesquita/fsgui/resources/finddialog.ui (rev 0)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/resources/finddialog.ui 2009-07-22 03:40:40 UTC (rev 14315)
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>findDialog</class>
+ <widget class="QDialog" name="findDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>298</width>
+ <height>171</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Find</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <widget class="QGroupBox" name="groupBox">
+ <property name="title">
+ <string>Find Text</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <item>
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Find What?</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="lineFind"/>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="0" column="0">
+ <widget class="QCheckBox" name="checkRegex">
+ <property name="text">
+ <string>Regular Expression</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QCheckBox" name="checkEntire">
+ <property name="text">
+ <string>Entire Word</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QCheckBox" name="checkCase">
+ <property name="text">
+ <string>Case Sensitive</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="btnFind">
+ <property name="text">
+ <string>Find</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="btnCancel">
+ <property name="text">
+ <string>Cancel</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>btnCancel</sender>
+ <signal>clicked(bool)</signal>
+ <receiver>findDialog</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>378</x>
+ <y>358</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>530</x>
+ <y>380</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
Modified: freeswitch/trunk/contrib/jmesquita/fsgui/resources/fs_gui.ui (14314 => 14315)
--- freeswitch/trunk/contrib/jmesquita/fsgui/resources/fs_gui.ui 2009-07-22 00:15:36 UTC (rev 14314)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/resources/fs_gui.ui 2009-07-22 03:40:40 UTC (rev 14315)
@@ -75,6 +75,8 @@
<property name="title">
<string>&Edit</string>
</property>
+ <addaction name="actionFind"/>
+ <addaction name="separator"/>
<addaction name="actionPreferences"/>
</widget>
<widget class="QMenu" name="menu_Tools">
@@ -165,6 +167,17 @@
<string>Ctrl+Y</string>
</property>
</action>
+ <action name="actionFind">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>&Find</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl+F</string>
+ </property>
+ </action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
Modified: freeswitch/trunk/contrib/jmesquita/fsgui/src/consolepage.cpp (14314 => 14315)
--- freeswitch/trunk/contrib/jmesquita/fsgui/src/consolepage.cpp 2009-07-22 00:15:36 UTC (rev 14314)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/src/consolepage.cpp 2009-07-22 03:40:40 UTC (rev 14315)
@@ -91,6 +91,10 @@
{
return m_ui->textConsole->toPlainText();
}
+QTextEdit *consolePage::getTextDocument()
+{
+ return m_ui->textConsole;
+}
void consolePage::doConnect()
{
eslConnection->doConnect();
Added: freeswitch/trunk/contrib/jmesquita/fsgui/src/finddialog.cpp (0 => 14315)
--- freeswitch/trunk/contrib/jmesquita/fsgui/src/finddialog.cpp (rev 0)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/src/finddialog.cpp 2009-07-22 03:40:40 UTC (rev 14315)
@@ -0,0 +1,69 @@
+#include <QtGui>
+#include "finddialog.h"
+#include "ui_finddialog.h"
+
+findDialog::findDialog(QWidget *parent, QTextEdit *console) :
+ QDialog(parent),
+ m_ui(new Ui::findDialog),
+ editConsole(console),
+ pos(0)
+{
+ m_ui->setupUi(this);
+
+ connect(m_ui->btnFind, SIGNAL(clicked()),
+ this, SLOT(findClicked()));
+ connect(this, SIGNAL(rejected()),
+ this, SLOT(cancelClicked()));
+}
+
+findDialog::~findDialog()
+{
+ delete m_ui;
+}
+
+void findDialog::changeEvent(QEvent *e)
+{
+ QDialog::changeEvent(e);
+ switch (e->type()) {
+ case QEvent::LanguageChange:
+ m_ui->retranslateUi(this);
+ break;
+ default:
+ break;
+ }
+}
+void findDialog::findClicked()
+{
+ QTextCursor findCursor;
+ QFlags<QTextDocument::FindFlag> options = 0;
+ if (m_ui->checkCase->isChecked())
+ options = options|QTextDocument::FindCaseSensitively;
+ if (m_ui->checkEntire->isChecked())
+ options = options|QTextDocument::FindWholeWords;
+
+ if (m_ui->checkRegex->isChecked())
+ {
+ findCursor = editConsole->document()->find(QRegExp(m_ui->lineFind->text()), pos, options);
+ }
+ else
+ {
+ findCursor = editConsole->document()->find(m_ui->lineFind->text(), pos, options);
+ }
+ if (findCursor.isNull())
+ {
+ QMessageBox::warning(this, tr("Find ..."),
+ tr("Nothing found"),
+ QMessageBox::Ok);
+ pos = 0;
+ m_ui->btnFind->setText(tr("Find again"));
+ return;
+ }
+ pos = findCursor.position();
+ editConsole->setTextCursor(findCursor);
+ m_ui->btnFind->setText(tr("Find next"));
+}
+void findDialog::cancelClicked()
+{
+ pos = 0;
+ m_ui->btnFind->setText(tr("Find"));
+}
Modified: freeswitch/trunk/contrib/jmesquita/fsgui/src/fs_gui.cpp (14314 => 14315)
--- freeswitch/trunk/contrib/jmesquita/fsgui/src/fs_gui.cpp 2009-07-22 00:15:36 UTC (rev 14314)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/src/fs_gui.cpp 2009-07-22 03:40:40 UTC (rev 14315)
@@ -39,6 +39,7 @@
#include "fs_gui.h"
#include "ui_fs_gui.h"
#include "consolepage.h"
+#include "finddialog.h"
#include <QtNetwork>
Cfsgui::Cfsgui(QWidget *parent) :
@@ -47,7 +48,8 @@
serverDialog(NULL),
prefDialog(NULL),
fileDialog(NULL),
- pasteDialog(NULL)
+ pasteDialog(NULL),
+ findDlg(NULL)
{
m_ui->setupUi(this);
@@ -64,6 +66,10 @@
this, SLOT(doDisconnect()));
connect(m_ui->actionSaveLog, SIGNAL(triggered()),
this, SLOT(saveLog()));
+ connect(m_ui->actionPreferences, SIGNAL(triggered()),
+ this, SLOT(showPreferences()));
+ connect(m_ui->actionFind, SIGNAL(triggered()),
+ this, SLOT(showFind()));
connect(m_ui->actionPastebinLog, SIGNAL(triggered()),
this, SLOT(pastebinLog()));
connect(m_ui->actionAbout, SIGNAL(triggered()),
@@ -75,8 +81,6 @@
this, SLOT(closeTab(int)));
connect(m_ui->tabWidget, SIGNAL(currentChanged(int)),
this, SLOT(changeTab(int)));
- connect(m_ui->actionPreferences, SIGNAL(triggered()),
- this, SLOT(showPreferences()));
}
Cfsgui::~Cfsgui()
@@ -170,6 +174,7 @@
m_ui->actionDisconnect->setEnabled(true);
m_ui->actionSaveLog->setEnabled(true);
m_ui->actionPastebinLog->setEnabled(true);
+ m_ui->actionFind->setEnabled(true);
}
void Cfsgui::gotDisconnected()
{
@@ -177,7 +182,22 @@
m_ui->actionDisconnect->setDisabled(true);
m_ui->actionSaveLog->setDisabled(true);
m_ui->actionPastebinLog->setDisabled(true);
+ m_ui->actionFind->setDisabled(true);
}
+void Cfsgui::showFind()
+{
+ consolePage *tab = static_cast<consolePage *>(m_ui->tabWidget->widget(m_ui->tabWidget->currentIndex()));
+ if (tab)
+ {
+ if (!findDlg)
+ {
+ findDlg = new findDialog(this, tab->getTextDocument());
+ }
+ findDlg->show();
+ findDlg->raise();
+ findDlg->activateWindow();
+ }
+}
void Cfsgui::backgroundColorChanged()
{
for (int i = 0; i < m_ui->tabWidget->count(); i++)
Modified: freeswitch/trunk/contrib/jmesquita/fsgui/src/include/consolepage.h (14314 => 14315)
--- freeswitch/trunk/contrib/jmesquita/fsgui/src/include/consolepage.h 2009-07-22 00:15:36 UTC (rev 14314)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/src/include/consolepage.h 2009-07-22 03:40:40 UTC (rev 14315)
@@ -26,6 +26,7 @@
void doConnect();
void doDisconnect();
QString getConsoleText();
+ QTextEdit *getTextDocument();
protected:
virtual void changeEvent(QEvent *e);
Added: freeswitch/trunk/contrib/jmesquita/fsgui/src/include/finddialog.h (0 => 14315)
--- freeswitch/trunk/contrib/jmesquita/fsgui/src/include/finddialog.h (rev 0)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/src/include/finddialog.h 2009-07-22 03:40:40 UTC (rev 14315)
@@ -0,0 +1,32 @@
+#ifndef FINDDIALOG_H
+#define FINDDIALOG_H
+
+#include <QtGui/QDialog>
+
+namespace Ui {
+ class findDialog;
+}
+
+class QTextEdit;
+
+class findDialog : public QDialog {
+ Q_OBJECT
+ Q_DISABLE_COPY(findDialog)
+public:
+ explicit findDialog(QWidget *parent, QTextEdit *console);
+ virtual ~findDialog();
+
+protected:
+ virtual void changeEvent(QEvent *e);
+
+private:
+ Ui::findDialog *m_ui;
+ QTextEdit *editConsole;
+ int pos;
+
+private slots:
+ void findClicked();
+ void cancelClicked();
+};
+
+#endif // FINDDIALOG_H
Modified: freeswitch/trunk/contrib/jmesquita/fsgui/src/include/fs_gui.h (14314 => 14315)
--- freeswitch/trunk/contrib/jmesquita/fsgui/src/include/fs_gui.h 2009-07-22 00:15:36 UTC (rev 14314)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/src/include/fs_gui.h 2009-07-22 03:40:40 UTC (rev 14315)
@@ -48,6 +48,8 @@
class Cfsgui;
}
+class findDialog;
+
class Cfsgui : public QMainWindow {
Q_OBJECT
Q_DISABLE_COPY(Cfsgui)
@@ -73,6 +75,7 @@
void doDisconnect();
void gotDisconnected();
void gotConnected();
+ void showFind();
private:
Ui::Cfsgui *m_ui;
@@ -80,6 +83,7 @@
preferencesDialog *prefDialog;
QFileDialog *fileDialog;
pastebinDialog *pasteDialog;
+ findDialog *findDlg;
void saveWindowSettings();
};