r3542 - in trunk/minisip: minisip/gui/gtkgui share
mikma at minisip.org
mikma at minisip.org
Sat Dec 1 19:19:18 CET 2007
Author: mikma
Date: 2007-12-01 19:19:18 +0100 (Sat, 01 Dec 2007)
New Revision: 3542
Modified:
trunk/minisip/minisip/gui/gtkgui/MainWindow.cxx
trunk/minisip/minisip/gui/gtkgui/MainWindow.h
trunk/minisip/share/minisip.glade
Log:
Add account selection to the main window, making it easier to select
SIP account for outgoing calls/IM:s.
Modified: trunk/minisip/minisip/gui/gtkgui/MainWindow.cxx
===================================================================
--- trunk/minisip/minisip/gui/gtkgui/MainWindow.cxx 2007-11-30 11:31:29 UTC (rev 3541)
+++ trunk/minisip/minisip/gui/gtkgui/MainWindow.cxx 2007-12-01 18:19:18 UTC (rev 3542)
@@ -274,6 +274,8 @@
certificateDialog = new CertificateDialog( refXml );
settingsDialog = new SettingsDialog( refXml, transportList );
+ refXml->get_widget( "accountList", accountListView );
+ refXml->get_widget( "accountLabel", accountLabel );
refXml->get_widget( "callUriEntry", uriEntry );
refXml->get_widget( "prefMenu", prefMenu );
@@ -304,6 +306,7 @@
dispatcher.connect( SLOT( *this, &MainWindow::gotCommand ) );
+ accountListView->signal_changed().connect( SLOT( *this, &MainWindow::accountListSelect ) );
uriEntry->signal_activate().connect( SLOT( *this, &MainWindow::inviteClick ) );
#if not defined WIN32 && not defined HILDON_SUPPORT
@@ -327,6 +330,8 @@
statusWindow->set_shadow_type( Gtk::SHADOW_NONE );
statusWindow->set_policy( Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC );
+ accountListInit();
+
//mainTabWidget->append_page( *statusWidget, "Accounts" );
logDispatcher.connect( SLOT( *this, &MainWindow::gotLogEntry ) );
@@ -589,6 +594,7 @@
accountsList->loadFromConfig( config );
settingsDialog->setAccounts( accountsList );
settingsDialog->setConfig( config );
+ accountListUpdate();
const Glib::RefPtr<PhoneBookModel> modelPtr( phoneBookModel );
@@ -779,6 +785,38 @@
invite();
}
+void MainWindow::accountListInit() {
+ accountListView->set_model( accountsList );
+ Gtk::CellRendererText* crt;
+ crt = new Gtk::CellRendererText();
+ accountListView->pack_end( *manage(crt), true );
+ accountListView->add_attribute( crt->property_text(), accountsList->getColumns()->name );
+ accountListUpdate();
+}
+
+void MainWindow::accountListUpdate() {
+ Gtk::TreeModel::iterator iter;
+ for( iter = accountsList->children().begin();
+ iter != accountsList->children().end(); iter ++ ){
+ if( config->defaultIdentity ==
+ (*iter)[accountsList->getColumns()->identity] ){
+ accountListView->set_active( iter );
+ break;
+ }
+ }
+}
+
+void MainWindow::accountListSelect() {
+ Gtk::TreeModel::iterator iter = accountListView->get_active();
+
+ accountsList->setDefaultAccount( iter );
+
+ config->defaultIdentity =
+ (*iter)[accountsList->getColumns()->identity];
+
+ accountLabel->set_label( (*iter)[accountsList->getColumns()->name] );
+}
+
void MainWindow::inviteClick() {
invite( uriEntry->get_text() );
}
Modified: trunk/minisip/minisip/gui/gtkgui/MainWindow.h
===================================================================
--- trunk/minisip/minisip/gui/gtkgui/MainWindow.h 2007-11-30 11:31:29 UTC (rev 3541)
+++ trunk/minisip/minisip/gui/gtkgui/MainWindow.h 2007-12-01 18:19:18 UTC (rev 3542)
@@ -130,6 +130,10 @@
void registerIcons();
void hideSlot();
void phoneTreeClicked( GdkEventButton * event );
+
+ void accountListInit();
+ void accountListUpdate();
+ void accountListSelect();
void inviteClick();
void invite( std::string uri="" );
@@ -183,6 +187,8 @@
Gtk::MenuItem * phoneAddAddressMenu;
Gtk::MenuItem * phoneRemoveMenu;
Gtk::MenuItem * phoneEditMenu;
+ Gtk::ComboBox * accountListView;
+ Gtk::Label * accountLabel;
Gtk::Entry * uriEntry;
PhoneBookModel * phoneBookModel;
PhoneBookTree * phoneBookTree;
Modified: trunk/minisip/share/minisip.glade
===================================================================
--- trunk/minisip/share/minisip.glade 2007-11-30 11:31:29 UTC (rev 3541)
+++ trunk/minisip/share/minisip.glade 2007-12-01 18:19:18 UTC (rev 3542)
@@ -2463,12 +2463,87 @@
</child>
</widget>
<packing>
- <property name="padding">6</property>
+ <property name="padding">4</property>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="pack_type">GTK_PACK_END</property>
</packing>
</child>
+
+ <child>
+ <widget class="GtkExpander" id="expander1">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="expanded">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkComboBox" id="accountList">
+ <property name="visible">True</property>
+ <property name="add_tearoffs">False</property>
+ <property name="focus_on_click">True</property>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox76">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkLabel" id="label205">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Account:</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="accountLabel">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="type">label_item</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">4</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
</widget>
<packing>
<property name="padding">0</property>
More information about the Minisip-devel
mailing list