Merge branch 'qt-client'

This commit is contained in:
Emmanuel Milou
2009-07-20 12:29:09 -04:00
8 changed files with 408 additions and 418 deletions

View File

@ -17,12 +17,12 @@
<Action name="action_hold" />
<Action name="action_transfer" />
<Action name="action_record" />
<Action name="action_mailBox" />
<Separator />
<Action name="action_main" />
<Action name="action_history" />
<Action name="action_addressBook" />
<Separator />
<Action name="action_mailBox" />
<Separator />
<Action name="action_close" />
<Separator />
<Action name="action_quit" />
@ -32,24 +32,24 @@
<Action name="action_displayVolumeControls" />
<Action name="action_displayDialpad" />
<Separator />
<!-- <Action name="action_configureAccounts" /> -->
<!-- <Action name="action_configureAudio" /> -->
<Action name="action_configureSflPhone" />
<Separator />
<Action name="action_accountCreationWizard" />
</Menu>
</MenuBar>
<!--<ToolBar name="mainToolBar" position="Top" noMerge="1" fullWidth="true" newline="true" >
<ToolBar name="callsToolBar" iconText="icononly" position="Top" noMerge="1" fullWidth="true" newline="true" >
<Action name="action_accept" />
<Action name="action_refuse" />
<Action name="action_hold" />
<Action name="action_transfer" />
<Action name="action_record" />
<Separator />
<Action name="action_mailBox" />
</ToolBar>
<ToolBar name="screenToolBar" iconText="icononly" position="Top" noMerge="1" fullWidth="true" newline="true" >
<Action name="action_main" />
<Action name="action_history" />
<Action name="action_addressBook" />
<Separator />
<Action name="action_mailBox" />
</ToolBar> -->
</ToolBar>
</gui>

View File

