//-----------------------------------
ResourceAllocationEditor::ResourceAllocationEditor(KoPart *part, KoDocument *doc, QWidget *parent)
    : ViewBase(part, doc, parent)
{
    QVBoxLayout * l = new QVBoxLayout( this );
    l->setMargin( 0 );
    m_view = new ResourceAllocationTreeView( this );
    l->addWidget( m_view );
    setupGui();

    m_view->setEditTriggers( m_view->editTriggers() | QAbstractItemView::EditKeyPressed );

    QList<int> lst1; lst1 << 1 << -1;
    QList<int> lst2; lst2 << 0;
    m_view->hideColumns( lst1, lst2 );

    m_view->masterView()->setDefaultColumns( QList<int>() << 0 );
    QList<int> show;
    for ( int c = 1; c < model()->columnCount(); ++c ) {
        show << c;
    }
    m_view->slaveView()->setDefaultColumns( show );

    connect( model(), SIGNAL(executeCommand(KUndo2Command*)), doc, SLOT(addCommand(KUndo2Command*)) );

    connect( m_view, SIGNAL(currentChanged(QModelIndex,QModelIndex)), this, SLOT(slotCurrentChanged(QModelIndex)) );

    connect( m_view, SIGNAL(selectionChanged(QModelIndexList)), this, SLOT(slotSelectionChanged(QModelIndexList)) );

    connect( m_view, SIGNAL(contextMenuRequested(QModelIndex,QPoint)), this, SLOT(slotContextMenuRequested(QModelIndex,QPoint)) );

    connect( m_view, SIGNAL(headerContextMenuRequested(QPoint)), SLOT(slotHeaderContextMenuRequested(QPoint)) );

}
ResourceAppointmentsView::ResourceAppointmentsView(KoPart *part, KoDocument *doc, QWidget *parent)
    : ViewBase(part, doc, parent)
{
    debugPlan<<"------------------- ResourceAppointmentsView -----------------------";

    setupGui();

    QVBoxLayout * l = new QVBoxLayout( this );
    l->setMargin( 0 );
    m_view = new ResourceAppointmentsTreeView( this );
    l->addWidget( m_view );

    m_view->setEditTriggers( m_view->editTriggers() | QAbstractItemView::EditKeyPressed );

    connect( model(), SIGNAL(executeCommand(KUndo2Command*)), doc, SLOT(addCommand(KUndo2Command*)) );

    connect( m_view, SIGNAL(currentChanged(QModelIndex,QModelIndex)), this, SLOT(slotCurrentChanged(QModelIndex)) );

    connect( m_view, SIGNAL(selectionChanged(QModelIndexList)), this, SLOT(slotSelectionChanged(QModelIndexList)) );

    connect( m_view, SIGNAL(contextMenuRequested(QModelIndex,QPoint)), this, SLOT(slotContextMenuRequested(QModelIndex,QPoint)) );

    connect( m_view, SIGNAL(headerContextMenuRequested(QPoint)), SLOT(slotHeaderContextMenuRequested(QPoint)) );

}
示例#3
0
//------------------------
AccountsView::AccountsView(KoPart *part, Project *project, KoDocument *doc, QWidget *parent )
    : ViewBase(part, doc, parent),
        m_project(project),
        m_manager( 0 )
{
    init();

    setupGui();
    
    connect( m_view, SIGNAL(contextMenuRequested(QModelIndex,QPoint)), SLOT(slotContextMenuRequested(QModelIndex,QPoint)) );
    
    connect( m_view, SIGNAL(headerContextMenuRequested(QPoint)), SLOT(slotHeaderContextMenuRequested(QPoint)) );
}
示例#4
0
//--------------------
CalendarTreeView::CalendarTreeView( QWidget *parent )
    : TreeViewBase( parent )
{
    header()->setContextMenuPolicy( Qt::CustomContextMenu );
    setModel( new CalendarItemModel() );

    setSelectionBehavior( QAbstractItemView::SelectRows );
    setSelectionMode( QAbstractItemView::SingleSelection );
    setSelectionModel( new QItemSelectionModel( model() ) );

    setItemDelegateForColumn( 1, new EnumDelegate( this ) ); // timezone

    connect( header(), SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(headerContextMenuRequested(QPoint)) );
}
//--------------------
AccountTreeView::AccountTreeView( QWidget *parent )
    : TreeViewBase( parent )
{
    header()->setContextMenuPolicy( Qt::CustomContextMenu );
    setModel( new AccountItemModel( this ) );
    setSelectionModel( new QItemSelectionModel( model() ) );
    setSelectionMode( QAbstractItemView::SingleSelection );
    setSelectionBehavior( QAbstractItemView::SelectRows );

    setAcceptDrops( false );
    setDropIndicatorShown( false );

    connect( header(), SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(headerContextMenuRequested(QPoint)) );
}
示例#6
0
ChannelListWidget::ChannelListWidget(QWidget *parent, YellowPage *yellowPage)
    : QTreeWidget(parent), m_active(false), m_linkHovered(false), m_pressedChannel(0)
{
    setYellowPage(yellowPage);
    m_lastUpdatedTime = QDateTime::currentDateTime();
    QVector<QString> labels(LabelCount);
    labels[Status] = tr("S");
    labels[Name] = tr("配信者");
    labels[Description] = tr("詳細");
    labels[Listeners] = tr("視聴者数");
    labels[Relays] = tr("リレー数");
    labels[Score] = tr("スコア");
    labels[Uptime] = tr("配信時間");
    labels[Bitrate] = tr("ビットレート");
    labels[Type] = tr("種類");
    setHeaderLabels(labels.toList());
    header()->setStretchLastSection(true);
    header()->setContextMenuPolicy(Qt::CustomContextMenu);
    connect(header(), SIGNAL(customContextMenuRequested(QPoint)),
            SLOT(headerContextMenuRequested(QPoint)));

    readSettings();

    int lastSection = -1;
    for (int i = 0; i < header()->count(); ++i)
        if (header()->sectionSize(i))
            lastSection = i;
    if (lastSection != -1)
        header()->resizeSection(lastSection, fontMetrics().width(labels[lastSection])
                                    + style()->pixelMetric(QStyle::PM_HeaderGripMargin) * 2);

    setAllColumnsShowFocus(true);
    setSortingEnabled(true);
    setRootIsDecorated(false);
    setMouseTracking(linkEnabled());
#ifdef Q_WS_MAC
    QFont f(font());
    f.setPointSize(f.pointSize() - 2);
    setFont(f);
#endif

    installEventFilter(new ViEmacsBindings(this));
    updateActions();
    connect(this, SIGNAL(itemActivated(QTreeWidgetItem *, int)), SLOT(playChannel()));
    connect(this, SIGNAL(currentItemChanged(QTreeWidgetItem *, QTreeWidgetItem *)),
            SLOT(currentItemChanged(QTreeWidgetItem *)));
    connect(this, SIGNAL(linkHovered(Channel *)), SLOT(onLinkHovered(Channel *)));
    connect(this, SIGNAL(linkClicked(Channel *)), SLOT(onLinkClicked(Channel *)));
}
示例#7
0
AnimeListWidget::AnimeListWidget(QWidget *parent, QString list)
    : QWidget(parent), m_ui(new Ui::AnimeListWidget), m_list(list) {
    m_ui->setupUi(this);
    m_ui->retranslateUi(this);

    m_proxy_model = new AnimeProxyModel;
    m_model = new AnimeModel;
    m_progress_delegate = new ProgressDelegate;

    m_proxy_model->setDynamicSortFilter(true);
    m_proxy_model->setFilterCaseSensitivity(Qt::CaseInsensitive);
    m_proxy_model->setSortCaseSensitivity(Qt::CaseInsensitive);

    if (User::sharedUser()->listOrder() == ListOrder::Alphabet) {
        m_proxy_model->sort(ListRoles::Title);
    } else if (User::sharedUser()->listOrder() == ListOrder::Score) {
        m_proxy_model->sort(ListRoles::Score);
    }

    m_proxy_model->setSourceModel(m_model);
    m_ui->table->setModel(m_proxy_model);
    m_ui->table->setItemDelegateForColumn(ListRoles::Progress,
                                          m_progress_delegate);

    connect(m_ui->table, SIGNAL(doubleClicked(QModelIndex)), this,
            SLOT(doubleClicked(QModelIndex)));

    connect(m_ui->table, SIGNAL(customContextMenuRequested(QPoint)), this,
            SLOT(customContextMenuRequested(QPoint)));

    m_ui->table->horizontalHeader()->setContextMenuPolicy(Qt::CustomContextMenu);

    connect(m_ui->table->horizontalHeader(),
            SIGNAL(customContextMenuRequested(QPoint)), this,
            SLOT(headerContextMenuRequested(QPoint)));

    connect(m_model, &AnimeModel::animeChanged, this,
    [this](AnimePtr anime) {
        emit animeChanged(anime);
    });

    auto font = m_ui->table->fontMetrics();
    m_ui->table->verticalHeader()->setDefaultSectionSize(font.height() + 4);
}
示例#8
0
文件: timetable.cpp 项目: komh/qtex
/**
 * @brief TimeTable::openTimeTable 시간표 파일을 읽는다
 */
