From 7c2a67b93e0e2b80bb89985c92a5aafc6b2b3d65 Mon Sep 17 00:00:00 2001 From: am Date: Sat, 5 Sep 2009 18:04:34 +0000 Subject: -started statistics. It compiles, but does nothing at all yet -implemented aboutShemov and aboutQt git-svn-id: file:///var/svn/repos2/shemov/trunk@405 f440f766-f032-0410-8965-dc7d17de2ca0 --- shemov.cpp | 35 +++++++++++++++++++++++++++++++++++ shemov.h | 5 +++++ shemov.pro | 6 ++++-- statisticsdialog.cpp | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ statisticsdialog.h | 45 +++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 139 insertions(+), 2 deletions(-) create mode 100644 statisticsdialog.cpp create mode 100644 statisticsdialog.h diff --git a/shemov.cpp b/shemov.cpp index cf29262..4d6f4fc 100644 --- a/shemov.cpp +++ b/shemov.cpp @@ -195,6 +195,25 @@ void SheMov::setFsFree(){ mFsFree->setPixmap(QPixmap::fromImage(img)); } +void SheMov::aboutShemov(){ + QString aboutLabel = QString(tr("About %1")).arg(qApp->applicationName()); + QString aboutText = QString(tr("

%1 is a little application to keep track of your pr0n movie collection, though it isn't limited to pr0n movies.

")).arg(qApp->applicationName()); + aboutText.append(""); + aboutText.append(tr("Sissy herself")); + aboutText.append(QString(tr("")).arg(qApp->organizationName())); + aboutText.append(QString(tr("")).arg(qApp->applicationVersion())); + aboutText.append(tr("
Author
Organization%1
Version%1
Dependencies
    ")); + aboutText.append(tr("
  • Qt (thanks to Nokia for this great library)
  • ")); + aboutText.append(tr("
  • cryptopp for hashing the movies (thanks)
  • ")); + aboutText.append(tr("
  • libmagic for figuring out the file type
  • ")); + aboutText.append("
