Merge pull request #41 from minger0/addcfgnonotray
add 'add new config' option to the menu
This commit is contained in:
		@@ -15,6 +15,7 @@ LayoutManager::LayoutManager( bool useTrayIcon, const QString &devdir, const QSt
 | 
			
		||||
      layoutGroup(new QActionGroup(this)),
 | 
			
		||||
      updateDevicesAction(new QAction(QIcon::fromTheme("view-refresh"),tr("Update &Joystick Devices"),this)),
 | 
			
		||||
      updateLayoutsAction(new QAction(QIcon::fromTheme("view-refresh"),tr("Update &Layout List"),this)),
 | 
			
		||||
      addNewConfiguration(new QAction(QIcon::fromTheme("list-add"),tr("Add new configuration"),this)),
 | 
			
		||||
      quitAction(new QAction(QIcon::fromTheme("application-exit"),tr("&Quit"),this)),
 | 
			
		||||
      le(0) {
 | 
			
		||||
 | 
			
		||||
@@ -51,6 +52,7 @@ LayoutManager::LayoutManager( bool useTrayIcon, const QString &devdir, const QSt
 | 
			
		||||
 | 
			
		||||
    connect(updateLayoutsAction, SIGNAL(triggered()), this, SLOT(fillPopup()));
 | 
			
		||||
    connect(updateDevicesAction, SIGNAL(triggered()), this, SLOT(updateJoyDevs()));
 | 
			
		||||
    connect(addNewConfiguration,  SIGNAL(triggered()), this, SLOT(addNewConfig()));
 | 
			
		||||
    connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
 | 
			
		||||
 | 
			
		||||
    //no layout loaded at start.
 | 
			
		||||
@@ -520,20 +522,9 @@ void LayoutManager::iconClick() {
 | 
			
		||||
        errorBox(tr("No joystick devices available"),
 | 
			
		||||
                 tr("No joystick devices are currently available to configure.\nPlease plug in a gaming device and select\n\"Update Joystick Devices\" from the popup menu."),
 | 
			
		||||
                 le);
 | 
			
		||||
        return;
 | 
			
		||||
    } else {
 | 
			
		||||
        addNewConfig();
 | 
			
		||||
    }
 | 
			
		||||
    if (le) {
 | 
			
		||||
        if (le->isActiveWindow()) {
 | 
			
		||||
            le->close();
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
            le->activateWindow();
 | 
			
		||||
        }
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
    //otherwise, make a new LayoutEdit dialog and show it.
 | 
			
		||||
    le = new LayoutEdit(this);
 | 
			
		||||
    le->setLayout(currentLayout);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void LayoutManager::trayClick(QSystemTrayIcon::ActivationReason reason) {
 | 
			
		||||
@@ -585,6 +576,9 @@ void LayoutManager::fillPopup() {
 | 
			
		||||
    }
 | 
			
		||||
    trayMenu.addSeparator();
 | 
			
		||||
 | 
			
		||||
    trayMenu.addAction(addNewConfiguration);
 | 
			
		||||
    trayMenu.addSeparator();
 | 
			
		||||
 | 
			
		||||
    //and, at the end, quit!
 | 
			
		||||
    trayMenu.addAction(quitAction);
 | 
			
		||||
}
 | 
			
		||||
@@ -680,6 +674,24 @@ void LayoutManager::updateJoyDevs() {
 | 
			
		||||
    debug_mesg("done updating joydevs\n");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void LayoutManager::addNewConfig() {
 | 
			
		||||
    if (!le) {
 | 
			
		||||
        // make a new LayoutEdit dialog and show it.
 | 
			
		||||
        le = new LayoutEdit(this);
 | 
			
		||||
        le->setLayout(currentLayout);
 | 
			
		||||
    } 
 | 
			
		||||
    if (le) {
 | 
			
		||||
        if (le->isActiveWindow()) {
 | 
			
		||||
            le->hide();
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
            le->show();
 | 
			
		||||
            le->activateWindow();
 | 
			
		||||
            le->raise();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void LayoutManager::addJoyPad(int index) {
 | 
			
		||||
    addJoyPad(index, QString("%1/js%2").arg(devdir, index));
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -75,6 +75,8 @@ class LayoutManager : public QObject {
 | 
			
		||||
		void fillPopup();
 | 
			
		||||
		//update the list of available joystick devices
 | 
			
		||||
		void updateJoyDevs();
 | 
			
		||||
                // open dialog to be able to add new configurations
 | 
			
		||||
                void addNewConfig();
 | 
			
		||||
    private slots:
 | 
			
		||||
        //when the user selects an item on the tray's popup menu
 | 
			
		||||
        void layoutTriggered();
 | 
			
		||||
@@ -97,6 +99,7 @@ class LayoutManager : public QObject {
 | 
			
		||||
        QActionGroup *layoutGroup;
 | 
			
		||||
        QAction *updateDevicesAction;
 | 
			
		||||
        QAction *updateLayoutsAction;
 | 
			
		||||
        QAction *addNewConfiguration;
 | 
			
		||||
        QAction *quitAction;
 | 
			
		||||
 | 
			
		||||
		//if there is a LayoutEdit open, this points to it. Otherwise, NULL.	
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user