Modified: freeswitch/trunk/fscomm/call.h (16430 => 16431)
--- freeswitch/trunk/fscomm/call.h 2010-01-21 02:51:04 UTC (rev 16430)
+++ freeswitch/trunk/fscomm/call.h 2010-01-21 05:05:56 UTC (rev 16431)
@@ -45,10 +45,9 @@
FSCOMM_CALL_DIRECTION_OUTBOUND = 1
} fscomm_call_direction_t;
-class Call
-{
+class Call {
public:
- Call(void);
+ Call();
Call(int call_id, QString cid_name, QString cid_number, fscomm_call_direction_t direction, QString uuid);
QString getCidName(void) { return _cid_name; }
QString getCidNumber(void) { return _cid_number; }
Modified: freeswitch/trunk/fscomm/mainwindow.cpp (16430 => 16431)
--- freeswitch/trunk/fscomm/mainwindow.cpp 2010-01-21 02:51:04 UTC (rev 16430)
+++ freeswitch/trunk/fscomm/mainwindow.cpp 2010-01-21 05:05:56 UTC (rev 16431)
@@ -97,7 +97,7 @@
connect(ui->answerBtn, SIGNAL(clicked()), this, SLOT(paAnswer()));
connect(ui->hangupBtn, SIGNAL(clicked()), this, SLOT(paHangup()));
connect(ui->recoredCallBtn, SIGNAL(toggled(bool)), SLOT(recordCall(bool)));
- connect(ui->listCalls, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(callListDoubleClick(QListWidgetItem*)));
+ connect(ui->tableCalls, SIGNAL(itemDoubleClicked(QTableWidgetItem*)), this, SLOT(callTableDoubleClick(QTableWidgetItem*)));
connect(ui->action_Preferences, SIGNAL(triggered()), this, SLOT(prefTriggered()));
connect(ui->action_Exit, SIGNAL(triggered()), this, SLOT(close()));
connect(ui->actionAbout, SIGNAL(triggered()), this, SLOT(showAbout()));
@@ -199,7 +199,8 @@
g_FSHost.getCurrentActiveCall().data()->sendDTMF(dtmf);
}
-void MainWindow::callListDoubleClick(QListWidgetItem *item)
+/* TODO: Update the timers and the item text! */
+void MainWindow::callTableDoubleClick(QTableWidgetItem *item)
{
QSharedPointer<Call> lastCall = g_FSHost.getCurrentActiveCall();
QSharedPointer<Call> call = g_FSHost.getCallByUUID(item->data(Qt::UserRole).toString());
@@ -301,9 +302,20 @@
void MainWindow::newOutgoingCall(QSharedPointer<Call> call)
{
ui->textEdit->setText(QString("Calling %1 (%2)").arg(call.data()->getCidName(), call.data()->getCidNumber()));
- QListWidgetItem *item = new QListWidgetItem(tr("%1 (%2) - Calling").arg(call.data()->getCidName(), call.data()->getCidNumber()));
- item->setData(Qt::UserRole, call.data()->getUUID());
- ui->listCalls->addItem(item);
+
+ ui->tableCalls->setRowCount(ui->tableCalls->rowCount()+1);
+ QTableWidgetItem *item0 = new QTableWidgetItem(QString("%1 (%2)").arg(call.data()->getCidName(), call.data()->getCidNumber()));
+ item0->setData(Qt::UserRole, call.data()->getUUID());
+ ui->tableCalls->setItem(ui->tableCalls->rowCount()-1,0,item0);
+
+ QTableWidgetItem *item1 = new QTableWidgetItem(tr("Dialing..."));
+ item1->setData(Qt::UserRole, call.data()->getUUID());
+ ui->tableCalls->setItem(ui->tableCalls->rowCount()-1,1,item1);
+
+ ui->tableCalls->resizeColumnsToContents();
+ ui->tableCalls->resizeRowsToContents();
+ ui->tableCalls->horizontalHeader()->setStretchLastSection(true);
+
ui->hangupBtn->setEnabled(true);
call.data()->setActive(true);
}
@@ -311,42 +323,48 @@
void MainWindow::ringing(QSharedPointer<Call> call)
{
- for (int i=0; i<ui->listCalls->count(); i++)
+ for (int i=0; i<ui->tableCalls->rowCount(); i++)
{
- QListWidgetItem *item = ui->listCalls->item(i);
+ QTableWidgetItem *item = ui->tableCalls->item(i, 1);
if (item->data(Qt::UserRole).toString() == call.data()->getUUID())
{
- item->setText(tr("%1 - Ringing").arg(call.data()->getCidNumber()));
+ item->setText(tr("Ringing"));
ui->textEdit->setText(QString("Call from %1 (%2)").arg(call.data()->getCidName(), call.data()->getCidNumber()));
return;
}
}
ui->textEdit->setText(QString("Call from %1 (%2)").arg(call.data()->getCidName(), call.data()->getCidNumber()));
- QListWidgetItem *item = new QListWidgetItem(tr("%1 (%2) - Ringing").arg(call.data()->getCidName(), call.data()->getCidNumber()));
- item->setData(Qt::UserRole, call.data()->getUUID());
- ui->listCalls->addItem(item);
+
+ ui->tableCalls->setRowCount(ui->tableCalls->rowCount()+1);
+ QTableWidgetItem *item0 = new QTableWidgetItem(QString("%1 (%2)").arg(call.data()->getCidName(), call.data()->getCidNumber()));
+ item0->setData(Qt::UserRole, call.data()->getUUID());
+ ui->tableCalls->setItem(ui->tableCalls->rowCount()-1,0,item0);
+
+ QTableWidgetItem *item1 = new QTableWidgetItem(tr("Ringing"));
+ item1->setData(Qt::UserRole, call.data()->getUUID());
+ ui->tableCalls->setItem(ui->tableCalls->rowCount()-1,1,item1);
+
+ ui->tableCalls->resizeColumnsToContents();
+ ui->tableCalls->resizeRowsToContents();
+ ui->tableCalls->horizontalHeader()->setStretchLastSection(true);
+
ui->answerBtn->setEnabled(true);
call.data()->setActive(true);
}
void MainWindow::answered(QSharedPointer<Call> call)
{
- for (int i=0; i<ui->listCalls->count(); i++)
+ for (int i=0; i<ui->tableCalls->rowCount(); i++)
{
- QListWidgetItem *item = ui->listCalls->item(i);
+ QTableWidgetItem *item = ui->tableCalls->item(i, 1);
if (item->data(Qt::UserRole).toString() == call.data()->getUUID())
{
- if (call.data()->getDirection() == FSCOMM_CALL_DIRECTION_INBOUND)
- {
- item->setText(tr("%1 (%2) - Active").arg(call.data()->getCidName(), call.data()->getCidNumber()));
- break;
- }
- else
- {
- item->setText(tr("%1 - Active").arg(call.data()->getCidNumber()));
- break;
- }
+ item->setText(tr("Answered"));
+ ui->tableCalls->resizeColumnsToContents();
+ ui->tableCalls->resizeRowsToContents();
+ ui->tableCalls->horizontalHeader()->setStretchLastSection(true);
+ break;
}
}
ui->recoredCallBtn->setEnabled(true);
@@ -371,12 +389,15 @@
void MainWindow::callFailed(QSharedPointer<Call> call)
{
- for (int i=0; i<ui->listCalls->count(); i++)
+ for (int i=0; i<ui->tableCalls->rowCount(); i++)
{
- QListWidgetItem *item = ui->listCalls->item(i);
+ QTableWidgetItem *item = ui->tableCalls->item(i, 1);
if (item->data(Qt::UserRole).toString() == call.data()->getUUID())
{
- delete ui->listCalls->takeItem(i);
+ ui->tableCalls->removeRow(i);
+ ui->tableCalls->resizeColumnsToContents();
+ ui->tableCalls->resizeRowsToContents();
+ ui->tableCalls->horizontalHeader()->setStretchLastSection(true);
break;
}
}
@@ -410,12 +431,15 @@
void MainWindow::hungup(QSharedPointer<Call> call)
{
- for (int i=0; i<ui->listCalls->count(); i++)
+ for (int i=0; i<ui->tableCalls->rowCount(); i++)
{
- QListWidgetItem *item = ui->listCalls->item(i);
+ QTableWidgetItem *item = ui->tableCalls->item(i, 1);
if (item->data(Qt::UserRole).toString() == call.data()->getUUID())
{
- delete ui->listCalls->takeItem(i);
+ ui->tableCalls->removeRow(i);
+ ui->tableCalls->resizeColumnsToContents();
+ ui->tableCalls->resizeRowsToContents();
+ ui->tableCalls->horizontalHeader()->setStretchLastSection(true);
break;
}
}
Modified: freeswitch/trunk/fscomm/mainwindow.ui (16430 => 16431)
--- freeswitch/trunk/fscomm/mainwindow.ui 2010-01-21 02:51:04 UTC (rev 16430)
+++ freeswitch/trunk/fscomm/mainwindow.ui 2010-01-21 05:05:56 UTC (rev 16431)
@@ -6,7 +6,7 @@
<rect>
<x>0</x>
<y>0</y>
- <width>670</width>
+ <width>716</width>
<height>541</height>
</rect>
</property>
@@ -256,7 +256,35 @@
</property>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
- <widget class="QListWidget" name="listCalls"/>
+ <widget class="QTableWidget" name="tableCalls">
+ <property name="editTriggers">
+ <set>QAbstractItemView::NoEditTriggers</set>
+ </property>
+ <property name="selectionMode">
+ <enum>QAbstractItemView::SingleSelection</enum>
+ </property>
+ <property name="selectionBehavior">
+ <enum>QAbstractItemView::SelectRows</enum>
+ </property>
+ <property name="showGrid">
+ <bool>false</bool>
+ </property>
+ <column>
+ <property name="text">
+ <string>To/From</string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Status</string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Time</string>
+ </property>
+ </column>
+ </widget>
</item>
</layout>
</widget>
@@ -329,7 +357,7 @@
<rect>
<x>0</x>
<y>0</y>
- <width>670</width>
+ <width>716</width>
<height>24</height>
</rect>
</property>