Adding new category is supported.
Leonardo Robol [2011-10-24 15:11]
Adding new category is supported.
diff --git a/Larss.pro b/Larss.pro
index dd58d63..35dafc4 100644
--- a/Larss.pro
+++ b/Larss.pro
@@ -15,15 +15,18 @@ SOURCES += larss/main.cpp\
larss/feedmodel.cpp \
larss/rssparser.cpp \
larss/feedpoller.cpp \
- larss/editfeeddialog.cpp
+ larss/editfeeddialog.cpp \
+ larss/editcategorydialog.cpp
HEADERS += include/mainwindow.h \
include/feedmodel.h \
include/rssparser.h \
include/feedpoller.h \
- include/editfeeddialog.h
+ include/editfeeddialog.h \
+ include/editcategorydialog.h
FORMS += ui/mainwindow.ui \
- ui/editfeeddialog.ui
+ ui/editfeeddialog.ui \
+ ui/editcategorydialog.ui
INCLUDEPATH += ./include
diff --git a/include/editcategorydialog.h b/include/editcategorydialog.h
new file mode 100644
index 0000000..74662ab
--- /dev/null
+++ b/include/editcategorydialog.h
@@ -0,0 +1,31 @@
+#ifndef EDITCATEGORYDIALOG_H
+#define EDITCATEGORYDIALOG_H
+
+#include <QDialog>
+
+namespace Ui {
+ class EditCategoryDialog;
+}
+
+namespace Larss {
+
+ class EditCategoryDialog : public QDialog
+ {
+ Q_OBJECT
+
+ public:
+ explicit EditCategoryDialog(QWidget *parent = 0);
+ ~EditCategoryDialog();
+
+ /**
+ * @brief Get the name of the category to be created.
+ */
+ QString getCategoryName();
+
+ private:
+ Ui::EditCategoryDialog *ui;
+ };
+
+}
+
+#endif // EDITCATEGORYDIALOG_H
diff --git a/include/mainwindow.h b/include/mainwindow.h
index e326cc0..dc628ec 100644
--- a/include/mainwindow.h
+++ b/include/mainwindow.h
@@ -32,6 +32,8 @@ private slots:
void on_actionAdd_Feed_triggered();
+ void on_actionAdd_Category_triggered();
+
private:
Ui::MainWindow *ui;
void do_exit();
diff --git a/larss/editcategorydialog.cpp b/larss/editcategorydialog.cpp
new file mode 100644
index 0000000..51a8c0e
--- /dev/null
+++ b/larss/editcategorydialog.cpp
@@ -0,0 +1,22 @@
+#include "include/editcategorydialog.h"
+#include "ui_editcategorydialog.h"
+
+using namespace Larss;
+
+EditCategoryDialog::EditCategoryDialog(QWidget *parent) :
+ QDialog(parent),
+ ui(new Ui::EditCategoryDialog)
+{
+ ui->setupUi(this);
+}
+
+EditCategoryDialog::~EditCategoryDialog()
+{
+ delete ui;
+}
+
+QString
+EditCategoryDialog::getCategoryName()
+{
+ return ui->newCategoryName->text();
+}
diff --git a/larss/mainwindow.cpp b/larss/mainwindow.cpp
index d52f0f3..8e0610a 100644
--- a/larss/mainwindow.cpp
+++ b/larss/mainwindow.cpp
@@ -1,6 +1,7 @@
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "editfeeddialog.h"
+#include "editcategorydialog.h"
#include <QDebug>
#include <QtGui>
@@ -112,8 +113,16 @@ void Larss::MainWindow::on_actionAdd_Feed_triggered()
Larss::EditFeedDialog dialog(this, feedModel);
if (dialog.exec() == QDialog::Accepted)
{
- qDebug() << "Adding new feed";
feedModel->addFeed(dialog.getFeedName(),
dialog.getFeedUrl(), dialog.getCategoryId());
}
}
+
+void Larss::MainWindow::on_actionAdd_Category_triggered()
+{
+ Larss::EditCategoryDialog dialog(this);
+ if (dialog.exec() == QDialog::Accepted)
+ {
+ feedModel->addCategory(dialog.getCategoryName());
+ }
+}
diff --git a/ui/editcategorydialog.ui b/ui/editcategorydialog.ui
new file mode 100644
index 0000000..bba5ffa
--- /dev/null
+++ b/ui/editcategorydialog.ui
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>EditCategoryDialog</class>
+ <widget class="QDialog" name="EditCategoryDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>261</width>
+ <height>103</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Dialog</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Insert the name of the new category</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QLabel" name="label_2">
+ <property name="text">
+ <string>Name</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="newCategoryName"/>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>EditCategoryDialog</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>248</x>
+ <y>254</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>157</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>EditCategoryDialog</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>316</x>
+ <y>260</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>286</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/ui/mainwindow.ui b/ui/mainwindow.ui
index 7247ffb..ead9dc2 100644
--- a/ui/mainwindow.ui
+++ b/ui/mainwindow.ui
@@ -98,6 +98,7 @@
<property name="title">
<string>File</string>
</property>
+ <addaction name="actionAdd_Category"/>
<addaction name="actionAdd_Feed"/>
<addaction name="separator"/>
<addaction name="actionExit"/>
@@ -115,6 +116,11 @@
<string>Add Feed</string>
</property>
</action>
+ <action name="actionAdd_Category">
+ <property name="text">
+ <string>Add Category</string>
+ </property>
+ </action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<customwidgets>