@ -52,34 +52,17 @@ SFLPhone::SFLPhone(QWidget *parent)
// tell the KXmlGuiWindow that this is indeed the main widget
setCentralWidget(view);
// add a status bar
// statusBar()->show();
setWindowIcon(QIcon(ICON_SFLPHONE));
setWindowTitle(i18n("SFLphone"));
setupActions();
qDebug() << "currentPath = " << QDir::currentPath() ;
QString rcFilePath = QString(DATA_INSTALL_DIR) + "/sflphone-client-kde/sflphone-client-kdeui.rc";
if(! QFile::exists(rcFilePath))
{
QDir dir;
dir.cdUp();
dir.cd("data");
rcFilePath = dir.filePath("sflphone-client-kdeui.rc");
}
qDebug() << "rcFilePath = " << rcFilePath ;
createGUI(rcFilePath);
setObjectNames();
QMetaObject::connectSlotsByName(this);
view->updateStatusMessage();
QMetaObject::connectSlotsByName(this);
view->on_stackedWidget_screen_currentChanged(SCREEN_MAIN);
view->loadWindow();
move(QCursor::pos().x() - geometry().width()/2, QCursor::pos().y() - geometry().height()/2);
if( ! configurationManager.isStartHidden())
@ -90,8 +73,7 @@ SFLPhone::SFLPhone(QWidget *parent)
if(configurationManager.getAccountList().value().isEmpty())
{
(new AccountWizard())->show();
}
}
}
SFLPhone::~SFLPhone()
@ -108,46 +90,75 @@ void SFLPhone::setObjectNames()
void SFLPhone::setupActions()
{
qDebug() << "setupActions";
ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance();
actionCollection()->addAction("action_accept", view->action_accept);
actionCollection()->addAction("action_refuse", view->action_refuse);
actionCollection()->addAction("action_hold", view->action_hold);
actionCollection()->addAction("action_transfer", view->action_transfer);
actionCollection()->addAction("action_record", view->action_record);
actionCollection()->addAction("action_history", view->action_history);
actionCollection()->addAction("action_addressBook", view->action_addressBook);
actionCollection()->addAction("action_mailBox", view->action_mailBox);
KAction * action_close = KStandardAction::close(this, SLOT(close()), 0);
action_accept = new KAction(this);
action_refuse = new KAction(this);
action_hold = new KAction(this);
action_transfer = new KAction(this);
action_record = new KAction(this);
action_mailBox = new KAction(this);
action_screen = new QActionGroup(this);
action_screen->setExclusive(true);
action_main = new KAction(KIcon(QIcon(ICON_SCREEN_MAIN)), i18n("Main screen"), action_screen);
action_history = new KAction(KIcon(QIcon(ICON_SCREEN_HISTORY)), i18n("Call history"), action_screen);
action_addressBook = new KAction(KIcon(QIcon(ICON_SCREEN_ADDRESS)), i18n("Address book"), action_screen);
action_main->setCheckable(true);
action_history->setCheckable(true);
action_addressBook->setCheckable(true);
action_main->setChecked(true);
action_screen->addAction(action_main);
action_screen->addAction(action_history);
action_screen->addAction(action_addressBook);
action_close = KStandardAction::close(this, SLOT(close()), this);
action_quit = KStandardAction::quit(this, SLOT(quitButton()), this);
action_configureSflPhone = KStandardAction::preferences(view, SLOT(configureSflPhone()), this);
action_configureSflPhone->setText(i18n("Configure SFLphone"));
action_displayVolumeControls = new KAction(KIcon(QIcon(ICON_DISPLAY_VOLUME_CONSTROLS)), i18n("Display volume controls"), this);
action_displayDialpad = new KAction(KIcon(QIcon(ICON_DISPLAY_DIALPAD)), i18n("Display dialpad"), this);
action_displayVolumeControls->setChecked(configurationManager.getVolumeControls());
action_displayDialpad->setChecked(configurationManager.getDialpad());
action_accountCreationWizard = new KAction(i18n("Account creation wizard"), this);
connect(action_accept, SIGNAL(triggered()), view, SLOT(accept()));
connect(action_refuse, SIGNAL(triggered()), view, SLOT(refuse()));
connect(action_hold, SIGNAL(triggered()), view, SLOT(hold()));
connect(action_transfer, SIGNAL(triggered()), view, SLOT(transfer()));
connect(action_record, SIGNAL(triggered()), view, SLOT(record()));
connect(action_screen, SIGNAL(triggered(QAction *)), this, SLOT(updateScreen(QAction *)));
connect(action_mailBox, SIGNAL(triggered()), view, SLOT(mailBox()));
connect(action_displayVolumeControls, SIGNAL(triggered()), view, SLOT(displayVolumeControls()));
connect(action_displayDialpad, SIGNAL(triggered()), view, SLOT(displayDialpad()));
connect(action_accountCreationWizard, SIGNAL(triggered()), view, SLOT(accountCreationWizard()));
action_screen->addAction(action_main);
action_screen->addAction(action_history);
action_screen->addAction(action_addressBook);
actionCollection()->addAction("action_accept", action_accept);
actionCollection()->addAction("action_refuse", action_refuse);
actionCollection()->addAction("action_hold", action_hold);
actionCollection()->addAction("action_transfer", action_transfer);
actionCollection()->addAction("action_record", action_record);
actionCollection()->addAction("action_main", action_main);
actionCollection()->addAction("action_history", action_history);
actionCollection()->addAction("action_addressBook", action_addressBook);
actionCollection()->addAction("action_mailBox", action_mailBox);
actionCollection()->addAction("action_close", action_close);
KAction * action_quit = KStandardAction::quit(this, SLOT(quitButton()), 0);
actionCollection()->addAction("action_quit", action_quit);
actionCollection()->addAction("action_displayVolumeControls", view->action_displayVolumeControls);
actionCollection()->addAction("action_displayDialpad", view->action_displayDialpad);
actionCollection()->addAction("action_configureSflPhone", view->action_configureSflPhone);
// actionCollection()->addAction("action_configureAccounts", view->action_configureAccounts);
// actionCollection()->addAction("action_configureAudio", view->action_configureAudio);
actionCollection()->addAction("action_accountCreationWizard", view->action_accountCreationWizard);
actionCollection()->addAction("action_displayVolumeControls", action_displayVolumeControls);
actionCollection()->addAction("action_displayDialpad", action_displayDialpad);
actionCollection()->addAction("action_configureSflPhone", action_configureSflPhone);
actionCollection()->addAction("action_accountCreationWizard", action_accountCreationWizard);
statusBarWidget = new QLabel();
statusBar()->addWidget(statusBarWidget);
QToolBar * toolbar = new QToolBar(this);
this->addToolBar(Qt::TopToolBarArea, toolbar);
toolbar->addAction(view->action_accept);
toolbar->addAction(view->action_refuse);
toolbar->addAction(view->action_hold);
toolbar->addAction(view->action_transfer);
toolbar->addAction(view->action_record);
toolbar->addSeparator();
toolbar->addAction(view->action_history);
toolbar->addAction(view->action_addressBook);
toolbar->addSeparator();
toolbar->addAction(view->action_mailBox);
toolbar->setIconSize(QSize(TOOLBAR_SIZE,TOOLBAR_SIZE));
trayIconMenu = new QMenu(this);
trayIconMenu->addAction(action_quit);
@ -156,6 +167,17 @@ void SFLPhone::setupActions()
trayIcon->show();
iconChanged = false;
QString rcFilePath = QString(DATA_INSTALL_DIR) + "/sflphone-client-kde/sflphone-client-kdeui.rc";
if(! QFile::exists(rcFilePath))
{
QDir dir;
dir.cdUp();
dir.cd("data");
rcFilePath = dir.filePath("sflphone-client-kdeui.rc");
}
qDebug() << "rcFilePath = " << rcFilePath ;
createGUI(rcFilePath);
}
@ -252,9 +274,102 @@ void SFLPhone::on_trayIcon_activated(QSystemTrayIcon::ActivationReason reason)
}
void SFLPhone::on_view_statusMessageChanged(const QString & message)
void SFLPhone::on_view_statusMessageChangeAsked(const QString & message)
{
qDebug() << "on_view_statusMessageChanged : " + message;
qDebug() << "on_view_statusMessageChangeAsked : " + message;
statusBarWidget->setText(message);
}
void SFLPhone::on_view_windowTitleChangeAsked(const QString & message)
{
qDebug() << "on_view_windowTitleChangeAsked : " + message;
setWindowTitle(message);
}
void SFLPhone::on_view_enabledActionsChangeAsked(const bool * enabledActions)
{
qDebug() << "on_view_enabledActionsChangeAsked";
action_accept->setEnabled(enabledActions[SFLPhone::Accept]);
action_refuse->setEnabled(enabledActions[SFLPhone::Refuse]);
action_hold->setEnabled(enabledActions[SFLPhone::Hold]);
action_transfer->setEnabled(enabledActions[SFLPhone::Transfer]);
action_record->setEnabled(enabledActions[SFLPhone::Record]);
action_mailBox->setEnabled(enabledActions[SFLPhone::Mailbox]);
}
void SFLPhone::on_view_actionIconsChangeAsked(const QString * actionIcons)
{
qDebug() << "on_view_actionIconsChangeAsked";
action_accept->setIcon(QIcon(actionIcons[SFLPhone::Accept]));
action_refuse->setIcon(QIcon(actionIcons[SFLPhone::Refuse]));
action_hold->setIcon(QIcon(actionIcons[SFLPhone::Hold]));
action_transfer->setIcon(QIcon(actionIcons[SFLPhone::Transfer]));
action_record->setIcon(QIcon(actionIcons[SFLPhone::Record]));
action_mailBox->setIcon(QIcon(actionIcons[SFLPhone::Mailbox]));
}
void SFLPhone::on_view_actionTextsChangeAsked(const QString * actionTexts)
{
qDebug() << "on_view_actionTextsChangeAsked";
action_accept->setText(actionTexts[SFLPhone::Accept]);
action_refuse->setText(actionTexts[SFLPhone::Refuse]);
action_hold->setText(actionTexts[SFLPhone::Hold]);
action_transfer->setText(actionTexts[SFLPhone::Transfer]);
action_record->setText(actionTexts[SFLPhone::Record]);
action_mailBox->setText(actionTexts[SFLPhone::Mailbox]);
}
void SFLPhone::on_view_transferCheckStateChangeAsked(bool transferCheckState)
{
qDebug() << "Changing transfer action checkState";
action_transfer->setChecked(transferCheckState);
}
void SFLPhone::on_view_recordCheckStateChangeAsked(bool recordCheckState)
{
qDebug() << "Changing record action checkState";
action_record->setChecked(recordCheckState);
}
void SFLPhone::updateScreen(QAction * action)
{
if(action == action_main) view->changeScreen(SCREEN_MAIN);
else if(action == action_history) view->changeScreen(SCREEN_HISTORY);
else if(action == action_addressBook) view->changeScreen(SCREEN_ADDRESS);
}
void SFLPhone::on_view_screenChanged(int screen)
{
qDebug() << "on_view_screenChanged";
if(screen == SCREEN_MAIN) action_main->setChecked(true);
else if(screen == SCREEN_HISTORY) action_history->setChecked(true);
else if(screen == SCREEN_ADDRESS) action_addressBook->setChecked(true);
}
QList <QAction *> SFLPhone::getCallActions()
{
QList<QAction *> callActions = QList<QAction *>();
callActions.insert((int) Accept, action_accept);
callActions.insert((int) Refuse, action_refuse);
callActions.insert((int) Hold, action_hold);
callActions.insert((int)Transfer, action_transfer);
callActions.insert((int) Record, action_record);
callActions.insert((int) Mailbox, action_mailBox);
return callActions;
}
void SFLPhone::on_view_incomingCall(const Call * call)
{
ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance();
trayIconSignal();
if(configurationManager.popupMode())
{
putForeground();
}
if(configurationManager.getNotify())
{
sendNotif(call->getPeerName().isEmpty() ? call->getPeerPhoneNumber() : call->getPeerName());
}
}

