~ubuntu-branches/ubuntu/jaunty/quassel/jaunty

« back to all changes in this revision

Viewing changes to src/qtui/topicwidget.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Harald Sitter
  • Date: 2008-11-17 15:22:46 UTC
  • mfrom: (1.1.3 upstream)
  • Revision ID: james.westby@ubuntu.com-20081117152246-3lwlpnr4r08910kv
Tags: 0.3.1-0ubuntu1
* New upstream release (LP: #271403)
* Drop all patches originated from upstream (quassel_*)
* Compile with non-builtin quassel icons
  + Introduce new quassel-data package
  + quassel and quassel-client depend on quassel-data
  + Don't manually enforce icon installation for desktop files in debian/rules
  + Add quassel_01_fix_iconloader.patch
* Drop perl build dependency, I have no clue why it was added in the first
  place. Neither changelog nor Bazaar knows, and since quassel compiles just
  fine without it, removing it should be save.

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
#include <QDebug>
24
24
 
25
25
#include "client.h"
 
26
#include "iconloader.h"
26
27
#include "networkmodel.h"
27
28
 
28
29
TopicWidget::TopicWidget(QWidget *parent)
29
30
  : AbstractItemView(parent)
30
31
{
31
32
  ui.setupUi(this);
 
33
  ui.topicEditButton->setPixmap(BarIcon("edit-rename"));
 
34
 
32
35
  ui.topicLineEdit->hide();
33
36
  ui.topicLineEdit->installEventFilter(this);
34
37
  ui.topicLabel->show();
 
38
  setContentsMargins(0,0,0,0);
 
39
  parent->setMinimumHeight(layout()->sizeHint().height() + 2*qApp->style()->pixelMetric(QStyle::PM_DockWidgetTitleBarButtonMargin));
35
40
}
36
41
 
37
42
void TopicWidget::currentChanged(const QModelIndex &current, const QModelIndex &previous) {
49
54
void TopicWidget::setTopic(const QString &newtopic) {
50
55
  if(_topic == newtopic)
51
56
    return;
52
 
  
 
57
 
53
58
  _topic = newtopic;
54
59
  ui.topicLabel->setText(newtopic);
55
60
  ui.topicLineEdit->setText(newtopic);
60
65
  QModelIndex currentIdx = currentIndex();
61
66
  if(currentIdx.isValid() && currentIdx.data(NetworkModel::BufferTypeRole) == BufferInfo::ChannelBuffer) {
62
67
    BufferInfo bufferInfo = currentIdx.data(NetworkModel::BufferInfoRole).value<BufferInfo>();
63
 
    Client::userInput(bufferInfo, QString("/topic %1").arg(ui.topicLineEdit->text()));
 
68
    if(ui.topicLineEdit->text().isEmpty())
 
69
      Client::userInput(bufferInfo, QString("/quote TOPIC %1 :").arg(bufferInfo.bufferName()));
 
70
    else
 
71
      Client::userInput(bufferInfo, QString("/topic %1").arg(ui.topicLineEdit->text()));
64
72
  }
65
73
  switchPlain();
66
74
}
74
82
  ui.topicEditButton->hide();
75
83
  ui.topicLineEdit->show();
76
84
  ui.topicLineEdit->setFocus();
 
85
 
 
86
  setFixedHeight(layout()->sizeHint().height());
 
87
  // Update the dock widget too, else it won't resize in all styles... FIXME try to sanitize this
 
88
  qobject_cast<QWidget *>(parent())->setMinimumHeight(height() + 2*qApp->style()->pixelMetric(QStyle::PM_DockWidgetTitleBarButtonMargin));
 
89
  qobject_cast<QWidget *>(parent())->adjustSize();
77
90
}
78
91
 
79
92
void TopicWidget::switchPlain() {
81
94
  ui.topicLabel->show();
82
95
  ui.topicEditButton->show();
83
96
  ui.topicLineEdit->setText(_topic);
 
97
  setFixedHeight(layout()->sizeHint().height());
 
98
  // Update the dock widget too, else it won't resize in all styles... FIXME try to sanitize this
 
99
  qobject_cast<QWidget *>(parent())->setMinimumHeight(height() + 2*qApp->style()->pixelMetric(QStyle::PM_DockWidgetTitleBarButtonMargin));
 
100
  qobject_cast<QWidget *>(parent())->adjustSize();
84
101
}
85
102
 
86
103
// filter for the input widget to switch back to normal mode
99
116
    switchPlain();
100
117
    return true;
101
118
  }
102
 
  
 
119
 
103
120
  return false;
104
121
}
105