defuze.me  Client
mainwindow.cpp
00001 /**************************************************************************
00002 ** defuze.me Epitech Innovative Project
00003 **
00004 ** Copyright 2010-2011
00005 **   Athena Calmettes - Jocelyn De La Rosa - Francois Gaillard
00006 **   Adrien Jarthon - Alexandre Moore - Luc Peres - Arnaud Sellier
00007 **
00008 ** All rights reserved.
00009 **************************************************************************/
00010 
00011 #include "mainwindow.hpp"
00012 #include "tabwidget.hpp"
00013 #include "guicore.hpp"
00014 #include "qtwin.h"
00015 
00016 #include <QVBoxLayout>
00017 #include <QtGui/qboxlayout.h>
00018 #include <QtGui/qslider.h>
00019 #include <QtGui/qstyle.h>
00020 #include <QtGui/qtoolbutton.h>
00021 #include <QPushButton>
00022 #include "audiocore.hpp"
00023 #include <QDebug>
00024 #include <QFileDialog>
00025 
00026 using namespace Gui;
00027 
00028 MainWindow::MainWindow(GuiCore *guiCore, QWidget *parent) : QMainWindow(parent)
00029 {
00030     setStyleSheet("QTabWidget::tab-bar { left: 5px; }"
00031                   "QTabBar::tab {"
00032                   "height: 31px;"
00033                   "margin-top: 6px;"
00034                   "margin-left: 6px;"
00035                   "background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 rgba(220, 220, 220, 128), stop: 1.0 rgba(180, 180, 180, 128));"
00036                   "border: 1px solid rgba(255, 255, 255, 80);"
00037                   "border-bottom: none;"
00038                   "color: black;"
00039                   "padding: 3px 12px;"
00040                   "}"
00041                   "QTabBar::tab:!selected {"
00042                   "}"
00043                   "QTabBar::tab:selected, QTabBar::tab:hover { "
00044                   "margin-top: 6px;"
00045                   "background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 rgba(105, 104, 102, 255), stop: 1.0 rgba(75, 74, 72, 255));"
00046                   "height: 32px;"
00047                   "color: white;"
00048                   "}");
00049     setWindowTitle(guiCore->getPublicParameter("window_title").toString());
00050     setWindowIcon(QIcon(":/icons/logo"));
00051     tabWidget = new TabWidget(guiCore, this);
00052     tabWidget->setLayoutDirection(Qt::RightToLeft);
00053     tabWidget->setMovable(false);
00054     tabWidget->setDocumentMode(true);
00055     tabWidget->setDrawBase(false);
00056     setCentralWidget(tabWidget);
00057     if (guiCore->getPublicParameter("aero", QVariant(true)).toBool())
00058     {
00059         if (QtWin::isCompositionEnabled())
00060         {
00061             QtWin::extendFrameIntoClientArea(this, 0, 0, 46, 0);
00062             setContentsMargins(0, 0, -2, -2);
00063         }
00064     }
00065 }
00066 
00067 MainWindow::~MainWindow()
00068 {
00069 }
00070 
00071 void MainWindow::addTab(Tab *tab, const QString &icon, bool active)
00072 {
00073     tab->getGrid()->setParent(tabWidget);
00074     tabs << tab;
00075     gridsTabs[tab->getGrid()] = tab;
00076     int idx = tabWidget->addTab(tab->getGrid(), QIcon(icon), tab->getName());
00077     if (active)
00078         tabWidget->setCurrentIndex(idx);
00079 }
00080 
00081 Tab* MainWindow::currentTab()
00082 {
00083     return gridsTabs[tabWidget->currentWidget()];
00084 }
00085 
00086 TabWidget *MainWindow::getTabWidget() const
00087 {
00088     return tabWidget;
00089 }
00090 
00091 QList<Tab*> MainWindow::getTabs() const
00092 {
00093     return tabs;
00094 }