Diffstat (limited to 'noncore/apps/opie-console/mainwindow.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/apps/opie-console/mainwindow.cpp | 48 |
1 files changed, 42 insertions, 6 deletions
diff --git a/noncore/apps/opie-console/mainwindow.cpp b/noncore/apps/opie-console/mainwindow.cpp index 3531478..aeb3742 100644 --- a/noncore/apps/opie-console/mainwindow.cpp +++ b/noncore/apps/opie-console/mainwindow.cpp @@ -2,15 +2,17 @@ #include <qaction.h> #include <qmenubar.h> #include <qlabel.h> #include <qpopupmenu.h> #include <qtoolbar.h> +#include "profileeditordialog.h" #include "configdialog.h" #include "default.h" #include "metafactory.h" +#include "profile.h" #include "profilemanager.h" #include "mainwindow.h" #include "tabwidget.h" MainWindow::MainWindow() { m_factory = new MetaFactory(); @@ -106,13 +108,15 @@ void MainWindow::initUI() { } ProfileManager* MainWindow::manager() { return m_manager; } - +TabWidget* MainWindow::tabWidget() { + return m_consoleWindow; +} void MainWindow::populateProfiles() { m_sessionsPop->clear(); Profile::ValueList list = manager()->all(); for (Profile::ValueList::Iterator it = list.begin(); it != list.end(); ++it ) { m_sessionsPop->insertItem( (*it).name() ); } @@ -134,12 +138,18 @@ Session* MainWindow::currentSession() { QList<Session> MainWindow::sessions() { return m_sessions; } void MainWindow::slotNew() { qWarning("New Connection"); + ProfileEditorDialog dlg(factory() ); + int ret = dlg.exec(); + + if ( ret == QDialog::Accepted ) { + create( dlg.profile() ); + } } void MainWindow::slotConnect() { if ( currentSession() ) currentSession()->layer()->open(); } @@ -149,14 +159,14 @@ void MainWindow::slotDisconnect() { currentSession()->layer()->close(); } void MainWindow::slotTerminate() { if ( currentSession() ) currentSession()->layer()->close(); - delete m_curSession; - m_curSession = 0l; + + slotClose(); /* FIXME move to the next session */ } void MainWindow::slotConfigure() { qWarning("configure"); ConfigDialog conf( manager()->all(), factory() ); @@ -167,14 +177,40 @@ void MainWindow::slotConfigure() { if ( QDialog::Accepted == ret ) { qWarning("conf %d", conf.list().count() ); manager()->setProfiles( conf.list() ); populateProfiles(); } } - +/* + * we will remove + * this window from the tabwidget + * remove it from the list + * delete it + * and set the currentSession() + */ void MainWindow::slotClose() { -} + if (!currentSession() ) + return; -void MainWindow::slotProfile( int ) { + tabWidget()->remove( currentSession() ); + tabWidget()->setCurrent( m_sessions.first() ); + m_sessions.remove( m_curSession ); + delete m_curSession; + m_curSession = m_sessions.first(); +} +/* + * We will get the name + * Then the profile + * and then we will make a profile + */ +void MainWindow::slotProfile( int id) { + Profile prof = manager()->profile( m_sessionsPop->text( id) ); + create( prof ); +} +void MainWindow::create( const Profile& prof ) { + Session *ses = manager()->fromProfile( prof, tabWidget() ); + m_sessions.append( ses ); + tabWidget()->add( ses ); + m_curSession = ses; } |