summaryrefslogtreecommitdiff
path: root/noncore/settings/networksettings/ppp/pppmodule.cpp
blob: fb2f3e513fdeccac21913472132d949eba289848 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#include "pppconfig.h"
#include "pppmodule.h"
#include "pppdata.h"
#include "kpppwidget.h"
#include "interfaceinformationimp.h"
//#include "devices.h"

/**
 * Constructor, find all of the possible interfaces
 */
PPPModule::PPPModule() : Module()
{
    Interface *iface;
    iface = new Interface( 0, "device" );
    iface->setHardwareName( "account" );
    list.append( iface );
}

/**
 * Delete any interfaces that we own.
 */
PPPModule::~PPPModule(){
  Interface *i;
  for ( i=list.first(); i != 0; i=list.next() )
    delete i;
}

/**
 * Change the current profile
 */
void PPPModule::setProfile(const QString &newProfile){
  profile = newProfile;
}

/**
 * get the icon name for this device.
 * @param Interface* can be used in determining the icon.
 * @return QString the icon name (minus .png, .gif etc)
 */
QString PPPModule::getPixmapName(Interface* ){
  return "ppp";
}

/**
 * Check to see if the interface i is owned by this module.
 * @param Interface* interface to check against
 * @return bool true if i is owned by this module, false otherwise.
 */
bool PPPModule::isOwner(Interface *i){
    return list.find( i ) != -1;
}

/**
 * Create, and return the WLANConfigure Module
 * @return QWidget* pointer to this modules configure.
 */
QWidget *PPPModule::configure(Interface *i){
    qDebug("return ModemWidget");
    PPPConfigWidget *pppconfig = new PPPConfigWidget( 0, "PPPConfig",  false,
                                                      Qt::WDestructiveClose );
    return pppconfig;
}

/**
 * Create, and return the Information Module
 * @return QWidget* pointer to this modules info.
 */
QWidget *PPPModule::information(Interface *i){
  // We don't have any advanced pppd information widget yet :-D
  // TODO ^
    qDebug("return PPPModule::information");
  InterfaceInformationImp *information = new InterfaceInformationImp(0, "InterfaceSetupImp", i);
  return information;
}

/**
 * Get all active (up or down) interfaces
 * @return QList<Interface> A list of interfaces that exsist that havn't
 * been called by isOwner()
 */
QList<Interface> PPPModule::getInterfaces(){
  // List all of the files in the peer directory
    qDebug("PPPModule::getInterfaces");
  return list;
}

/**
 * Attempt to add a new interface as defined by name
 * @param name the name of the type of interface that should be created given
 *  by possibleNewInterfaces();
 * @return Interface* NULL if it was unable to be created.
 */
Interface *PPPModule::addNewInterface(const QString &newInterface){

  qDebug("try to add iface %s",newInterface.latin1());

  PPPConfigWidget imp(0, "PPPConfigImp", true);
  imp.showMaximized();
  if(imp.exec() == QDialog::Accepted ){
              qDebug("ACCEPTED");
              PPPData::data()->save();
              Interface *iface;
              iface = new Interface( 0, PPPData::data()->modemDevice() );
              iface->setHardwareName( PPPData::data()->accname() );
              list.append( iface );
              return iface;
  }
  return NULL;
}

/**
 * Attempts to remove the interface, doesn't delete i
 * @return bool true if successfull, false otherwise.
 */
bool PPPModule::remove(Interface*){
  // Can't remove a hardware device, you can stop it though.
  return false;
}

void PPPModule::possibleNewInterfaces(QMap<QString, QString> &newIfaces)
{
    newIfaces.insert(QObject::tr("PPP") ,
                     QObject::tr("generic ppp device"));
}