View File

@ -30,6 +30,8 @@
#include <QSystemTrayIcon>
#include <KXmlGuiWindow>
#include <KAction>
#include <QActionGroup>
#include "ui_sflphone_kdeview_base.h"
#include "CallList.h"
@ -42,10 +44,36 @@ class sflphone_kdeView;
class SFLPhone : public KXmlGuiWindow
{
Q_OBJECT
public:
enum CallAction {
Accept,
Refuse,
Hold,
Transfer,
Record,
Mailbox,
NumberOfCallActions};
private:
KAction * action_accept;
KAction * action_refuse;
KAction * action_hold;
KAction * action_transfer;
KAction * action_record;
QActionGroup * action_screen;
KAction * action_main;
KAction * action_history;
KAction * action_addressBook;
KAction * action_mailBox;
KAction * action_close;
KAction * action_quit;
KAction * action_displayVolumeControls;
KAction * action_displayDialpad;
KAction * action_configureSflPhone;
KAction * action_accountCreationWizard;
sflphone_kdeView * view;
QMenu *trayIconMenu;
bool iconChanged;
@ -68,12 +96,22 @@ public:
void putForeground();
void trayIconSignal();
sflphone_kdeView * getView();
QList<QAction *> getCallActions();
private slots:
void on_trayIcon_activated(QSystemTrayIcon::ActivationReason reason);
void on_trayIcon_messageClicked();
void on_view_statusMessageChanged(const QString & message);
void on_view_statusMessageChangeAsked(const QString & message);
void on_view_windowTitleChangeAsked(const QString & message);
void on_view_enabledActionsChangeAsked(const bool * enabledActions);
void on_view_actionIconsChangeAsked(const QString * actionIcons);
void on_view_actionTextsChangeAsked(const QString * actionTexts);
void on_view_transferCheckStateChangeAsked(bool transferCheckState);
void on_view_recordCheckStateChangeAsked(bool recordCheckState);
void updateScreen(QAction * action);
void on_view_screenChanged(int screen);
void on_view_incomingCall(const Call * call);
void quitButton();

View File

@ -62,10 +62,10 @@ int main(int argc, char **argv)
// SortableCodecListWidget * cl = new SortableCodecListWidget();
// cl->show();
QListView * v = new QListView();
v->setFlow(QListView::TopToBottom);
v->setModel(new AccountListModel());
v->show();
// QListView * v = new QListView();
// v->setFlow(QListView::TopToBottom);
// v->setModel(new AccountListModel());
// v->show();
return app.exec();
}

View File

@ -48,8 +48,11 @@
#define ACTION_LABEL_UNHOLD i18n("Hold off")
#define ACTION_LABEL_GIVE_UP_TRANSF i18n("Give up transfer")
#define ACTION_LABEL_CALL_BACK i18n("Call back")
// #define ACTION_LABEL_GIVE_UP_SEARCH i18n("Give up search")
#define ACTION_LABEL_MAILBOX i18n("Voicemail")
#define SCREEN_MAIN 0
#define SCREEN_HISTORY 1
#define SCREEN_ADDRESS 2
#define ICON_INCOMING ":/images/icons/ring.svg"
#define ICON_RINGING ":/images/icons/ring.svg"
@ -70,6 +73,7 @@
#define ICON_EXEC_TRANSF ":/images/icons/call.svg"
#define ICON_REC_DEL_OFF ":/images/icons/record_disabled.svg"
#define ICON_REC_DEL_ON ":/images/icons/record.svg"
#define ICON_MAILBOX ":/images/icons/mailbox.svg"
#define ICON_REC_VOL_0 ":/images/icons/mic.svg"
#define ICON_REC_VOL_1 ":/images/icons/mic_25.svg"
@ -81,6 +85,13 @@
#define ICON_SND_VOL_2 ":/images/icons/speaker_50.svg"
#define ICON_SND_VOL_3 ":/images/icons/speaker_75.svg"
#define ICON_SCREEN_MAIN ":/images/icons/sflphone.svg"
#define ICON_SCREEN_HISTORY ":/images/icons/history2.svg"
#define ICON_SCREEN_ADDRESS ":/images/icons/x-office-address-book.png"
#define ICON_DISPLAY_VOLUME_CONSTROLS ":/images/icons/icon_volume_off.svg"
#define ICON_DISPLAY_DIALPAD ":/images/icons/icon_dialpad.svg"
#define ICON_HISTORY_INCOMING ":/images/icons/incoming.svg"
#define ICON_HISTORY_OUTGOING ":/images/icons/outgoing.svg"
#define ICON_HISTORY_MISSED ":/images/icons/missed.svg"

View File

