defuze.me
Client
|
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 }