summaryrefslogblamecommitdiffstats
path: root/src/widget.cpp
blob: 7867f9255760e93a778cb8744687e273d4ec3521 (plain) (tree)
















































































































































                                                                                                                                          
#include "widget.h"
#include "ui_widget.h"
#include "displaymanager.h"


//#include <QString>
//#include <QSet>
//#include <QDebug>
#include <vector>
using namespace std;

#include <algorithm>

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    DisplayManager* DM = DisplayManager::Inst();

    for (std::vector<Output>::iterator i = DM->getConnectedOutputs().begin(); i != DM->getConnectedOutputs().end(); ++i)
    {
        qDebug() << "EDID?" << ( (*i).hasEDID() ? "true" :  "false");
        qDebug() << "Proj?" << ( (*i).isProjector() ? "true" :  "false");
        qDebug() << "Current?" <<  (*i).getCurrentMode().width<< (*i).getCurrentMode().height;
        qDebug() << "Preferred?" <<   (*i).getPreferredMode().width << (*i).getPreferredMode().height;
        QSet<Resolution> modes =   (*i).getSupportedModes();
        for ( QSet<Resolution>::iterator i = modes.begin(); i != modes.end(); ++i )
        {
            qDebug() << "---- " << (*i).width << (*i).height;
        }
    }





//    XManager * XM = XManager::Inst();


//    switch ( XM->getOutputInfos().size() ){
//    /*************************************************************************/
//    case 1:// In case of one connected output - xrandr --auto
//        qDebug() << "Normal output";
//        exit(0);
//        break;
//    /*************************************************************************/
//    case 2: // In case of two connected outputs

//        /*********************************************************************/
//        // If one of the two connected outputs is a beamer
//        if ( true ) //( XM->getOutputInfos()[0]->mm_width == 0 && XM->getOutputInfos()[0]->mm_height == 0 )
//               // || ( XM->getOutputInfos()[1]->mm_width == 0 && XM->getOutputInfos()[1]->mm_height == 0 ) )
//        {
//            /*****************************************************************/
//            // If the beamer transmits reliable EDID data.
//            if( isReliableEDIDpresent() )
//            {
//                qDebug() << "beamer output reliable EDID ";
//                configureWidgetForBeamerWithEDID();
//            }
//            /*****************************************************************/
//            // If the beamer DOES NOT transmits reliable EDID data.
//            else
//            {
//                qDebug() << "beamer output no reliable EDID ";
//                configureWidgetForBeamerWithEDID();
//            }
//            /*****************************************************************/

//        }
//        /*********************************************************************/
//        // If NEITHER of the outputs is a beamer (likely dualscreen setup)
//        else
//        {
//            // Just apply preferred settings
//            qDebug() << "dualscreen output";

//        }
//        break;
//    /*************************************************************************/
//    default:
//        // If there are more than 3 outputs
//        // its up to the user. Quit.
//        exit(0);
//        break;
//    }
//    /*************************************************************************/






        //Remove borders and stuff
        setWindowFlags(windowFlags() | Qt::FramelessWindowHint);




    //    QSet<RRMode> outputs0, outputs1;
    //    for (int i = 0; i < XManager::Inst()->getOutputInfos()[0]->nmode; ++i)
    //        outputs0.insert(XManager::Inst()->getOutputInfos()[0]->modes[i]);
    //    for (int i = 0; i < XManager::Inst()->getOutputInfos()[1]->nmode; ++i)
    //        outputs1.insert(XManager::Inst()->getOutputInfos()[1]->modes[i]);
    //    outputs0.intersect(outputs1);

    //    // Fill treewidget with data from cups dests;
    //    for ( QSet<RRMode>::iterator it = outputs0.begin(); it != outputs0.end(); ++it )
    //    {
    //        qDebug() << *it;
    //        qDebug() << XManager::Inst()->getModeMap()[*it];
    //        ui->comboBox->addItem(XManager::Inst()->getModeMap().at(*it), (unsigned long long int)*it);
    //    }

    //    // Fill treewidget with data from cups dests;
    //    for ( map<XID, char *>::iterator it = XManager::Inst()->getModeMap().begin(); it != XManager::Inst()->getModeMap().end(); ++it )
    //    {
    //        qDebug() << it->first ;
    ////        qDebug() << XManager::getInstance()->getModeMap()[*it];
    ////        ui->comboBox->addItem(XManager::getInstance()->getModeMap().at(*it), (unsigned long long int)*it);
    //    }

        // Resize widget to its content
        resize(sizeHint());

        // Center dialog on screenbottom
        const QRect desktopRect = QApplication::desktop()->screenGeometry();
        this->move( desktopRect.width()/2-this->width()/2,
                    desktopRect.height()-this->height());
    }

    Widget::~Widget()
    {
        delete ui;
    }

    void Widget::configureWidgetForBeamerWithEDID()
    {
    }

    void Widget::configureWidgetForBeamerWithOUTEDID()
    {
    }