Added button to save current listing to json.
This commit is contained in:
		@@ -84,6 +84,11 @@ int BackupItem::getIconWidth()
 | 
				
			|||||||
    return ui->itemPicture->width();
 | 
					    return ui->itemPicture->width();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QString BackupItem::getPath()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return m_path;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void BackupItem::setItemIcon(const QString &path, int item_width, bool try_dds)
 | 
					void BackupItem::setItemIcon(const QString &path, int item_width, bool try_dds)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    ui->itemPicture->setMinimumWidth(item_width);
 | 
					    ui->itemPicture->setMinimumWidth(item_width);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -39,6 +39,7 @@ public:
 | 
				
			|||||||
    void setDirectory(const QString &m_path);
 | 
					    void setDirectory(const QString &m_path);
 | 
				
			||||||
    const QPixmap *getIconPixmap();
 | 
					    const QPixmap *getIconPixmap();
 | 
				
			||||||
    int getIconWidth();
 | 
					    int getIconWidth();
 | 
				
			||||||
 | 
					    QString getPath();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    static bool lessThan(const BackupItem *s1, const BackupItem *s2);
 | 
					    static bool lessThan(const BackupItem *s1, const BackupItem *s2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,6 +28,8 @@
 | 
				
			|||||||
#include <QDebug>
 | 
					#include <QDebug>
 | 
				
			||||||
#include <QDialogButtonBox>
 | 
					#include <QDialogButtonBox>
 | 
				
			||||||
#include <QDir>
 | 
					#include <QDir>
 | 
				
			||||||
 | 
					#include <QFileDialog>
 | 
				
			||||||
 | 
					#include <QJsonDocument>
 | 
				
			||||||
#include <QSettings>
 | 
					#include <QSettings>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <vitamtp.h>
 | 
					#include <vitamtp.h>
 | 
				
			||||||
@@ -49,10 +51,39 @@ void BackupManagerForm::setupForm()
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    this->resize(800, 480);
 | 
					    this->resize(800, 480);
 | 
				
			||||||
    connect(ui->backupComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(loadBackupListing(int)));
 | 
					    connect(ui->backupComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(loadBackupListing(int)));
 | 
				
			||||||
 | 
					    connect(ui->saveButton, SIGNAL(clicked()), this, SLOT(saveListing()));
 | 
				
			||||||
    ui->tableWidget->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
 | 
					    ui->tableWidget->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
 | 
				
			||||||
    ui->tableWidget->horizontalHeader()->hide();
 | 
					    ui->tableWidget->horizontalHeader()->hide();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void BackupManagerForm::saveListing()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    int rows = ui->tableWidget->rowCount();
 | 
				
			||||||
 | 
					    QVariantList items;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for(int i = 0; i < rows; ++i) {
 | 
				
			||||||
 | 
					        BackupItem *item = static_cast<BackupItem *>(ui->tableWidget->cellWidget(i, 0));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        QVariantMap entry;
 | 
				
			||||||
 | 
					        entry.insert("title", item->title);
 | 
				
			||||||
 | 
					        entry.insert("gameid", QFileInfo(item->getPath()).fileName());
 | 
				
			||||||
 | 
					        entry.insert("path", item->getPath());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        items.append(entry);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QString output = QFileDialog::getSaveFileName(
 | 
				
			||||||
 | 
					            this, tr("Select save location"), QDir::homePath() + "/listing.json",
 | 
				
			||||||
 | 
					                "JSON (*.json)");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if(!output.isEmpty()) {
 | 
				
			||||||
 | 
					        QJsonDocument doc = QJsonDocument::fromVariant(items);
 | 
				
			||||||
 | 
					        QFile jsonFile(output);
 | 
				
			||||||
 | 
					        jsonFile.open(QFile::WriteOnly);
 | 
				
			||||||
 | 
					        jsonFile.write(doc.toJson());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void BackupManagerForm::removeEntry(BackupItem *item)
 | 
					void BackupManagerForm::removeEntry(BackupItem *item)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    ConfirmDialog msgBox;
 | 
					    ConfirmDialog msgBox;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -48,8 +48,10 @@ private:
 | 
				
			|||||||
public slots:
 | 
					public slots:
 | 
				
			||||||
    void loadBackupListing(int index);
 | 
					    void loadBackupListing(int index);
 | 
				
			||||||
    void removeEntry(BackupItem *item);
 | 
					    void removeEntry(BackupItem *item);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
private slots:
 | 
					private slots:
 | 
				
			||||||
    void on_filterLineEdit_textChanged(const QString &arg1);
 | 
					    void on_filterLineEdit_textChanged(const QString &arg1);
 | 
				
			||||||
 | 
					    void saveListing();
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif // BACKUPMANAGERFORM_H
 | 
					#endif // BACKUPMANAGERFORM_H
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -123,6 +123,13 @@
 | 
				
			|||||||
       </property>
 | 
					       </property>
 | 
				
			||||||
      </widget>
 | 
					      </widget>
 | 
				
			||||||
     </item>
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item>
 | 
				
			||||||
 | 
					      <widget class="QPushButton" name="saveButton">
 | 
				
			||||||
 | 
					       <property name="text">
 | 
				
			||||||
 | 
					        <string>Save listing</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
    </layout>
 | 
					    </layout>
 | 
				
			||||||
   </item>
 | 
					   </item>
 | 
				
			||||||
  </layout>
 | 
					  </layout>
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user