mem leaks--, globals--, better macro names, Q_OBJECT++, other name improvemets
This commit is contained in:
@ -7,64 +7,64 @@ LayoutEdit::LayoutEdit( LayoutManager* l ): QWidget(NULL) {
|
||||
setWindowTitle( NAME );
|
||||
setWindowIcon(QPixmap(ICON24));
|
||||
|
||||
LMain = new QVBoxLayout( this);
|
||||
LMain->setSpacing(5);
|
||||
LMain->setMargin(5);
|
||||
mainLayout = new QVBoxLayout( this);
|
||||
mainLayout->setSpacing(5);
|
||||
mainLayout->setMargin(5);
|
||||
|
||||
QFrame* frame = new QFrame(this);
|
||||
frame->setFrameStyle(QFrame::Box | QFrame::Sunken );
|
||||
QGridLayout* g = new QGridLayout(frame);
|
||||
g->setMargin(5);
|
||||
g->setSpacing(5);
|
||||
CLayouts = new QComboBox(frame);
|
||||
connect( CLayouts, SIGNAL(activated( const QString& )), lm, SLOT(load(const QString&)));
|
||||
g->addWidget(CLayouts,0,0,1,4);
|
||||
cmbLayouts = new QComboBox(frame);
|
||||
connect( cmbLayouts, SIGNAL(activated( const QString& )), lm, SLOT(load(const QString&)));
|
||||
g->addWidget(cmbLayouts,0,0,1,4);
|
||||
|
||||
//most of these buttons can link directly into slots in the LayoutManager
|
||||
BAdd = new QPushButton("Add", frame);
|
||||
connect(BAdd, SIGNAL(clicked()), lm, SLOT(saveAs()));
|
||||
g->addWidget(BAdd,1,0);
|
||||
BRem = new QPushButton("Remove", frame);
|
||||
connect(BRem, SIGNAL(clicked()), lm, SLOT(remove()));
|
||||
g->addWidget(BRem,1,1);
|
||||
BUpd = new QPushButton("Update", frame);
|
||||
connect(BUpd, SIGNAL(clicked()), lm, SLOT(save()));
|
||||
g->addWidget(BUpd,1,2);
|
||||
BRev = new QPushButton("Revert", frame);
|
||||
connect(BRev, SIGNAL(clicked()), lm, SLOT(reload()));
|
||||
g->addWidget(BRev,1,3);
|
||||
LMain->addWidget( frame );
|
||||
btnAdd = new QPushButton("Add", frame);
|
||||
connect(btnAdd, SIGNAL(clicked()), lm, SLOT(saveAs()));
|
||||
g->addWidget(btnAdd,1,0);
|
||||
btnRem = new QPushButton("Remove", frame);
|
||||
connect(btnRem, SIGNAL(clicked()), lm, SLOT(remove()));
|
||||
g->addWidget(btnRem,1,1);
|
||||
btnUpd = new QPushButton("Update", frame);
|
||||
connect(btnUpd, SIGNAL(clicked()), lm, SLOT(save()));
|
||||
g->addWidget(btnUpd,1,2);
|
||||
btnRev = new QPushButton("Revert", frame);
|
||||
connect(btnRev, SIGNAL(clicked()), lm, SLOT(reload()));
|
||||
g->addWidget(btnRev,1,3);
|
||||
mainLayout->addWidget( frame );
|
||||
|
||||
//produce a list of names for the FlashRadioArray
|
||||
//this is only necesary since joystick devices need not always be
|
||||
//contiguous
|
||||
QStringList names;
|
||||
foreach (JoyPad *joypad, available) {
|
||||
foreach (JoyPad *joypad, lm->available) {
|
||||
names.append(joypad->getName());
|
||||
connect(this, SIGNAL(focusStateChanged(bool)), joypad, SLOT(focusChange(bool)));
|
||||
}
|
||||
|
||||
//flash radio array
|
||||
JoyButtons = new FlashRadioArray(names, true, this );
|
||||
LMain->addWidget( JoyButtons );
|
||||
joyButtons = new FlashRadioArray(names, true, this );
|
||||
mainLayout->addWidget( joyButtons );
|
||||
|
||||
//we have a WidgetStack to represent the multiple joypads
|
||||
PadStack = new QStackedWidget( this );
|
||||
PadStack->setFrameStyle(QFrame::Box | QFrame::Sunken );
|
||||
LMain->addWidget(PadStack);
|
||||
padStack = new QStackedWidget( this );
|
||||
padStack->setFrameStyle(QFrame::Box | QFrame::Sunken );
|
||||
mainLayout->addWidget(padStack);
|
||||
|
||||
//go through each of the available joysticks
|
||||
// i is the current index into PadStack
|
||||
int i = 0;
|
||||
foreach (JoyPad *joypad, available) {
|
||||
foreach (JoyPad *joypad, lm->available) {
|
||||
//add a new JoyPadWidget to the stack
|
||||
PadStack->insertWidget( i, joypad->widget(PadStack,i) );
|
||||
padStack->insertWidget( i, joypad->widget(padStack,i) );
|
||||
//every time it "flashes", flash the associated tab.
|
||||
connect( PadStack->widget(i), SIGNAL( flashed( int ) ), JoyButtons, SLOT( flash( int )));
|
||||
connect( padStack->widget(i), SIGNAL( flashed( int ) ), joyButtons, SLOT( flash( int )));
|
||||
++i;
|
||||
}
|
||||
//whenever a new tab is selected, raise the appropriate JoyPadWidget
|
||||
connect( JoyButtons, SIGNAL( changed( int ) ), PadStack, SLOT( setCurrentIndex( int )));
|
||||
connect( joyButtons, SIGNAL( changed( int ) ), padStack, SLOT( setCurrentIndex( int )));
|
||||
|
||||
updateLayoutList();
|
||||
|
||||
@ -78,7 +78,7 @@ LayoutEdit::LayoutEdit( LayoutManager* l ): QWidget(NULL) {
|
||||
QPushButton* quit = new QPushButton( "-- Quit --", this );
|
||||
connect( quit, SIGNAL( clicked() ), qApp, SLOT(quit()));
|
||||
h->addWidget(quit);
|
||||
LMain->addLayout(h);
|
||||
mainLayout->addLayout(h);
|
||||
connect(qApp, SIGNAL(focusChanged ( QWidget * , QWidget * ) ), this,
|
||||
SLOT(appFocusChanged(QWidget *, QWidget *)));
|
||||
this->show();
|
||||
@ -86,46 +86,46 @@ LayoutEdit::LayoutEdit( LayoutManager* l ): QWidget(NULL) {
|
||||
|
||||
void LayoutEdit::setLayout(QString layout) {
|
||||
//change the text,
|
||||
CLayouts->setCurrentIndex(lm->getLayoutNames().indexOf(layout));
|
||||
cmbLayouts->setCurrentIndex(lm->getLayoutNames().indexOf(layout));
|
||||
//update all the JoyPadWidgets.
|
||||
for (int i = 0; i < available.count(); i++) {
|
||||
((JoyPadWidget*)PadStack->widget(i))->update();
|
||||
for (int i = 0, n = lm->available.count(); i < n; i++) {
|
||||
((JoyPadWidget*)padStack->widget(i))->update();
|
||||
}
|
||||
}
|
||||
|
||||
void LayoutEdit::updateLayoutList() {
|
||||
//blank the list, then load in new names from the LayoutManager.
|
||||
CLayouts->clear();
|
||||
cmbLayouts->clear();
|
||||
QStringList layouts = lm->getLayoutNames();
|
||||
CLayouts->insertItems(-1, layouts);
|
||||
CLayouts->setCurrentIndex(layouts.indexOf(lm->currentLayout));
|
||||
cmbLayouts->insertItems(-1, layouts);
|
||||
cmbLayouts->setCurrentIndex(layouts.indexOf(lm->currentLayout));
|
||||
}
|
||||
|
||||
void LayoutEdit::updateJoypadWidgets() {
|
||||
int indexOfFlashRadio = LMain->indexOf(JoyButtons);
|
||||
int indexOfFlashRadio = mainLayout->indexOf(joyButtons);
|
||||
FlashRadioArray *newJoyButtons;
|
||||
QStringList names;
|
||||
foreach (JoyPad *joypad, available) {
|
||||
foreach (JoyPad *joypad, lm->available) {
|
||||
names.append(joypad->getName());
|
||||
}
|
||||
|
||||
newJoyButtons = new FlashRadioArray( names, true, this );
|
||||
LMain->insertWidget(indexOfFlashRadio, newJoyButtons);
|
||||
LMain->removeWidget(JoyButtons);
|
||||
FlashRadioArray* oldJoyButtons = JoyButtons;
|
||||
JoyButtons = newJoyButtons;
|
||||
connect( JoyButtons, SIGNAL( changed( int ) ), PadStack, SLOT( setCurrentIndex( int )));
|
||||
mainLayout->insertWidget(indexOfFlashRadio, newJoyButtons);
|
||||
mainLayout->removeWidget(joyButtons);
|
||||
FlashRadioArray* oldJoyButtons = joyButtons;
|
||||
joyButtons = newJoyButtons;
|
||||
connect( joyButtons, SIGNAL( changed( int ) ), padStack, SLOT( setCurrentIndex( int )));
|
||||
oldJoyButtons->deleteLater();
|
||||
int numberOfJoypads = PadStack->count();
|
||||
int numberOfJoypads = padStack->count();
|
||||
for(int i = 0; i<numberOfJoypads; i++) {
|
||||
PadStack->removeWidget(PadStack->widget(0));
|
||||
padStack->removeWidget(padStack->widget(0));
|
||||
}
|
||||
int i = 0;
|
||||
foreach (JoyPad *joypad, available) {
|
||||
foreach (JoyPad *joypad, lm->available) {
|
||||
//add a new JoyPadWidget to the stack
|
||||
PadStack->insertWidget( i, joypad->widget(PadStack,i) );
|
||||
padStack->insertWidget( i, joypad->widget(padStack,i) );
|
||||
//every time it "flashes", flash the associated tab.
|
||||
connect( PadStack->widget(i), SIGNAL( flashed( int ) ), JoyButtons, SLOT( flash( int )));
|
||||
connect( padStack->widget(i), SIGNAL( flashed( int ) ), joyButtons, SLOT( flash( int )));
|
||||
++i;
|
||||
}
|
||||
}
|
||||
@ -140,7 +140,7 @@ void LayoutEdit::appFocusChanged(QWidget *old, QWidget *now) {
|
||||
emit focusStateChanged(false);
|
||||
} else if(old!=NULL && now==NULL) {
|
||||
emit focusStateChanged(true);
|
||||
foreach (JoyPad *joypad, available) {
|
||||
foreach (JoyPad *joypad, lm->available) {
|
||||
debug_mesg("iterating and releasing\n");
|
||||
joypad->release();
|
||||
}
|
||||
|
Reference in New Issue
Block a user