void TimeTable::openTimeTable()
{
    // 변경된 시간표를 저장할지 물어봄
    if (!saveModifiedTable())
        return;

    QString name = QFileDialog::getOpenFileName(this, tr("시간표 열기"),
                                                QString(),
                                                tr("시간표 (*.tbl);;"
                                                   "모든 파일 (*)"));

    // 파일을 골랐으면
    if (!name.isEmpty())
    {
        QFile f(name);

        // 읽기 전용으로 파일 열기
        if (f.open(QIODevice::ReadOnly))
        {
            _timeTable->clear();    // 테이블 초기화


            QTextStream in(&f);     // 파일을 텍스트 스트림으로 처리

            in >> _tableRows >> _tableCols; // 세로줄 수와 가로줄 수 읽기
            in.readLine();                  // 줄바꿈 문자 읽기

            _timeTable->setColumnCount(_tableCols); // 가로줄 수 설정
            _timeTable->setRowCount(_tableRows);    // 세로줄 수 설정

            // 세로 헤더 아이템 읽어 설정
            for (int i = 0; i < _tableCols; ++i)
            {
                QTableWidgetItem *item = new QTableWidgetItem;
                item->setText(in.readLine());
                _timeTable->setHorizontalHeaderItem(i, item);
            }
            _timeTable->horizontalHeader()->setContextMenuPolicy(Qt::CustomContextMenu);
            connect(_timeTable->horizontalHeader(),
                    SIGNAL(customContextMenuRequested(QPoint)),
                    this, SLOT(headerContextMenuRequested(QPoint)));

            // 가로 헤더 아이템 읽어 설정
            for (int i = 0; i < _tableRows; ++i)
            {
                QTableWidgetItem *item = new QTableWidgetItem;
                item->setText(in.readLine());
                _timeTable->setVerticalHeaderItem(i, item);
            }
            _timeTable->verticalHeader()->setContextMenuPolicy(Qt::CustomContextMenu);
            connect(_timeTable->verticalHeader(),
                    SIGNAL(customContextMenuRequested(QPoint)),
                    this, SLOT(headerContextMenuRequested(QPoint)));

            // 테이블 셀 설정
            for (int i = 0; i < _tableRows; ++i)
            {
                for (int j = 0; j < _tableCols; ++j)
                {
                    _timeTable->setItem(i, j,
                                        new QTableWidgetItem(in.readLine()));
                }
            }

            f.close();  // 파일 닫음

             // 테이블 크기에 따라 창크기 조절
            resize(_timeTable->sizeHint().width(),
                   _timeTable->sizeHint().height());


            adjustSize();   // 내부 위젯에 맞추어 크기 조절


            setFileName(name);          // 파일 이름 설정
            setWindowModified(false);   // 변경되지 않았
        }
示例#9
0
文件: timetable.cpp 项目: komh/qtex
/**
 * @brief TimeTable::newTimeTable 새 시간표를 만든다
 */
void TimeTable::newTimeTable()
{
    static const QStringList weekDays(
                QStringList() << tr("월") << tr("화") << tr("수") << tr("목")
                              << tr("금") << tr("토"));

    // 변경된 시간표를 저장할지 물어봄
    if (!saveModifiedTable())
        return;

    _timeTable->clear();    // 테이블 초기화

    _tableCols = 6;         // 세로줄 수는 6
    _tableRows = 8;         // 가로줄 수는 8

    _timeTable->setColumnCount(_tableCols); // 세로줄 수 설정
    _timeTable->setRowCount(_tableRows);    // 가로줄 수 설정

    // 가로 헤더 아이템 설정
    for (int i = 0; i < _tableCols; ++i)
    {
        // 테이블 아이템 생성
        QTableWidgetItem *item = new QTableWidgetItem;
        // 아이템 텍스트 요일로 설정
        item->setText(weekDays.at(i));
        // 가로 헤더 아이템 설정
        _timeTable->setHorizontalHeaderItem(i, item);
    }
    // 가로 헤더 컨텍스트 메뉴 정책 설
    _timeTable->horizontalHeader()->setContextMenuPolicy(Qt::CustomContextMenu);
    // 컨텍스트 메뉴 시그널 연결
    connect(_timeTable->horizontalHeader(),
            SIGNAL(customContextMenuRequested(QPoint)),
            this, SLOT(headerContextMenuRequested(QPoint)));

    // 세로 헤더 아이템 설정
    for (int i = 0; i < _tableRows; ++i)
    {
        // 테이블 아이템 생성
        QTableWidgetItem *item = new QTableWidgetItem;
        // 아이템 텍스트 시간으로 설정
        item->setText(QString::number(i + 1));
        // 세로 헤더 아이템 설정
        _timeTable->setVerticalHeaderItem(i, item);
    }
    // 세로 헤더 컨텍스트 메뉴 정책 설정
    _timeTable->verticalHeader()->setContextMenuPolicy(Qt::CustomContextMenu);
    // 컨텍스트 메뉴 시그널 연결
    connect(_timeTable->verticalHeader(),
            SIGNAL(customContextMenuRequested(QPoint)),
            this, SLOT(headerContextMenuRequested(QPoint)));

    // 테이블 셀 초기화
    for (int i = 0; i < _tableRows; ++i)
    {
        for (int j = 0; j < _tableCols; ++j)
        {
            // 빈 아이템으로 설정
            _timeTable->setItem(i, j, new QTableWidgetItem(QString()));
        }
    }

    // 테이블 크기에 맞추어서 창 크기 조절
    resize(_timeTable->sizeHint().width(),
           _timeTable->sizeHint().height());

    // 내부 위젯에 맞추어서 크기 조절
    adjustSize();

    // 셀 내용이 바뀌면 modified() 호출
    connect(_timeTable, SIGNAL(cellChanged(int,int)), this, SLOT(modified()));

    setFileName(tr("이름 없음"));   // 새 이름은 "이름 없음"
    setWindowModified(false);       // 변경되지 않았음
}