Browse Source

Begun drafting backupwidget signals, moved buttons up to debug

Begun the plumbing of connecting TableView signals etc. 
The window doesnt resize well and had to move buttons over the table because the were under my screen
AMEND: added 2 comments
George 4 years ago
parent
commit
0271853441
3 changed files with 92 additions and 46 deletions
  1. 29 3
      src/gui/widgets/backupwidget.cpp
  2. 4 0
      src/gui/widgets/backupwidget.h
  3. 59 43
      src/gui/widgets/backupwidget.ui

+ 29 - 3
src/gui/widgets/backupwidget.cpp

@@ -7,6 +7,8 @@
 #include <QListView>
 #include <QStandardItemModel>
 #include <QFileIconProvider>
+#include <QMessageBox>
+#include <QFileDialog>
 
 BackupWidget::BackupWidget(QWidget *parent) :
     QWidget(parent),
@@ -31,6 +33,7 @@ BackupWidget::BackupWidget(QWidget *parent) :
      *
      */
 
+
     fillTableWithSampleData();
 }
 
@@ -40,6 +43,11 @@ BackupWidget::~BackupWidget()
 }
 
 
+void BackupWidget::on_tableView_clicked(const QModelIndex &index) {
+    selected = model->item(index.row(), 0);
+    DEB << "Item at row:" << index.row() << "->" << selected->data(Qt::DisplayRole);
+}
+
 void BackupWidget::on_createLocalPushButton_clicked()
 {
     // Copy database to backupdir
@@ -52,22 +60,40 @@ void BackupWidget::on_restoreLocalPushButton_clicked()
 
 void BackupWidget::on_deleteSelectedPushButton_clicked()
 {
-    // Remove selected backup from list and delete file.
+    DEB << "deleting:" << selected->data(Qt::DisplayRole);
 }
 
 void BackupWidget::on_createExternalPushButton_clicked()
 {
+    QString filename = QFileDialog::getSaveFileName(
+                this,
+                "Choose destination file",
+                AStandardPaths::directory(AStandardPaths::Backup).absolutePath(),
+                ".db"
+    );
+    // [G]: The window isn resizable and i cant easily debug the buttons (cant find them xD)
+    // [G] TODO: get time to properly format filename
     // Open something like a QFileDialog and let the user choose where to save the backup
 }
 
 void BackupWidget::on_restoreExternalPushButton_clicked()
 {
+    QString filename = QFileDialog::getSaveFileName(
+                this,
+                "Choose backup file",
+                // [G] TODO: home is the debug directory. Will it be ~ correctly?
+                // Qt docs say it is (Confirm debug exception)
+                QStandardPaths::displayName(QStandardPaths::HomeLocation),
+                ".db"
+    );
     // Open something like a QFileDialog and let the user choose where to load the backup from
 }
 
-void BackupWidget::on_aboutPushButton_clicked()
-{
+void BackupWidget::on_aboutPushButton_clicked() {
     // Shows a message box explaining a little about local and external backups
+    // [G]: Add message text. Could this be predefined in Opl::Assets?
+    QMessageBox msg_box(QMessageBox::Information, "About backups", "...", QMessageBox::Ok);
+    msg_box.exec();
 }
 
 

+ 4 - 0
src/gui/widgets/backupwidget.h

@@ -5,6 +5,7 @@
 #include <QStandardItemModel>
 #include <QFileSystemModel>
 #include <QFileSystemWatcher>
+#include <QTableView>
 
 namespace Ui {
 class BackupWidget;
@@ -19,6 +20,8 @@ public:
     ~BackupWidget();
 
 private slots:
+    void on_tableView_clicked(const QModelIndex &index);
+
     void on_createLocalPushButton_clicked();
 
     void on_restoreLocalPushButton_clicked();
@@ -35,6 +38,7 @@ private:
     Ui::BackupWidget *ui;
 
     QStandardItemModel *model;
+    QStandardItem *selected;
 
     void fillTableWithSampleData();
 };

+ 59 - 43
src/gui/widgets/backupwidget.ui

@@ -14,8 +14,14 @@
    <string>Form</string>
   </property>
   <layout class="QGridLayout" name="gridLayout">
-   <item row="3" column="0">
+   <item row="4" column="0">
     <widget class="QTableView" name="tableView">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
      <property name="sizeAdjustPolicy">
       <enum>QAbstractScrollArea::AdjustToContents</enum>
      </property>
@@ -39,7 +45,14 @@
      </attribute>
     </widget>
    </item>
-   <item row="5" column="0">
+   <item row="2" column="0">
+    <widget class="Line" name="line">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+    </widget>
+   </item>
+   <item row="6" column="0">
     <widget class="Line" name="line_2">
      <property name="orientation">
       <enum>Qt::Horizontal</enum>
@@ -78,31 +91,16 @@
      </item>
     </layout>
    </item>
-   <item row="9" column="0">
-    <widget class="QPushButton" name="createExternalPushButton">
-     <property name="text">
-      <string>Create External Backup</string>
-     </property>
-    </widget>
-   </item>
-   <item row="7" column="0">
-    <widget class="QPushButton" name="restoreLocalPushButton">
-     <property name="text">
-      <string>Restore Local Backup</string>
-     </property>
-    </widget>
-   </item>
-   <item row="6" column="0">
-    <widget class="QPushButton" name="createLocalPushButton">
-     <property name="text">
-      <string>Create Local Backup</string>
-     </property>
-    </widget>
-   </item>
    <item row="1" column="0">
     <layout class="QHBoxLayout" name="horizontalLayout">
      <item>
       <widget class="QLabel" name="titleSpacerLabel1">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
        <property name="text">
         <string/>
        </property>
@@ -127,26 +125,44 @@
      </item>
     </layout>
    </item>
-   <item row="2" column="0">
-    <widget class="Line" name="line">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-    </widget>
-   </item>
-   <item row="10" column="0">
-    <widget class="QPushButton" name="restoreExternalPushButton">
-     <property name="text">
-      <string>Restore External Backup</string>
-     </property>
-    </widget>
-   </item>
-   <item row="8" column="0">
-    <widget class="QPushButton" name="deleteSelectedPushButton">
-     <property name="text">
-      <string>Delete Selected Backup</string>
-     </property>
-    </widget>
+   <item row="3" column="0">
+    <layout class="QHBoxLayout" name="horizontalLayout_11">
+     <item>
+      <widget class="QPushButton" name="restoreExternalPushButton">
+       <property name="text">
+        <string>Restore External Backup</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QPushButton" name="createExternalPushButton">
+       <property name="text">
+        <string>Create External Backup</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QPushButton" name="deleteSelectedPushButton">
+       <property name="text">
+        <string>Delete Selected Backup</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QPushButton" name="restoreLocalPushButton">
+       <property name="text">
+        <string>Restore Local Backup</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QPushButton" name="createLocalPushButton">
+       <property name="text">
+        <string>Create Local Backup</string>
+       </property>
+      </widget>
+     </item>
+    </layout>
    </item>
   </layout>
  </widget>