"); + QMessageBox::about(this, aboutLabel, aboutText); +} + +void SheMov::showStatistics(){ + +} + void SheMov::createStatusbar(){ QLabel *selSizeL = new QLabel(tr("Sel. Size")); mSelectedSize = new QLabel(tr("nothing selected yet")); @@ -326,6 +345,15 @@ void SheMov::createActions(){ mDeleteFromArchiveA = new QAction(tr("Delete from archive..."), this); mAVWidget->fileView()->addAction(mDeleteFromArchiveA); connect(mDeleteFromArchiveA, SIGNAL(triggered()), mAVWidget, SLOT(deleteFromArchive())); + + //Help menu + QString aboutLabel = QString(tr("About %1...")).arg(qApp->applicationName()); + mAboutShemovA = new QAction(aboutLabel, this); + connect(mAboutShemovA, SIGNAL(triggered()), this, SLOT(aboutShemov())); + mAboutQtA = new QAction(tr("About Qt..."), this); + connect(mAboutQtA, SIGNAL(triggered()), qApp, SLOT(aboutQt())); + mStatisticsA = new QAction(tr("Some statistics..."), this); + connect(mStatisticsA, SIGNAL(triggered()), this, SLOT(showStatistics())); } void SheMov::createMenus(){ @@ -372,6 +400,13 @@ void SheMov::createMenus(){ mEditFSMenuA = menuBar()->addMenu(mEditFSMenu); mEditArchiveMenuA = menuBar()->addMenu(mEditArchiveMenu); mEditArchiveMenuA->setVisible(false); + + QMenu *helpMenu = new QMenu(tr("&Help"), this); + helpMenu->addAction(mAboutShemovA); + helpMenu->addAction(mAboutQtA); + helpMenu->addSeparator(); + helpMenu->addAction(mStatisticsA); + menuBar()->addMenu(helpMenu); } void SheMov::createExtractMenu(){ diff --git a/shemov.h b/shemov.h index 6d61d2e..890e18b 100644 --- a/shemov.h +++ b/shemov.h @@ -40,6 +40,8 @@ class SheMov : public QMainWindow { void configure(); void tabChanged(int newTab); void setFsFree(); + void aboutShemov(); + void showStatistics(); private: void createStatusbar(); @@ -77,6 +79,9 @@ class SheMov : public QMainWindow { QAction *mMoveBurnA; QAction *mSetDvdA; QAction *mDeleteFromArchiveA; + QAction *mAboutShemovA; + QAction *mAboutQtA; + QAction *mStatisticsA; QList mExtractToA; //EndActions diff --git a/shemov.pro b/shemov.pro index d32685b..fe3ea6b 100644 --- a/shemov.pro +++ b/shemov.pro @@ -29,7 +29,8 @@ sizedelegate.cpp \ archiveddelegate.cpp \ coverarchiveeditor.cpp \ textenterdialog.cpp \ -moviepropertiesdialog.cpp +moviepropertiesdialog.cpp \ +statisticsdialog.cpp HEADERS = listitem.h \ listmodel.h \ movieitem.h \ @@ -57,7 +58,8 @@ sizedelegate.h \ archiveddelegate.h \ coverarchiveeditor.h \ textenterdialog.h \ -moviepropertiesdialog.h +moviepropertiesdialog.h \ +statisticsdialog.h LIBS += -lmagic LIBS += -lcryptopp INCLUDEPATH += /usr/include/cryptopp diff --git a/statisticsdialog.cpp b/statisticsdialog.cpp new file mode 100644 index 0000000..09b9d15 --- /dev/null +++ b/statisticsdialog.cpp @@ -0,0 +1,50 @@ +/* + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version + 2 of the License, or (at your option) any later version. +*/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "statisticsdialog.h" + +StatisticsDialog::StatisticsDialog(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f){ + QHBoxLayout *mainLayout = new QHBoxLayout; + mTab = new QTabWidget; +} + +QualityStats::QualityStats(QWidget *parent) : QWidget(parent), mMargin(10) { + QSqlQuery q("SELECT DISTINCT(iquality), COUNT(iquality) FROM movies GROUP BY iquality"); + q.exec(); + while(q.next()){ + mQualityDistrib[q.value(0).toInt()] = q.value(1).toInt(); + } + QFontMetrics fm(qApp->font()); + mBarHeight = fm.height(); +} + +void QualityStats::paintEvent(QPaintEvent *){ + QPainter p(this); + int width = size().width(); + QPen pen(Qt::red); + p.setPen(pen); +} + +QSize QualityStats::sizeHint() const { + int height = mQualityDistrib.count() * mBarHeight; + height += mQualityDistrib.count() * mMargin; + height += mBarHeight + mMargin; + return QSize(400, height); +} + diff --git a/statisticsdialog.h b/statisticsdialog.h new file mode 100644 index 0000000..7dd78c2 --- /dev/null +++ b/statisticsdialog.h @@ -0,0 +1,45 @@ +/* + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version + 2 of the License, or (at your option) any later version. +*/ + +#ifndef STATISTICSDIALOG_H +#define STATISTICSDIALOG_H + +#include +#include + +class QTabWidget; +class QPaintEvent; +class QSize; + +class StatisticsDialog : public QDialog { + Q_OBJECT + public: + StatisticsDialog(QWidget *parent = 0, Qt::WindowFlags f = 0); + ~StatisticsDialog() {}; + + private: + QTabWidget *mTab; +}; + +class QualityStats : public QWidget { + Q_OBJECT + public: + QualityStats(QWidget *parent = 0); + ~QualityStats() {}; + virtual QSize sizeHint() const; + + protected: + void paintEvent(QPaintEvent *); + + private: + int mBarHeight; + const int mMargin; + QMap mQualityDistrib; +}; + +#endif + -- cgit v1.2.3-70-g09d2