@ -59,7 +59,6 @@ sflphone_kdeView::sflphone_kdeView(QWidget *parent)
{
setupUi(this);
action_configureSflPhone->setIcon(KIcon("preferences-other"));
ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance();
CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance();
@ -121,9 +120,7 @@ sflphone_kdeView::sflphone_kdeView(QWidget *parent)
stackedWidget_screen->setCurrentWidget(page_callList);
loadWindow();
emit statusMessageChanged("youhou");
// loadWindow();
}
@ -139,9 +136,6 @@ sflphone_kdeView::~sflphone_kdeView()
void sflphone_kdeView::loadWindow()
{
qDebug() << "loadWindow";
ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance();
action_displayVolumeControls->setChecked(configurationManager.getVolumeControls());
action_displayDialpad->setChecked(configurationManager.getDialpad());
updateWindowCallState();
updateRecordButton();
updateVolumeButton();
@ -152,6 +146,7 @@ void sflphone_kdeView::loadWindow()
updateSearchHistory();
updateAddressBookEnabled();
updateAddressBook();
updateStatusMessage();
}
@ -282,24 +277,6 @@ void sflphone_kdeView::backspace()
}
}
}
if(stackedWidget_screen->currentWidget() == page_callHistory)
{
qDebug() << "In call history.";
int textSize = lineEdit_searchHistory->text().size();
if(textSize > 0)
{
lineEdit_searchHistory->setText(lineEdit_searchHistory->text().remove(textSize-1, 1));
}
}
if(stackedWidget_screen->currentWidget() == page_addressBook)
{
qDebug() << "In address book.";
int textSize = lineEdit_addressBook->text().size();
if(textSize > 0)
{
lineEdit_addressBook->setText(lineEdit_addressBook->text().remove(textSize-1, 1));
}
}
}
void sflphone_kdeView::escape()
@ -388,8 +365,9 @@ void sflphone_kdeView::enter()
}
else
{
action_history->setChecked(false);
stackedWidget_screen->setCurrentWidget(page_callList);
// action_history->setChecked(false);
// stackedWidget_screen->setCurrentWidget(page_callList);
changeScreen(SCREEN_MAIN);
Call * pastCall = callList->findCallByHistoryItem(item);
if (!pastCall)
@ -413,8 +391,9 @@ void sflphone_kdeView::enter()
}
else
{
action_addressBook->setChecked(false);
stackedWidget_screen->setCurrentWidget(page_callList);
// action_addressBook->setChecked(false);
// stackedWidget_screen->setCurrentWidget(page_callList);
changeScreen(SCREEN_MAIN);
ContactItemWidget * w = (ContactItemWidget *) (listWidget_addressBook->itemWidget(item));
Call * call = callList->addDialingCall(w->getContactName());
call->appendItemText(w->getContactNumber());
@ -466,94 +445,92 @@ void sflphone_kdeView::updateCallItem(Call * call)
void sflphone_kdeView::updateWindowCallState()
{
qDebug() << "updateWindowCallState";
QListWidgetItem * item;
bool enabledActions[6]= {true,true,true,true,true,true};
QString buttonIconFiles[3] = {ICON_CALL, ICON_HANGUP, ICON_HOLD};
QString actionTexts[5] = {ACTION_LABEL_CALL, ACTION_LABEL_HANG_UP, ACTION_LABEL_HOLD, ACTION_LABEL_TRANSFER, ACTION_LABEL_RECORD};
QString buttonIconFiles[6] = {ICON_CALL, ICON_HANGUP, ICON_HOLD, ICON_TRANSFER, ICON_REC_DEL_OFF, ICON_MAILBOX};
QString actionTexts[6] = {ACTION_LABEL_CALL, ACTION_LABEL_HANG_UP, ACTION_LABEL_HOLD, ACTION_LABEL_TRANSFER, ACTION_LABEL_RECORD, ACTION_LABEL_MAILBOX};
QListWidgetItem * item;
bool transfer = false;
//tells whether the call is in recording position
bool recordActivated = false;
//tells whether the call can be recorded in the state it is right now
bool recordEnabled = false;
enabledActions[5] = firstRegisteredAccount() && ! firstRegisteredAccount()->getAccountDetail(ACCOUNT_MAILBOX).isEmpty();
enabledActions[SFLPhone::Mailbox] = firstRegisteredAccount() && ! firstRegisteredAccount()->getAccountDetail(ACCOUNT_MAILBOX).isEmpty();
if(stackedWidget_screen->currentWidget() == page_callList)
{
item = listWidget_callList->currentItem();
if (!item)
{
qDebug() << "No item selected.";
enabledActions[1] = false;
enabledActions[2] = false;
enabledActions[3] = false;
enabledActions[4] = false;
enabledActions[SFLPhone::Refuse] = false;
enabledActions[SFLPhone::Hold] = false;
enabledActions[SFLPhone::Transfer] = false;
enabledActions[SFLPhone::Record] = false;
}
else
{
Call * call = (*callList)[item];
call_state state = call->getState();
//qDebug() << "calling getIsRecording on " << call->getCallId();
//recordActivated = callManager.getIsRecording(call->getCallId());
recordActivated = call->getRecording();
switch (state)
{
case CALL_STATE_INCOMING:
qDebug() << "Reached CALL_STATE_INCOMING with call " << (*callList)[item]->getCallId();
buttonIconFiles[0] = ICON_ACCEPT;
buttonIconFiles[1] = ICON_REFUSE;
actionTexts[0] = ACTION_LABEL_ACCEPT;
actionTexts[1] = ACTION_LABEL_REFUSE;
buttonIconFiles[SFLPhone::Accept] = ICON_ACCEPT;
buttonIconFiles[SFLPhone::Refuse] = ICON_REFUSE;
actionTexts[SFLPhone::Accept] = ACTION_LABEL_ACCEPT;
actionTexts[SFLPhone::Refuse] = ACTION_LABEL_REFUSE;
break;
case CALL_STATE_RINGING:
qDebug() << "Reached CALL_STATE_RINGING with call " << (*callList)[item]->getCallId();
enabledActions[2] = false;
enabledActions[3] = false;
enabledActions[SFLPhone::Hold] = false;
enabledActions[SFLPhone::Transfer] = false;
break;
case CALL_STATE_CURRENT:
qDebug() << "details = " << CallManagerInterfaceSingleton::getInstance().getCallDetails(call->getCallId()).value();
qDebug() << "Reached CALL_STATE_CURRENT with call " << (*callList)[item]->getCallId();
recordEnabled = true;
buttonIconFiles[SFLPhone::Record] = ICON_REC_DEL_ON;
break;
case CALL_STATE_DIALING:
qDebug() << "Reached CALL_STATE_DIALING with call " << (*callList)[item]->getCallId();
enabledActions[2] = false;
enabledActions[3] = false;
enabledActions[4] = false;
actionTexts[0] = ACTION_LABEL_ACCEPT;
buttonIconFiles[0] = ICON_ACCEPT;
enabledActions[SFLPhone::Hold] = false;
enabledActions[SFLPhone::Transfer] = false;
enabledActions[SFLPhone::Record] = false;
actionTexts[SFLPhone::Accept] = ACTION_LABEL_ACCEPT;
buttonIconFiles[SFLPhone::Accept] = ICON_ACCEPT;
break;
case CALL_STATE_HOLD:
qDebug() << "Reached CALL_STATE_HOLD with call " << (*callList)[item]->getCallId();
buttonIconFiles[2] = ICON_UNHOLD;
actionTexts[2] = ACTION_LABEL_UNHOLD;
buttonIconFiles[SFLPhone::Hold] = ICON_UNHOLD;
actionTexts[SFLPhone::Hold] = ACTION_LABEL_UNHOLD;
break;
case CALL_STATE_FAILURE:
qDebug() << "Reached CALL_STATE_FAILURE with call " << (*callList)[item]->getCallId();
enabledActions[0] = false;
enabledActions[2] = false;
enabledActions[3] = false;
enabledActions[4] = false;
enabledActions[SFLPhone::Accept] = false;
enabledActions[SFLPhone::Hold] = false;
enabledActions[SFLPhone::Transfer] = false;
enabledActions[SFLPhone::Record] = false;
break;
case CALL_STATE_BUSY:
qDebug() << "Reached CALL_STATE_BUSY with call " << (*callList)[item]->getCallId();
enabledActions[0] = false;
enabledActions[2] = false;
enabledActions[3] = false;
enabledActions[4] = false;
enabledActions[SFLPhone::Accept] = false;
enabledActions[SFLPhone::Hold] = false;
enabledActions[SFLPhone::Transfer] = false;
enabledActions[SFLPhone::Record] = false;
break;
case CALL_STATE_TRANSFER:
qDebug() << "Reached CALL_STATE_TRANSFER with call " << (*callList)[item]->getCallId();
buttonIconFiles[0] = ICON_EXEC_TRANSF;
actionTexts[3] = ACTION_LABEL_GIVE_UP_TRANSF;
buttonIconFiles[SFLPhone::Accept] = ICON_EXEC_TRANSF;
actionTexts[SFLPhone::Transfer] = ACTION_LABEL_GIVE_UP_TRANSF;
transfer = true;
recordEnabled = true;
buttonIconFiles[SFLPhone::Record] = ICON_REC_DEL_ON;
break;
case CALL_STATE_TRANSF_HOLD:
qDebug() << "Reached CALL_STATE_TRANSF_HOLD with call " << (*callList)[item]->getCallId();
buttonIconFiles[0] = ICON_EXEC_TRANSF;
buttonIconFiles[2] = ICON_UNHOLD;
actionTexts[3] = ACTION_LABEL_GIVE_UP_TRANSF;
actionTexts[2] = ACTION_LABEL_UNHOLD;
buttonIconFiles[SFLPhone::Accept] = ICON_EXEC_TRANSF;
buttonIconFiles[SFLPhone::Hold] = ICON_UNHOLD;
actionTexts[SFLPhone::Transfer] = ACTION_LABEL_GIVE_UP_TRANSF;
actionTexts[SFLPhone::Hold] = ACTION_LABEL_UNHOLD;
transfer = true;
break;
case CALL_STATE_OVER:
@ -571,79 +548,54 @@ void sflphone_kdeView::updateWindowCallState()
if(stackedWidget_screen->currentWidget() == page_callHistory)
{
item = listWidget_callHistory->currentItem();
buttonIconFiles[0] = ICON_ACCEPT;
actionTexts[0] = ACTION_LABEL_CALL_BACK;
// actionTexts[1] = ACTION_LABEL_GIVE_UP_SEARCH;
buttonIconFiles[SFLPhone::Accept] = ICON_ACCEPT;
actionTexts[SFLPhone::Accept] = ACTION_LABEL_CALL_BACK;
if (!item)
{
qDebug() << "No item selected.";
enabledActions[0] = false;
enabledActions[1] = false;
enabledActions[2] = false;
enabledActions[3] = false;
enabledActions[4] = false;
enabledActions[SFLPhone::Accept] = false;
enabledActions[SFLPhone::Refuse] = false;
enabledActions[SFLPhone::Hold] = false;
enabledActions[SFLPhone::Transfer] = false;
enabledActions[SFLPhone::Record] = false;
}
else
{
enabledActions[1] = false;
enabledActions[2] = false;
enabledActions[3] = false;
enabledActions[4] = false;
enabledActions[SFLPhone::Refuse] = false;
enabledActions[SFLPhone::Hold] = false;
enabledActions[SFLPhone::Transfer] = false;
enabledActions[SFLPhone::Record] = false;
}
// if(!lineEdit_searchHistory->text().isEmpty())
// {
// enabledActions[1] = true;
// }
}
if(stackedWidget_screen->currentWidget() == page_addressBook)
{
item = listWidget_addressBook->currentItem();
buttonIconFiles[0] = ICON_ACCEPT;
// actionTexts[1] = ACTION_LABEL_GIVE_UP_SEARCH;
buttonIconFiles[SFLPhone::Accept] = ICON_ACCEPT;
if (!item)
{
qDebug() << "No item selected.";
enabledActions[0] = false;
enabledActions[1] = false;
enabledActions[2] = false;
enabledActions[3] = false;
enabledActions[4] = false;
enabledActions[SFLPhone::Accept] = false;
enabledActions[SFLPhone::Refuse] = false;
enabledActions[SFLPhone::Hold] = false;
enabledActions[SFLPhone::Transfer] = false;
enabledActions[SFLPhone::Record] = false;
}
else
{
enabledActions[1] = false;
enabledActions[2] = false;
enabledActions[3] = false;
enabledActions[4] = false;
enabledActions[SFLPhone::Refuse] = false;
enabledActions[SFLPhone::Hold] = false;
enabledActions[SFLPhone::Transfer] = false;
enabledActions[SFLPhone::Record] = false;
}
// if(!lineEdit_addressBook->text().isEmpty())
// {
// enabledActions[1] = true;
// }
}
qDebug() << "Updating Window.";
action_accept->setEnabled(enabledActions[0]);
action_refuse->setEnabled(enabledActions[1]);
action_hold->setEnabled(enabledActions[2]);
action_transfer->setEnabled(enabledActions[3]);
action_record->setEnabled(enabledActions[4]);
action_mailBox->setEnabled(enabledActions[5]);
action_record->setIcon(QIcon(recordEnabled ? ICON_REC_DEL_ON : ICON_REC_DEL_OFF));
action_accept->setIcon(QIcon(buttonIconFiles[0]));
action_refuse->setIcon(QIcon(buttonIconFiles[1]));
action_hold->setIcon(QIcon(buttonIconFiles[2]));
action_accept->setText(actionTexts[0]);
action_refuse->setText(actionTexts[1]);
action_hold->setText(actionTexts[2]);
action_transfer->setText(actionTexts[3]);
action_record->setText(actionTexts[4]);
action_transfer->setChecked(transfer);
action_record->setChecked(recordActivated);
emit enabledActionsChangeAsked(enabledActions);
emit actionIconsChangeAsked(buttonIconFiles);
emit actionTextsChangeAsked(actionTexts);
emit transferCheckStateChangeAsked(transfer);
emit recordCheckStateChangeAsked(recordActivated);
qDebug() << "Window updated.";
}
@ -898,11 +850,11 @@ void sflphone_kdeView::updateStatusMessage()
Account * account = firstRegisteredAccount();
if(account == NULL)
{
emit statusMessageChanged(i18n("No registered accounts"));
emit statusMessageChangeAsked(i18n("No registered accounts"));
}
else
{
emit statusMessageChanged(i18n("Using account") + " \'" + account->getAlias() + "\' (" + account->getAccountDetail(ACCOUNT_TYPE) + ")") ;
emit statusMessageChangeAsked(i18n("Using account") + " \'" + account->getAlias() + "\' (" + account->getAccountDetail(ACCOUNT_TYPE) + ")") ;
}
}
@ -912,14 +864,14 @@ void sflphone_kdeView::updateStatusMessage()
************ Autoconnect *************
************************************************************/
void sflphone_kdeView::on_action_displayVolumeControls_triggered()
void sflphone_kdeView::displayVolumeControls()
{
ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance();
configurationManager.setVolumeControls();
updateVolumeControls();
}
void sflphone_kdeView::on_action_displayDialpad_triggered()
void sflphone_kdeView::displayDialpad()
{
ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance();
configurationManager.setDialpad();
@ -1049,8 +1001,9 @@ void sflphone_kdeView::on_listWidget_callList_itemDoubleClicked(QListWidgetItem
void sflphone_kdeView::on_listWidget_callHistory_itemDoubleClicked(QListWidgetItem * item)
{
qDebug() << "on_listWidget_callHistory_itemDoubleClicked";
action_history->setChecked(false);
stackedWidget_screen->setCurrentWidget(page_callList);
// action_history->setChecked(false);
// stackedWidget_screen->setCurrentWidget(page_callList);
changeScreen(SCREEN_MAIN);
Call * pastCall = callList->findCallByHistoryItem(item);
Call * call = callList->addDialingCall(pastCall->getPeerName(), pastCall->getAccountId());
call->appendItemText(pastCall->getPeerPhoneNumber());
@ -1063,8 +1016,9 @@ void sflphone_kdeView::on_listWidget_callHistory_itemDoubleClicked(QListWidgetIt
void sflphone_kdeView::on_listWidget_addressBook_itemDoubleClicked(QListWidgetItem * item)
{
qDebug() << "on_listWidget_addressBook_itemDoubleClicked";
action_addressBook->setChecked(false);
stackedWidget_screen->setCurrentWidget(page_callList);
// action_addressBook->setChecked(false);
// stackedWidget_screen->setCurrentWidget(page_callList);
changeScreen(SCREEN_MAIN);
ContactItemWidget * w = (ContactItemWidget *) (listWidget_addressBook->itemWidget(item));
Call * call = callList->addDialingCall(w->getContactName());
call->appendItemText(w->getContactNumber());
@ -1076,22 +1030,21 @@ void sflphone_kdeView::on_listWidget_addressBook_itemDoubleClicked(QListWidgetIt
void sflphone_kdeView::on_stackedWidget_screen_currentChanged(int index)
{
qDebug() << "on_stackedWidget_screen_currentChanged";
KXmlGuiWindow * window = (KXmlGuiWindow * ) this->parent();
switch(index)
{
case 0:
case SCREEN_MAIN:
qDebug() << "Switched to call list screen.";
window->setWindowTitle(i18n("SFLphone") + " - " + i18n("Main screen"));
emit windowTitleChangeAsked(i18n("SFLphone") + " - " + i18n("Main screen"));
break;
case 1:
case SCREEN_HISTORY:
qDebug() << "Switched to call history screen.";
updateCallHistory();
window->setWindowTitle(i18n("SFLphone") + " - " + i18n("Call history"));
emit windowTitleChangeAsked(i18n("SFLphone") + " - " + i18n("Call history"));
break;
case 2:
case SCREEN_ADDRESS:
qDebug() << "Switched to address book screen.";
updateAddressBook();
window->setWindowTitle(i18n("SFLphone") + " - " + i18n("Address book"));
emit windowTitleChangeAsked(i18n("SFLphone") + " - " + i18n("Address book"));
break;
default:
qDebug() << "Error : reached an unknown index \"" << index << "\" with stackedWidget_screen.";
@ -1110,12 +1063,13 @@ void sflphone_kdeView::contextMenuEvent(QContextMenuEvent *event)
this , SLOT(editBeforeCall()));
menu.addAction(action_edit);
}
menu.addAction(action_accept);
menu.addAction(action_refuse);
menu.addAction(action_hold);
menu.addAction(action_transfer);
menu.addAction(action_record);
SFLPhone * window = (SFLPhone * ) this->parent();
QList<QAction *> callActions = window->getCallActions();
menu.addAction(callActions.at((int) SFLPhone::Accept));
menu.addAction(callActions[SFLPhone::Refuse]);
menu.addAction(callActions[SFLPhone::Hold]);
menu.addAction(callActions[SFLPhone::Transfer]);
menu.addAction(callActions[SFLPhone::Record]);
menu.addSeparator();
QAction * action = new ActionSetAccountFirst(NULL, &menu);
@ -1136,7 +1090,6 @@ void sflphone_kdeView::contextMenuEvent(QContextMenuEvent *event)
menu.addAction(action);
}
menu.exec(event->globalPos());
}
void sflphone_kdeView::editBeforeCall()
@ -1173,9 +1126,10 @@ void sflphone_kdeView::editBeforeCall()
QString newNumber = QInputDialog::getText(this, i18n("Edit before call"), QString(), QLineEdit::Normal, number, &ok);
if(ok)
{
action_history->setChecked(false);
action_addressBook->setChecked(false);
stackedWidget_screen->setCurrentWidget(page_callList);
// action_history->setChecked(false);
// action_addressBook->setChecked(false);
// stackedWidget_screen->setCurrentWidget(page_callList);
changeScreen(SCREEN_MAIN);
Call * call = callList->addDialingCall(name);
call->appendItemText(newNumber);
addCallToCallList(call);
@ -1187,7 +1141,6 @@ void sflphone_kdeView::editBeforeCall()
void sflphone_kdeView::setAccountFirst(Account * account)
{
qDebug() << "setAccountFirst : " << (account ? account->getAlias() : QString());
// getAccountList()->setAccountFirst(account);
if(account)
{
priorAccountId = account->getAccountId();
@ -1212,19 +1165,19 @@ void sflphone_kdeView::on_listWidget_addressBook_currentItemChanged()
}
void sflphone_kdeView::on_action_configureSflPhone_triggered()
void sflphone_kdeView::configureSflPhone()
{
configDialog->reload();
configDialog->show();
}
void sflphone_kdeView::on_action_accountCreationWizard_triggered()
void sflphone_kdeView::accountCreationWizard()
{
wizard->show();
}
void sflphone_kdeView::on_action_accept_triggered()
void sflphone_kdeView::accept()
{
if(stackedWidget_screen->currentWidget() == page_callList)
{
@ -1262,9 +1215,9 @@ void sflphone_kdeView::on_action_accept_triggered()
}
if(stackedWidget_screen->currentWidget() == page_callHistory)
{
action_history->setChecked(false);
stackedWidget_screen->setCurrentWidget(page_callList);
// action_history->setChecked(false);
// stackedWidget_screen->setCurrentWidget(page_callList);
changeScreen(SCREEN_MAIN);
Call * pastCall = callList->findCallByHistoryItem(listWidget_callHistory->currentItem());
Call * call = callList->addDialingCall(pastCall->getPeerName());
call->appendItemText(pastCall->getPeerPhoneNumber());
@ -1274,8 +1227,9 @@ void sflphone_kdeView::on_action_accept_triggered()
}
if(stackedWidget_screen->currentWidget() == page_addressBook)
{
action_addressBook->setChecked(false);
stackedWidget_screen->setCurrentWidget(page_callList);
// action_addressBook->setChecked(false);
// stackedWidget_screen->setCurrentWidget(page_callList);
changeScreen(SCREEN_MAIN);
ContactItemWidget * w = (ContactItemWidget *) (listWidget_addressBook->itemWidget(listWidget_addressBook->currentItem()));
Call * call = callList->addDialingCall(w->getContactName());
call->appendItemText(w->getContactNumber());
@ -1285,7 +1239,7 @@ void sflphone_kdeView::on_action_accept_triggered()
}
}
void sflphone_kdeView::on_action_refuse_triggered()
void sflphone_kdeView::refuse()
{
if(stackedWidget_screen->currentWidget() == page_callList)
{
@ -1309,7 +1263,7 @@ void sflphone_kdeView::on_action_refuse_triggered()
}
}
void sflphone_kdeView::on_action_hold_triggered()
void sflphone_kdeView::hold()
{
QListWidgetItem * item = listWidget_callList->currentItem();
if(!item)
@ -1322,7 +1276,7 @@ void sflphone_kdeView::on_action_hold_triggered()
}
}
void sflphone_kdeView::on_action_transfer_triggered()
void sflphone_kdeView::transfer()
{
QListWidgetItem * item = listWidget_callList->currentItem();
if(!item)
@ -1335,7 +1289,7 @@ void sflphone_kdeView::on_action_transfer_triggered()
}
}
void sflphone_kdeView::on_action_record_triggered()
void sflphone_kdeView::record()
{
QListWidgetItem * item = listWidget_callList->currentItem();
if(!item)
@ -1348,37 +1302,7 @@ void sflphone_kdeView::on_action_record_triggered()
}
}
void sflphone_kdeView::on_action_history_triggered(bool checked)
{
if(checked == true)
{
action_addressBook->setChecked(false);
stackedWidget_screen->setCurrentWidget(page_callHistory);
}
else
{
stackedWidget_screen->setCurrentWidget(page_callList);
}
updateWindowCallState();
}
void sflphone_kdeView::on_action_addressBook_triggered(bool checked)
{
if(checked == true)
{
action_history->setChecked(false);
stackedWidget_screen->setCurrentWidget(page_addressBook);
if(lineEdit_addressBook->text().isEmpty())
{ lineEdit_addressBook->setFocus(Qt::OtherFocusReason); }
}
else
{
stackedWidget_screen->setCurrentWidget(page_callList);
}
updateWindowCallState();
}
void sflphone_kdeView::on_action_mailBox_triggered()
void sflphone_kdeView::mailBox()
{
Account * account = firstRegisteredAccount();
QString mailBoxNumber = account->getAccountDetail(ACCOUNT_MAILBOX);
@ -1426,16 +1350,7 @@ void sflphone_kdeView::on1_incomingCall(const QString &accountID, const QString
Call * call = callList->addIncomingCall(callID);
addCallToCallList(call);
listWidget_callList->setCurrentRow(listWidget_callList->count() - 1);
SFLPhone * window = (SFLPhone * ) this->parent();
window->trayIconSignal();
if(configurationManager.popupMode())
{
window->putForeground();
}
if(configurationManager.getNotify())
{
window->sendNotif(call->getPeerName().isEmpty() ? call->getPeerPhoneNumber() : call->getPeerName());
}
emit incomingCall(call);
}
void sflphone_kdeView::on1_incomingMessage(const QString &accountID, const QString &message)
@ -1486,11 +1401,10 @@ bool sflphone_kdeView::loadAddressBook()
void sflphone_kdeView::updateAddressBookEnabled()
{
action_addressBook->setVisible(isAddressBookEnabled());
emit addressBookEnableAsked(isAddressBookEnabled());
if(! isAddressBookEnabled() && stackedWidget_screen->currentWidget() == page_addressBook)
{
stackedWidget_screen->setCurrentWidget(page_callList);
action_history->setChecked(false);
changeScreen(SCREEN_MAIN);
}
}
@ -1502,4 +1416,24 @@ bool sflphone_kdeView::isAddressBookEnabled()
return addressBookSettings[ADDRESSBOOK_ENABLE];
}
void sflphone_kdeView::changeScreen(int screen)
{
switch(screen)
{
case SCREEN_MAIN:
stackedWidget_screen->setCurrentWidget(page_callList);
break;
case SCREEN_HISTORY:
stackedWidget_screen->setCurrentWidget(page_callHistory);
break;
case SCREEN_ADDRESS:
stackedWidget_screen->setCurrentWidget(page_addressBook);
break;
default:
break;
}
updateWindowCallState();
emit screenChanged(screen);
}
#include "sflphone_kdeview.moc"

View File

@ -79,6 +79,15 @@ protected:
public:
//Constructors & Destructors
/**
* This constructor does not load the window as it would
* better wait for the parent window to connect to the signals
* for updating it (statusMessageChangeAsked...).
* You should call the loadWindow() method once
* you have constructed the object and connected the
* expected signals.
* @param parent
*/
sflphone_kdeView(QWidget *parent);
virtual ~sflphone_kdeView();
@ -236,11 +245,13 @@ public slots:
void updateStatusMessage();
/**
* Enable the address book search line edit.
* To be called once the address book loading has finished.
*/
void enableAddressBook();
/**
* Loads the address book asynchronously.
* Calls enableAddressBook() once the address book
@ -277,20 +288,16 @@ public slots:
}
}
void on_action_displayVolumeControls_triggered();
void on_action_displayDialpad_triggered();
// void on_action_configureAccounts_triggered();
// void on_action_configureAudio_triggered();
void on_action_configureSflPhone_triggered();
void on_action_accountCreationWizard_triggered();
void on_action_accept_triggered();
void on_action_refuse_triggered();
void on_action_hold_triggered();
void on_action_transfer_triggered();
void on_action_record_triggered();
void on_action_history_triggered(bool checked);
void on_action_addressBook_triggered(bool checked);
void on_action_mailBox_triggered();
void displayVolumeControls();
void displayDialpad();
void configureSflPhone();
void accountCreationWizard();
void accept();
void refuse();
void hold();
void transfer();
void record();
void mailBox();
void on_widget_dialpad_typed(QString text);
@ -320,8 +327,20 @@ public slots:
void on1_voiceMailNotify(const QString &accountID, int count);
void on1_volumeChanged(const QString &device, double value);
void changeScreen(int screen);
signals:
void statusMessageChanged(const QString & message);
void statusMessageChangeAsked(const QString & message);
void windowTitleChangeAsked(const QString & title);
void enabledActionsChangeAsked(const bool * enabledActions);
void actionIconsChangeAsked(const QString * actionIcons);
void actionTextsChangeAsked(const QString * actionTexts);
void transferCheckStateChangeAsked(bool transferCheckState);
void recordCheckStateChangeAsked(bool recordCheckState);
void addressBookEnableAsked(bool enableAddressBook);
void screenChanged(int screen);
void incomingCall(const Call * call);
};

View File

@ -327,133 +327,6 @@
</widget>
</item>
</layout>
<action name="action_accept">
<property name="icon">
<iconset resource="../qrc/resources.qrc">
<normaloff>:/images/icons/call.svg</normaloff>:/images/icons/call.svg</iconset>
</property>
<property name="text">
<string>Pick up</string>
</property>
</action>
<action name="action_refuse">
<property name="icon">
<iconset resource="../qrc/resources.qrc">
<normaloff>:/images/icons/hang_up.svg</normaloff>:/images/icons/hang_up.svg</iconset>
</property>
<property name="text">
<string>Hang up</string>
</property>
</action>
<action name="action_hold">
<property name="icon">
<iconset resource="../qrc/resources.qrc">
<normaloff>:/images/icons/hold.svg</normaloff>:/images/icons/hold.svg</iconset>
</property>
<property name="text">
<string>Hold on</string>
</property>
</action>
<action name="action_transfer">
<property name="checkable">
<bool>true</bool>
</property>
<property name="icon">
<iconset resource="../qrc/resources.qrc">
<normaloff>:/images/icons/transfert.svg</normaloff>:/images/icons/transfert.svg</iconset>
</property>
<property name="text">
<string>Transfer</string>
</property>
</action>
<action name="action_history">
<property name="checkable">
<bool>true</bool>
</property>
<property name="icon">
<iconset resource="../qrc/resources.qrc">
<normaloff>:/images/icons/history2.svg</normaloff>:/images/icons/history2.svg</iconset>
</property>
<property name="text">
<string>History</string>
</property>
</action>
<action name="action_mailBox">
<property name="icon">
<iconset resource="../qrc/resources.qrc">
<normaloff>:/images/icons/mailbox.svg</normaloff>:/images/icons/mailbox.svg</iconset>
</property>
<property name="text">
<string>Voicemail</string>
</property>
</action>
<action name="action_configureSflPhone">
<property name="text">
<string>Configure SFLphone</string>
</property>
<property name="toolTip">
<string>Configure SFLphone</string>
</property>
</action>
<action name="action_displayVolumeControls">
<property name="checkable">
<bool>true</bool>
</property>
<property name="checked">
<bool>true</bool>
</property>
<property name="icon">
<iconset resource="../qrc/resources.qrc">
<normaloff>:/images/icons/icon_volume_off.svg</normaloff>:/images/icons/icon_volume_off.svg</iconset>
</property>
<property name="text">
<string>Display volume controls</string>
</property>
</action>
<action name="action_displayDialpad">
<property name="checkable">
<bool>true</bool>
</property>
<property name="checked">
<bool>true</bool>
</property>
<property name="icon">
<iconset resource="../qrc/resources.qrc">
<normaloff>:/images/icons/icon_dialpad.svg</normaloff>:/images/icons/icon_dialpad.svg</iconset>
</property>
<property name="text">
<string>Display dialpad</string>
</property>
</action>
<action name="action_record">
<property name="checkable">
<bool>true</bool>
</property>
<property name="icon">
<iconset>
<normaloff>:/images/icons/del_off.png</normaloff>:/images/icons/del_off.png</iconset>
</property>
<property name="text">
<string>Record</string>
</property>
</action>
<action name="action_accountCreationWizard">
<property name="text">
<string>Account creation wizard</string>
</property>
</action>
<action name="action_addressBook">
<property name="checkable">
<bool>true</bool>
</property>
<property name="icon">
<iconset resource="../qrc/resources.qrc">
<normaloff>:/images/icons/x-office-address-book.png</normaloff>:/images/icons/x-office-address-book.png</iconset>
</property>
<property name="text">
<string>Address book</string>
</property>
</action>
</widget>
<customwidgets>
<customwidget>